PDFSHXTEXT: recognise SHX text geometry as MText

Adds PDFSHXTEXT with the PDF Text Recognition Settings dialog, its
command-line form, the PDFSHXLAYER / PDFSHXBESTFONT / PDFSHXTEXTSETTINGS
variables and the profile settings they are kept in.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ramox81andClaude Opus 5.5 committed 2026-10-15 16:40:19 +03:00
1 parent 39c3e9af58
commit 907e501765
17 files changed
+2140

No files matched your search

+2
View File
@@ -825,6 +825,7 @@ impl OpenCADStudio {
ucs_ortho: crate::modules::view::view_cmd::ucs_ortho(),
ucs_view: crate::modules::view::view_cmd::ucs_view(),
layout_create_viewport: crate::scene::layout_create_viewport(),
pdf_shx_text: crate::modules::insert::pdf_shx_text::settings(),
ncopy_bind: self.ncopy_bind,
cursor_type: self.cursor_type,
crosshair_color: self.crosshair_color,
@@ -969,6 +970,7 @@ impl OpenCADStudio {
crate::modules::view::view_cmd::set_ucs_ortho(s.ucs_ortho);
crate::modules::view::view_cmd::set_ucs_view(s.ucs_view);
crate::scene::set_layout_create_viewport(s.layout_create_viewport);
crate::modules::insert::pdf_shx_text::set_settings(s.pdf_shx_text.clone());
self.ncopy_bind = s.ncopy_bind;
self.cursor_type = s.cursor_type;
self.crosshair_color = s.crosshair_color;
+9
View File
@@ -2409,6 +2409,7 @@ impl OpenCADStudio {
Message::AttdefDialog(message) => self.on_attdef_dialog(message),
Message::FieldDialog(message) => self.on_field_dialog(message),
Message::RefEditDialog(message) => self.update_refedit_dialog(message),
Message::PdfShxDialog(message) => self.update_pdf_shx_dialog(message),
Message::PcManager(message) => self.update_pc_manager(message),
Message::Count(message) => self.on_count(message),
Message::SheetSet(message) => self.on_sheet_set(message),
@@ -9587,6 +9588,14 @@ impl OpenCADStudio {
if self.active_modal == Some(super::ModalKind::RefEdit) {
self.refedit_dialog = None;
}
// Cancel returns to PDFSHXTEXT's selection prompt.
if self.active_modal == Some(super::ModalKind::PdfShxSettings) {
self.pdf_shx_dialog = None;
self.close_active_modal();
let i = self.active_tab;
self.start_pdf_shx_gather(i);
return self.focus_cmd_input();
}
// Cancelling the section settings drops the waiting extraction.
if self.active_modal == Some(super::ModalKind::PcSection) {
crate::modules::insert::pc_extract::drop_job();