├── .github ├── FUNDING.yml └── workflows │ ├── CreateReleaseDraft.yml │ ├── LinuxFlatpak.yml │ ├── LinuxInstall.yml │ ├── WindowsInstall.yml │ └── ci.yml ├── .gitignore ├── .licensee.yml ├── 3rdparty_licenses ├── LittleCMS_COPYING.txt ├── OpenJPEG_LICENSE.txt ├── OpenSSL_license.txt ├── freetype_FTL.TXT ├── libjpeg_README.txt └── zlib_README.txt ├── AppxManifest.xml.in ├── CMakeLists.txt ├── CodeGenerator ├── CMakeLists.txt ├── codegenerator.cpp ├── codegenerator.h ├── generatormainwindow.cpp ├── generatormainwindow.h ├── generatormainwindow.ui └── main.cpp ├── Desktop ├── 128x128 │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png │ └── io.github.JakubMelka.Pdf4qt.png ├── 150x150 │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png │ └── io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png ├── 44x44 │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png │ ├── io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png │ └── io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png ├── io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.desktop ├── io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.svg ├── io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop ├── io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.svg ├── io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.desktop ├── io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.svg ├── io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.desktop ├── io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.svg ├── io.github.JakubMelka.Pdf4qt.appdata.xml ├── io.github.JakubMelka.Pdf4qt.desktop └── io.github.JakubMelka.Pdf4qt.svg ├── Flatpak ├── flathub.json ├── flatpakinfo.txt └── io.github.JakubMelka.Pdf4qt.json ├── JBIG2_Viewer ├── CMakeLists.txt ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h └── mainwindow.ui ├── LICENSE ├── NOTES.txt ├── Pdf4QtDiff ├── CMakeLists.txt ├── aboutdialog.cpp ├── aboutdialog.h ├── aboutdialog.ui ├── app-icon.ico ├── app-icon.svg ├── app.qrc ├── differencesdockwidget.cpp ├── differencesdockwidget.h ├── differencesdockwidget.ui ├── icon.rc ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── resources.qrc ├── resources │ ├── about.svg │ ├── close.svg │ ├── compare.svg │ ├── create-compare-report.svg │ ├── display-differences.svg │ ├── display-markers.svg │ ├── filter-images.svg │ ├── filter-page-movement.svg │ ├── filter-shading.svg │ ├── filter-text.svg │ ├── filter-vector-graphics.svg │ ├── get-source.svg │ ├── next-diff.svg │ ├── open-left.svg │ ├── open-right.svg │ ├── prev-diff.svg │ ├── save-diff-to-xml.svg │ ├── show-p-with-diff.svg │ ├── synchronize-view.svg │ ├── view-differences.svg │ ├── view-left.svg │ ├── view-overlay.svg │ ├── view-right.svg │ └── wallet.svg ├── settings.h ├── settingsdockwidget.cpp ├── settingsdockwidget.h ├── settingsdockwidget.ui ├── utils.cpp └── utils.h ├── Pdf4QtEditor ├── CMakeLists.txt ├── app-icon.ico ├── app-icon.svg ├── app.qrc ├── icon.rc └── main.cpp ├── Pdf4QtEditorPlugins ├── AudioBookPlugin │ ├── AudioBookPlugin.json │ ├── CMakeLists.txt │ ├── activate-selection.svg │ ├── audiobookcreator.cpp │ ├── audiobookcreator.h │ ├── audiobookplugin.cpp │ ├── audiobookplugin.h │ ├── audiotextstreameditordockwidget.cpp │ ├── audiotextstreameditordockwidget.h │ ├── audiotextstreameditordockwidget.ui │ ├── clear.svg │ ├── create-audio-book.svg │ ├── create-text-stream.svg │ ├── deactivate-selection.svg │ ├── icons.qrc │ ├── move-selection-down.svg │ ├── move-selection-up.svg │ ├── restore-original-text.svg │ ├── select-by-contained-text.svg │ ├── select-by-page-list.svg │ ├── select-by-rectangle.svg │ ├── select-by-regular-expression.svg │ ├── synchronize-from-graphics-to-table.svg │ └── synchronize-from-table-to-graphics.svg ├── CMakeLists.txt ├── DimensionsPlugin │ ├── CMakeLists.txt │ ├── DimensionsPlugin.json │ ├── angle.svg │ ├── area.svg │ ├── clear-dimensions.svg │ ├── dimensionsplugin.cpp │ ├── dimensionsplugin.h │ ├── dimensiontool.cpp │ ├── dimensiontool.h │ ├── icons.qrc │ ├── linear-horizontal.svg │ ├── linear-vertical.svg │ ├── linear.svg │ ├── perimeter.svg │ ├── rectangle-area.svg │ ├── rectangle-perimeter.svg │ ├── settings.svg │ ├── settingsdialog.cpp │ ├── settingsdialog.h │ ├── settingsdialog.ui │ └── show-dimensions.svg ├── EditorPlugin │ ├── CMakeLists.txt │ ├── EditorPlugin.json │ ├── accept-mark.svg │ ├── activate.svg │ ├── clear.svg │ ├── create-dot.svg │ ├── create-freehand-curve.svg │ ├── create-horizontal-line.svg │ ├── create-line.svg │ ├── create-no-mark.svg │ ├── create-rectangle.svg │ ├── create-rounded-rectangle.svg │ ├── create-svg-image.svg │ ├── create-text.svg │ ├── create-vertical-line.svg │ ├── create-yes-mark.svg │ ├── editorplugin.cpp │ ├── editorplugin.h │ ├── icons.qrc │ └── reject-mark.svg ├── ObjectInspectorPlugin │ ├── CMakeLists.txt │ ├── ObjectInspectorPlugin.json │ ├── icons.qrc │ ├── object-inspector.svg │ ├── object-statistics.svg │ ├── objectinspectordialog.cpp │ ├── objectinspectordialog.h │ ├── objectinspectordialog.ui │ ├── objectinspectorplugin.cpp │ ├── objectinspectorplugin.h │ ├── objectstatisticsdialog.cpp │ ├── objectstatisticsdialog.h │ ├── objectstatisticsdialog.ui │ ├── objectviewerwidget.cpp │ ├── objectviewerwidget.h │ ├── objectviewerwidget.ui │ ├── pdfobjectinspectortreeitemmodel.cpp │ ├── pdfobjectinspectortreeitemmodel.h │ ├── statisticsgraphwidget.cpp │ ├── statisticsgraphwidget.h │ └── statisticsgraphwidget.ui ├── OutputPreviewPlugin │ ├── CMakeLists.txt │ ├── OutputPreviewPlugin.json │ ├── icons.qrc │ ├── ink-coverage.svg │ ├── inkcoveragedialog.cpp │ ├── inkcoveragedialog.h │ ├── inkcoveragedialog.ui │ ├── outputpreviewdialog.cpp │ ├── outputpreviewdialog.h │ ├── outputpreviewdialog.ui │ ├── outputpreviewplugin.cpp │ ├── outputpreviewplugin.h │ ├── outputpreviewwidget.cpp │ ├── outputpreviewwidget.h │ └── preview.svg ├── RedactPlugin │ ├── CMakeLists.txt │ ├── RedactPlugin.json │ ├── createredacteddocumentdialog.cpp │ ├── createredacteddocumentdialog.h │ ├── createredacteddocumentdialog.ui │ ├── icons.qrc │ ├── redact-create-document.svg │ ├── redact-page.svg │ ├── redact-rectangle.svg │ ├── redact-text-selection.svg │ ├── redact-text.svg │ ├── redactplugin.cpp │ └── redactplugin.h ├── SignaturePlugin │ ├── CMakeLists.txt │ ├── SignaturePlugin.json │ ├── accept-mark.svg │ ├── activate.svg │ ├── certificates.svg │ ├── clear.svg │ ├── create-dot.svg │ ├── create-freehand-curve.svg │ ├── create-horizontal-line.svg │ ├── create-line.svg │ ├── create-no-mark.svg │ ├── create-rectangle.svg │ ├── create-rounded-rectangle.svg │ ├── create-svg-image.svg │ ├── create-text.svg │ ├── create-vertical-line.svg │ ├── create-yes-mark.svg │ ├── icons.qrc │ ├── reject-mark.svg │ ├── sign-digitally.svg │ ├── sign-electronically.svg │ ├── signatureplugin.cpp │ ├── signatureplugin.h │ ├── signdialog.cpp │ ├── signdialog.h │ └── signdialog.ui └── SoftProofingPlugin │ ├── CMakeLists.txt │ ├── SoftProofingPlugin.json │ ├── gamut-checking.svg │ ├── icons.qrc │ ├── settings.svg │ ├── settingsdialog.cpp │ ├── settingsdialog.h │ ├── settingsdialog.ui │ ├── soft-proofing.svg │ ├── softproofingplugin.cpp │ └── softproofingplugin.h ├── Pdf4QtLaunchPad ├── CMakeLists.txt ├── app-icon.ico ├── app-icon.svg ├── app.qrc ├── icon.rc ├── launchapplicationwidget.cpp ├── launchapplicationwidget.h ├── launchapplicationwidget.ui ├── launchdialog.cpp ├── launchdialog.h ├── launchdialog.ui └── main.cpp ├── Pdf4QtLibCore ├── CMakeLists.txt ├── aatl.qrc ├── aatl │ ├── SecuritySettings.xml │ └── source.txt ├── cmaps.qrc ├── cmaps │ ├── 78-EUC-H │ ├── 78-EUC-V │ ├── 78-H │ ├── 78-RKSJ-H │ ├── 78-RKSJ-V │ ├── 78-V │ ├── 78ms-RKSJ-H │ ├── 78ms-RKSJ-V │ ├── 83pv-RKSJ-H │ ├── 90ms-RKSJ-H │ ├── 90ms-RKSJ-V │ ├── 90msp-RKSJ-H │ ├── 90msp-RKSJ-V │ ├── 90pv-RKSJ-H │ ├── 90pv-RKSJ-V │ ├── Add-H │ ├── Add-RKSJ-H │ ├── Add-RKSJ-V │ ├── Add-V │ ├── Adobe-CNS1-0 │ ├── Adobe-CNS1-1 │ ├── Adobe-CNS1-2 │ ├── Adobe-CNS1-3 │ ├── Adobe-CNS1-4 │ ├── Adobe-CNS1-5 │ ├── Adobe-CNS1-6 │ ├── Adobe-CNS1-7 │ ├── Adobe-GB1-0 │ ├── Adobe-GB1-1 │ ├── Adobe-GB1-2 │ ├── Adobe-GB1-3 │ ├── Adobe-GB1-4 │ ├── Adobe-GB1-5 │ ├── Adobe-Japan1-0 │ ├── Adobe-Japan1-1 │ ├── Adobe-Japan1-2 │ ├── Adobe-Japan1-3 │ ├── Adobe-Japan1-4 │ ├── Adobe-Japan1-5 │ ├── Adobe-Japan1-6 │ ├── Adobe-Japan1-7 │ ├── Adobe-Japan2-0 │ ├── Adobe-KR-0 │ ├── Adobe-KR-1 │ ├── Adobe-KR-2 │ ├── Adobe-KR-3 │ ├── Adobe-KR-4 │ ├── Adobe-KR-5 │ ├── Adobe-KR-6 │ ├── Adobe-KR-7 │ ├── Adobe-KR-8 │ ├── Adobe-KR-9 │ ├── Adobe-Korea1-0 │ ├── Adobe-Korea1-1 │ ├── Adobe-Korea1-2 │ ├── B5-H │ ├── B5-V │ ├── B5pc-H │ ├── B5pc-V │ ├── CNS-EUC-H │ ├── CNS-EUC-V │ ├── CNS1-H │ ├── CNS1-V │ ├── CNS2-H │ ├── CNS2-V │ ├── ETHK-B5-H │ ├── ETHK-B5-V │ ├── ETen-B5-H │ ├── ETen-B5-V │ ├── ETenms-B5-H │ ├── ETenms-B5-V │ ├── EUC-H │ ├── EUC-V │ ├── Ext-H │ ├── Ext-RKSJ-H │ ├── Ext-RKSJ-V │ ├── Ext-V │ ├── GB-EUC-H │ ├── GB-EUC-V │ ├── GB-H │ ├── GB-V │ ├── GBK-EUC-H │ ├── GBK-EUC-V │ ├── GBK2K-H │ ├── GBK2K-V │ ├── GBKp-EUC-H │ ├── GBKp-EUC-V │ ├── GBT-EUC-H │ ├── GBT-EUC-V │ ├── GBT-H │ ├── GBT-V │ ├── GBTpc-EUC-H │ ├── GBTpc-EUC-V │ ├── GBpc-EUC-H │ ├── GBpc-EUC-V │ ├── H │ ├── HKdla-B5-H │ ├── HKdla-B5-V │ ├── HKdlb-B5-H │ ├── HKdlb-B5-V │ ├── HKgccs-B5-H │ ├── HKgccs-B5-V │ ├── HKm314-B5-H │ ├── HKm314-B5-V │ ├── HKm471-B5-H │ ├── HKm471-B5-V │ ├── HKscs-B5-H │ ├── HKscs-B5-V │ ├── Hankaku │ ├── Hiragana │ ├── Hojo-EUC-H │ ├── Hojo-EUC-V │ ├── Hojo-H │ ├── Hojo-V │ ├── Identity-H │ ├── Identity-V │ ├── KSC-EUC-H │ ├── KSC-EUC-V │ ├── KSC-H │ ├── KSC-Johab-H │ ├── KSC-Johab-V │ ├── KSC-V │ ├── KSCms-UHC-H │ ├── KSCms-UHC-HW-H │ ├── KSCms-UHC-HW-V │ ├── KSCms-UHC-V │ ├── KSCpc-EUC-H │ ├── KSCpc-EUC-V │ ├── Katakana │ ├── LICENSE.txt │ ├── NWP-H │ ├── NWP-V │ ├── RKSJ-H │ ├── RKSJ-V │ ├── Roman │ ├── UniAKR-UTF16-H │ ├── UniAKR-UTF32-H │ ├── UniAKR-UTF8-H │ ├── UniCNS-UCS2-H │ ├── UniCNS-UCS2-V │ ├── UniCNS-UTF16-H │ ├── UniCNS-UTF16-V │ ├── UniCNS-UTF32-H │ ├── UniCNS-UTF32-V │ ├── UniCNS-UTF8-H │ ├── UniCNS-UTF8-V │ ├── UniGB-UCS2-H │ ├── UniGB-UCS2-V │ ├── UniGB-UTF16-H │ ├── UniGB-UTF16-V │ ├── UniGB-UTF32-H │ ├── UniGB-UTF32-V │ ├── UniGB-UTF8-H │ ├── UniGB-UTF8-V │ ├── UniHojo-UCS2-H │ ├── UniHojo-UCS2-V │ ├── UniHojo-UTF16-H │ ├── UniHojo-UTF16-V │ ├── UniHojo-UTF32-H │ ├── UniHojo-UTF32-V │ ├── UniHojo-UTF8-H │ ├── UniHojo-UTF8-V │ ├── UniJIS-UCS2-H │ ├── UniJIS-UCS2-HW-H │ ├── UniJIS-UCS2-HW-V │ ├── UniJIS-UCS2-V │ ├── UniJIS-UTF16-H │ ├── UniJIS-UTF16-V │ ├── UniJIS-UTF32-H │ ├── UniJIS-UTF32-V │ ├── UniJIS-UTF8-H │ ├── UniJIS-UTF8-V │ ├── UniJIS2004-UTF16-H │ ├── UniJIS2004-UTF16-V │ ├── UniJIS2004-UTF32-H │ ├── UniJIS2004-UTF32-V │ ├── UniJIS2004-UTF8-H │ ├── UniJIS2004-UTF8-V │ ├── UniJISPro-UCS2-HW-V │ ├── UniJISPro-UCS2-V │ ├── UniJISPro-UTF8-V │ ├── UniJISX0213-UTF32-H │ ├── UniJISX0213-UTF32-V │ ├── UniJISX02132004-UTF32-H │ ├── UniJISX02132004-UTF32-V │ ├── UniKS-UCS2-H │ ├── UniKS-UCS2-V │ ├── UniKS-UTF16-H │ ├── UniKS-UTF16-V │ ├── UniKS-UTF32-H │ ├── UniKS-UTF32-V │ ├── UniKS-UTF8-H │ ├── UniKS-UTF8-V │ ├── V │ └── WP-Symbol └── sources │ ├── pdfaction.cpp │ ├── pdfaction.h │ ├── pdfalgorithmlcs.cpp │ ├── pdfalgorithmlcs.h │ ├── pdfannotation.cpp │ ├── pdfannotation.h │ ├── pdfapplicationtranslator.cpp │ ├── pdfapplicationtranslator.h │ ├── pdfblendfunction.cpp │ ├── pdfblendfunction.h │ ├── pdfblpainter.cpp │ ├── pdfblpainter.h │ ├── pdfcatalog.cpp │ ├── pdfcatalog.h │ ├── pdfccittfaxdecoder.cpp │ ├── pdfccittfaxdecoder.h │ ├── pdfcertificatemanager.cpp │ ├── pdfcertificatemanager.h │ ├── pdfcertificatestore.cpp │ ├── pdfcertificatestore.h │ ├── pdfcms.cpp │ ├── pdfcms.h │ ├── pdfcolorconvertor.cpp │ ├── pdfcolorconvertor.h │ ├── pdfcolorspaces.cpp │ ├── pdfcolorspaces.h │ ├── pdfconstants.h │ ├── pdfdbgheap.h │ ├── pdfdiff.cpp │ ├── pdfdiff.h │ ├── pdfdocument.cpp │ ├── pdfdocument.h │ ├── pdfdocumentbuilder.cpp │ ├── pdfdocumentbuilder.h │ ├── pdfdocumentmanipulator.cpp │ ├── pdfdocumentmanipulator.h │ ├── pdfdocumentreader.cpp │ ├── pdfdocumentreader.h │ ├── pdfdocumentsanitizer.cpp │ ├── pdfdocumentsanitizer.h │ ├── pdfdocumenttextflow.cpp │ ├── pdfdocumenttextflow.h │ ├── pdfdocumenttextfloweditormodel.cpp │ ├── pdfdocumenttextfloweditormodel.h │ ├── pdfdocumentwriter.cpp │ ├── pdfdocumentwriter.h │ ├── pdfencoding.cpp │ ├── pdfencoding.h │ ├── pdfexception.h │ ├── pdfexecutionpolicy.cpp │ ├── pdfexecutionpolicy.h │ ├── pdffile.cpp │ ├── pdffile.h │ ├── pdfflatarray.h │ ├── pdfflatmap.h │ ├── pdffont.cpp │ ├── pdffont.h │ ├── pdfform.cpp │ ├── pdfform.h │ ├── pdffunction.cpp │ ├── pdffunction.h │ ├── pdfglobal.h │ ├── pdficontheme.cpp │ ├── pdficontheme.h │ ├── pdfimage.cpp │ ├── pdfimage.h │ ├── pdfimageconversion.cpp │ ├── pdfimageconversion.h │ ├── pdfjavascriptscanner.cpp │ ├── pdfjavascriptscanner.h │ ├── pdfjbig2decoder.cpp │ ├── pdfjbig2decoder.h │ ├── pdfmeshqualitysettings.h │ ├── pdfmultimedia.cpp │ ├── pdfmultimedia.h │ ├── pdfnametounicode.cpp │ ├── pdfnametounicode.h │ ├── pdfnametreeloader.h │ ├── pdfnumbertreeloader.h │ ├── pdfobject.cpp │ ├── pdfobject.h │ ├── pdfobjecteditormodel.cpp │ ├── pdfobjecteditormodel.h │ ├── pdfobjectutils.cpp │ ├── pdfobjectutils.h │ ├── pdfoperationcontrol.h │ ├── pdfoptimizer.cpp │ ├── pdfoptimizer.h │ ├── pdfoptionalcontent.cpp │ ├── pdfoptionalcontent.h │ ├── pdfoutline.cpp │ ├── pdfoutline.h │ ├── pdfpage.cpp │ ├── pdfpage.h │ ├── pdfpagecontenteditorcontentstreambuilder.cpp │ ├── pdfpagecontenteditorcontentstreambuilder.h │ ├── pdfpagecontenteditorprocessor.cpp │ ├── pdfpagecontenteditorprocessor.h │ ├── pdfpagecontentprocessor.cpp │ ├── pdfpagecontentprocessor.h │ ├── pdfpagenavigation.cpp │ ├── pdfpagenavigation.h │ ├── pdfpagetransition.cpp │ ├── pdfpagetransition.h │ ├── pdfpainter.cpp │ ├── pdfpainter.h │ ├── pdfpainterutils.cpp │ ├── pdfpainterutils.h │ ├── pdfparser.cpp │ ├── pdfparser.h │ ├── pdfpattern.cpp │ ├── pdfpattern.h │ ├── pdfplugin.cpp │ ├── pdfplugin.h │ ├── pdfprogress.cpp │ ├── pdfprogress.h │ ├── pdfredact.cpp │ ├── pdfredact.h │ ├── pdfrenderer.cpp │ ├── pdfrenderer.h │ ├── pdfsecurityhandler.cpp │ ├── pdfsecurityhandler.h │ ├── pdfsignaturehandler.cpp │ ├── pdfsignaturehandler.h │ ├── pdfsignaturehandler_impl.h │ ├── pdfsnapper.cpp │ ├── pdfsnapper.h │ ├── pdfstreamfilters.cpp │ ├── pdfstreamfilters.h │ ├── pdfstructuretree.cpp │ ├── pdfstructuretree.h │ ├── pdftextlayout.cpp │ ├── pdftextlayout.h │ ├── pdftextlayoutgenerator.cpp │ ├── pdftextlayoutgenerator.h │ ├── pdftransparencyrenderer.cpp │ ├── pdftransparencyrenderer.h │ ├── pdfutils.cpp │ ├── pdfutils.h │ ├── pdfvisitor.cpp │ ├── pdfvisitor.h │ ├── pdfwidgetsnapshot.cpp │ ├── pdfwidgetsnapshot.h │ ├── pdfxfaengine.cpp │ ├── pdfxfaengine.h │ ├── pdfxreftable.cpp │ └── pdfxreftable.h ├── Pdf4QtLibGui ├── CMakeLists.txt ├── main.cpp ├── pdf4qtlibgui.qrc ├── pdfaboutdialog.cpp ├── pdfaboutdialog.h ├── pdfaboutdialog.ui ├── pdfactioncombobox.cpp ├── pdfactioncombobox.h ├── pdfadvancedfindwidget.cpp ├── pdfadvancedfindwidget.h ├── pdfadvancedfindwidget.ui ├── pdfbookmarkmanager.cpp ├── pdfbookmarkmanager.h ├── pdfbookmarkui.cpp ├── pdfbookmarkui.h ├── pdfcreatebitonaldocumentdialog.cpp ├── pdfcreatebitonaldocumentdialog.h ├── pdfcreatebitonaldocumentdialog.ui ├── pdfdocumentpropertiesdialog.cpp ├── pdfdocumentpropertiesdialog.h ├── pdfdocumentpropertiesdialog.ui ├── pdfeditormainwindow.cpp ├── pdfeditormainwindow.h ├── pdfeditormainwindow.ui ├── pdfencryptionsettingsdialog.cpp ├── pdfencryptionsettingsdialog.h ├── pdfencryptionsettingsdialog.ui ├── pdfencryptionstrengthhintwidget.cpp ├── pdfencryptionstrengthhintwidget.h ├── pdfoptimizedocumentdialog.cpp ├── pdfoptimizedocumentdialog.h ├── pdfoptimizedocumentdialog.ui ├── pdfprogramcontroller.cpp ├── pdfprogramcontroller.h ├── pdfrecentfilemanager.cpp ├── pdfrecentfilemanager.h ├── pdfrendertoimagesdialog.cpp ├── pdfrendertoimagesdialog.h ├── pdfrendertoimagesdialog.ui ├── pdfsanitizedocumentdialog.cpp ├── pdfsanitizedocumentdialog.h ├── pdfsanitizedocumentdialog.ui ├── pdfsendmail.cpp ├── pdfsendmail.h ├── pdfsidebarwidget.cpp ├── pdfsidebarwidget.h ├── pdfsidebarwidget.ui ├── pdftexttospeech.cpp ├── pdftexttospeech.h ├── pdfundoredomanager.cpp ├── pdfundoredomanager.h ├── pdfviewerglobal.h ├── pdfviewermainwindow.cpp ├── pdfviewermainwindow.h ├── pdfviewermainwindow.ui ├── pdfviewersettings.cpp ├── pdfviewersettings.h ├── pdfviewersettingsdialog.cpp ├── pdfviewersettingsdialog.h ├── pdfviewersettingsdialog.ui ├── pdfwintaskbarprogress.cpp ├── pdfwintaskbarprogress.h └── resources │ ├── annot-ellipse.svg │ ├── annot-freehand-curve.svg │ ├── annot-inline-text.svg │ ├── annot-polygon.svg │ ├── annot-polyline.svg │ ├── annot-rectangle.svg │ ├── annot-sticky-note.svg │ ├── annot-straight-line.svg │ ├── book.svg │ ├── bookmark-next.svg │ ├── bookmark-previous.svg │ ├── bookmark.svg │ ├── bubble.svg │ ├── cache.svg │ ├── certificate-manager.svg │ ├── close.svg │ ├── cms.svg │ ├── copy-text.svg │ ├── create-bitonal-document.svg │ ├── deselect-text.svg │ ├── encryption.svg │ ├── engine.svg │ ├── extract-image.svg │ ├── find-advanced.svg │ ├── find-next.svg │ ├── find-previous.svg │ ├── find.svg │ ├── form-settings.svg │ ├── highlight.svg │ ├── hyperlink.svg │ ├── info.svg │ ├── invert-colors.svg │ ├── magnifier.svg │ ├── next-end.svg │ ├── next-page.svg │ ├── next.svg │ ├── open.svg │ ├── optimize.svg │ ├── outline.svg │ ├── page.svg │ ├── pause.svg │ ├── pce-align-bottom.svg │ ├── pce-align-h-center.svg │ ├── pce-align-left.svg │ ├── pce-align-right.svg │ ├── pce-align-top.svg │ ├── pce-align-v-center.svg │ ├── pce-apply-changes.svg │ ├── pce-center-h.svg │ ├── pce-center-v.svg │ ├── pce-center-vh.svg │ ├── pce-layout-form.svg │ ├── pce-layout-grid.svg │ ├── pce-layout-h.svg │ ├── pce-layout-v.svg │ ├── pce-same-height.svg │ ├── pce-same-size.svg │ ├── pce-same-width.svg │ ├── pce-select-brush.svg │ ├── pce-select-color.svg │ ├── pce-select-font.svg │ ├── pce-select-pen.svg │ ├── placeholder.svg │ ├── play.svg │ ├── plugins.svg │ ├── previous-page.svg │ ├── previous-start.svg │ ├── previous.svg │ ├── print.svg │ ├── quit.svg │ ├── redo.svg │ ├── rendering-errors.svg │ ├── rendering.svg │ ├── result-error.svg │ ├── result-information.svg │ ├── result-ok.svg │ ├── result-warning.svg │ ├── rotate-left.svg │ ├── rotate-right.svg │ ├── sanitize-document.svg │ ├── save-as.svg │ ├── save.svg │ ├── screenshot-tool.svg │ ├── security.svg │ ├── select-all-text.svg │ ├── select-table.svg │ ├── select-text.svg │ ├── send-mail.svg │ ├── settings.svg │ ├── shading.svg │ ├── shortcuts.svg │ ├── sidebar-annotations.svg │ ├── sidebar-attachment.svg │ ├── sidebar-favourites.svg │ ├── sidebar-outline.svg │ ├── sidebar-signature.svg │ ├── sidebar-speech.svg │ ├── sidebar-thumbnails.svg │ ├── sidebar-visibility.svg │ ├── signature.svg │ ├── speech.svg │ ├── squiggly.svg │ ├── stop.svg │ ├── strikeout.svg │ ├── synchronize.svg │ ├── ui.svg │ ├── underline.svg │ ├── undo.svg │ ├── user.svg │ ├── wallet.svg │ ├── web.svg │ ├── zoom-fit-horizontal.svg │ ├── zoom-fit-vertical.svg │ ├── zoom-fit.svg │ ├── zoom-in.svg │ └── zoom-out.svg ├── Pdf4QtLibWidgets ├── CMakeLists.txt └── sources │ ├── pdfadvancedtools.cpp │ ├── pdfadvancedtools.h │ ├── pdfcertificatelisthelper.cpp │ ├── pdfcertificatelisthelper.h │ ├── pdfcertificatemanagerdialog.cpp │ ├── pdfcertificatemanagerdialog.h │ ├── pdfcertificatemanagerdialog.ui │ ├── pdfcompiler.cpp │ ├── pdfcompiler.h │ ├── pdfcreatecertificatedialog.cpp │ ├── pdfcreatecertificatedialog.h │ ├── pdfcreatecertificatedialog.ui │ ├── pdfdocumentdrawinterface.h │ ├── pdfdrawspacecontroller.cpp │ ├── pdfdrawspacecontroller.h │ ├── pdfdrawwidget.cpp │ ├── pdfdrawwidget.h │ ├── pdfitemmodels.cpp │ ├── pdfitemmodels.h │ ├── pdfobjecteditorwidget.cpp │ ├── pdfobjecteditorwidget.h │ ├── pdfobjecteditorwidget_impl.h │ ├── pdfpagecontenteditorediteditemsettings.cpp │ ├── pdfpagecontenteditorediteditemsettings.h │ ├── pdfpagecontenteditorediteditemsettings.ui │ ├── pdfpagecontenteditorstylesettings.cpp │ ├── pdfpagecontenteditorstylesettings.h │ ├── pdfpagecontenteditorstylesettings.ui │ ├── pdfpagecontenteditortools.cpp │ ├── pdfpagecontenteditortools.h │ ├── pdfpagecontenteditorwidget.cpp │ ├── pdfpagecontenteditorwidget.h │ ├── pdfpagecontenteditorwidget.ui │ ├── pdfpagecontentelements.cpp │ ├── pdfpagecontentelements.h │ ├── pdfrenderingerrorswidget.cpp │ ├── pdfrenderingerrorswidget.h │ ├── pdfrenderingerrorswidget.ui │ ├── pdfselectpagesdialog.cpp │ ├── pdfselectpagesdialog.h │ ├── pdfselectpagesdialog.ui │ ├── pdftexteditpseudowidget.cpp │ ├── pdftexteditpseudowidget.h │ ├── pdfwidgetannotation.cpp │ ├── pdfwidgetannotation.h │ ├── pdfwidgetformmanager.cpp │ ├── pdfwidgetformmanager.h │ ├── pdfwidgetsglobal.h │ ├── pdfwidgettool.cpp │ ├── pdfwidgettool.h │ ├── pdfwidgetutils.cpp │ └── pdfwidgetutils.h ├── Pdf4QtPageMaster ├── CMakeLists.txt ├── aboutdialog.cpp ├── aboutdialog.h ├── aboutdialog.ui ├── app-icon.ico ├── app-icon.svg ├── app.qrc ├── assembleoutputsettingsdialog.cpp ├── assembleoutputsettingsdialog.h ├── assembleoutputsettingsdialog.ui ├── icon.rc ├── main.cpp ├── mainwindow.cpp ├── mainwindow.h ├── mainwindow.ui ├── pageitemdelegate.cpp ├── pageitemdelegate.h ├── pageitemmodel.cpp ├── pageitemmodel.h ├── resources.qrc ├── resources │ ├── about.svg │ ├── bookmark.svg │ ├── clear.svg │ ├── clone-selection.svg │ ├── close.svg │ ├── copy.svg │ ├── cut.svg │ ├── get-source.svg │ ├── group.svg │ ├── insert-empty-page.svg │ ├── insert-image.svg │ ├── insert-page-from-pdf.svg │ ├── invert-selection.svg │ ├── make-separated-document-from-groups.svg │ ├── make-separated-document.svg │ ├── make-united-document.svg │ ├── open.svg │ ├── paste.svg │ ├── redo.svg │ ├── regroup-alternating-reversed.svg │ ├── regroup-alternating.svg │ ├── regroup-even-odd.svg │ ├── regroup-outline.svg │ ├── regroup-pairs.svg │ ├── regroup-reverse.svg │ ├── remove-selection.svg │ ├── replace-selection.svg │ ├── restore-removed-items.svg │ ├── rotate-left.svg │ ├── rotate-right.svg │ ├── select-all.svg │ ├── select-even.svg │ ├── select-landscape.svg │ ├── select-none.svg │ ├── select-odd.svg │ ├── select-portrait.svg │ ├── undo.svg │ ├── ungroup.svg │ ├── wallet.svg │ ├── zoom-in.svg │ └── zoom-out.svg ├── selectoutlinetoregroupdialog.cpp ├── selectoutlinetoregroupdialog.h └── selectoutlinetoregroupdialog.ui ├── Pdf4QtViewer ├── CMakeLists.txt ├── app-icon.ico ├── app-icon.svg ├── app.qrc ├── icon.rc └── main.cpp ├── PdfExampleGenerator ├── CMakeLists.txt ├── main.cpp ├── pdfexamplesgenerator.cpp └── pdfexamplesgenerator.h ├── PdfTool ├── CMakeLists.txt ├── main.cpp ├── pdfoutputformatter.cpp ├── pdfoutputformatter.h ├── pdftoolabstractapplication.cpp ├── pdftoolabstractapplication.h ├── pdftoolattachments.cpp ├── pdftoolattachments.h ├── pdftoolaudiobook.cpp ├── pdftoolaudiobook.h ├── pdftoolcertstore.cpp ├── pdftoolcertstore.h ├── pdftoolcolorprofiles.cpp ├── pdftoolcolorprofiles.h ├── pdftooldecrypt.cpp ├── pdftooldecrypt.h ├── pdftooldiff.cpp ├── pdftooldiff.h ├── pdftoolencrypt.cpp ├── pdftoolencrypt.h ├── pdftoolfetchimages.cpp ├── pdftoolfetchimages.h ├── pdftoolfetchtext.cpp ├── pdftoolfetchtext.h ├── pdftoolinfo.cpp ├── pdftoolinfo.h ├── pdftoolinfofonts.cpp ├── pdftoolinfofonts.h ├── pdftoolinfoinks.cpp ├── pdftoolinfoinks.h ├── pdftoolinfojavascript.cpp ├── pdftoolinfojavascript.h ├── pdftoolinfometadata.cpp ├── pdftoolinfometadata.h ├── pdftoolinfonameddestinations.cpp ├── pdftoolinfonameddestinations.h ├── pdftoolinfopageboxes.cpp ├── pdftoolinfopageboxes.h ├── pdftoolinfostructuretree.cpp ├── pdftoolinfostructuretree.h ├── pdftoolinkcoverage.cpp ├── pdftoolinkcoverage.h ├── pdftooloptimize.cpp ├── pdftooloptimize.h ├── pdftoolrender.cpp ├── pdftoolrender.h ├── pdftoolseparate.cpp ├── pdftoolseparate.h ├── pdftoolstatistics.cpp ├── pdftoolstatistics.h ├── pdftoolunite.cpp ├── pdftoolunite.h ├── pdftoolverifysignatures.cpp ├── pdftoolverifysignatures.h ├── pdftoolxml.cpp └── pdftoolxml.h ├── README.md ├── RELEASES.txt ├── Release_Process.txt ├── UnitTests ├── CMakeLists.txt └── tst_lexicalanalyzertest.cpp ├── VisualStudio └── pdfforqt.natvis ├── WixInstaller ├── CMakeLists.txt ├── PDF4QT.sln.in ├── PDF4QT.wixproj.in ├── Product.wxs.in ├── createInstaller.ps1.in └── explic.rtf ├── assets ├── logo.png └── logo.svg ├── generated_code_definition.xml ├── make-package.sh.in ├── qt.conf ├── resources ├── unicode-glyph-names.txt └── zapfdingbats-glyph-names.txt ├── translations ├── PDF4QT_cs.ts ├── PDF4QT_de.ts ├── PDF4QT_en.ts ├── PDF4QT_es.ts ├── PDF4QT_ko.ts └── PDF4QT_zh_CN.ts ├── vcpkg.json ├── vcpkg └── overlays │ └── libpng │ ├── portfile.cmake │ └── vcpkg.json ├── vcpkg_with_qt.json ├── version.txt.in └── xfa └── xfa-spec.xml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: JakubMelka -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pro.user 2 | *.qbs.user 3 | *.txt.user 4 | build/* -------------------------------------------------------------------------------- /.licensee.yml: -------------------------------------------------------------------------------- 1 | ignore: 2 | - "LICENSE.rtf" -------------------------------------------------------------------------------- /3rdparty_licenses/LittleCMS_COPYING.txt: -------------------------------------------------------------------------------- 1 | Little CMS 2 | Copyright (c) 1998-2020 Marti Maria Saguer 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 9 | -------------------------------------------------------------------------------- /CodeGenerator/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | add_executable(CodeGenerator 24 | codegenerator.cpp 25 | codegenerator.h 26 | main.cpp 27 | generatormainwindow.cpp 28 | generatormainwindow.h 29 | generatormainwindow.ui 30 | ) 31 | 32 | target_link_libraries(CodeGenerator PRIVATE Pdf4QtLibCore Qt6::Core Qt6::Widgets Qt6::Gui Qt6::Xml) 33 | 34 | set_target_properties(CodeGenerator PROPERTIES 35 | WIN32_EXECUTABLE ON 36 | MACOSX_BUNDLE ON 37 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_LIB_DIR} 38 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_BIN_DIR} 39 | ) 40 | -------------------------------------------------------------------------------- /CodeGenerator/main.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #include "generatormainwindow.h" 24 | 25 | #include 26 | #include 27 | 28 | int main(int argc, char *argv[]) 29 | { 30 | QHashSeed::globalSeed().setDeterministicGlobalSeed(); 31 | 32 | QApplication a(argc, argv); 33 | GeneratorMainWindow w; 34 | w.show(); 35 | return a.exec(); 36 | } 37 | -------------------------------------------------------------------------------- /Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png -------------------------------------------------------------------------------- /Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png -------------------------------------------------------------------------------- /Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png -------------------------------------------------------------------------------- /Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/128x128/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png -------------------------------------------------------------------------------- /Desktop/128x128/io.github.JakubMelka.Pdf4qt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/128x128/io.github.JakubMelka.Pdf4qt.png -------------------------------------------------------------------------------- /Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png -------------------------------------------------------------------------------- /Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png -------------------------------------------------------------------------------- /Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png -------------------------------------------------------------------------------- /Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/150x150/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png -------------------------------------------------------------------------------- /Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.png -------------------------------------------------------------------------------- /Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.png -------------------------------------------------------------------------------- /Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.png -------------------------------------------------------------------------------- /Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Desktop/44x44/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.png -------------------------------------------------------------------------------- /Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=PDF4QT Diff 5 | Comment=Compare PDF documents 6 | Exec=Pdf4QtDiff 7 | Icon=io.github.JakubMelka.Pdf4qt.Pdf4QtDiff 8 | Terminal=false 9 | Categories=Office; 10 | MimeType=application/pdf; 11 | -------------------------------------------------------------------------------- /Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtDiff.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 11 | 12 | 13 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=PDF4QT Editor 5 | Comment=Edit and modify PDF files 6 | Exec=Pdf4QtEditor 7 | Icon=io.github.JakubMelka.Pdf4qt.Pdf4QtEditor.svg 8 | Terminal=false 9 | Categories=Office; 10 | MimeType=application/pdf; 11 | -------------------------------------------------------------------------------- /Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=PDF4QT PageMaster 5 | Comment=Organize, merge, split, and duplicate pages in PDF files 6 | Exec=Pdf4QtPageMaster 7 | Icon=io.github.JakubMelka.Pdf4qt.Pdf4QtPageMaster 8 | Terminal=false 9 | Categories=Office; 10 | MimeType=application/pdf; 11 | -------------------------------------------------------------------------------- /Desktop/io.github.JakubMelka.Pdf4qt.Pdf4QtViewer.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=PDF4QT Viewer 5 | Comment=View and navigate PDF documents 6 | Exec=Pdf4QtViewer 7 | Icon=io.github.JakubMelka.Pdf4qt.Pdf4QtViewer 8 | Terminal=false 9 | Categories=Office; 10 | MimeType=application/pdf; 11 | -------------------------------------------------------------------------------- /Desktop/io.github.JakubMelka.Pdf4qt.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=PDF4QT LaunchPad 5 | Comment=Launch PDF applications 6 | Exec=Pdf4QtLaunchPad 7 | Icon=io.github.JakubMelka.Pdf4qt 8 | Terminal=false 9 | Categories=Office; 10 | MimeType=application/pdf; 11 | -------------------------------------------------------------------------------- /Flatpak/flathub.json: -------------------------------------------------------------------------------- 1 | { 2 | "only-arches": ["x86_64"] 3 | } 4 | -------------------------------------------------------------------------------- /Flatpak/flatpakinfo.txt: -------------------------------------------------------------------------------- 1 | flatpak-builder --sandbox --force-clean build-dir io.github.JakubMelka.Pdf4qt.json 2 | 3 | 4 | flatpak-builder --repo=repo --sandbox --force-clean build-dir io.github.JakubMelka.Pdf4qt.json 5 | 6 | flatpak build-bundle repo io.github.JakubMelka.Pdf4qt.flatpak io.github.JakubMelka.Pdf4qt 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /JBIG2_Viewer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | add_executable(JBIG2_VIEWER 24 | mainwindow.ui 25 | mainwindow.cpp 26 | mainwindow.h 27 | main.cpp 28 | ) 29 | 30 | target_link_libraries(JBIG2_VIEWER PRIVATE Pdf4QtLibCore Qt6::Core Qt6::Widgets Qt6::Gui) 31 | 32 | set_target_properties(JBIG2_VIEWER PROPERTIES 33 | WIN32_EXECUTABLE ON 34 | MACOSX_BUNDLE ON 35 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_LIB_DIR} 36 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_BIN_DIR} 37 | ) 38 | -------------------------------------------------------------------------------- /JBIG2_Viewer/main.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #include "mainwindow.h" 24 | 25 | #include 26 | 27 | int main(int argc, char *argv[]) 28 | { 29 | QApplication a(argc, argv); 30 | 31 | QCoreApplication::setOrganizationName("MelkaJ"); 32 | QCoreApplication::setApplicationName("JBIG2_image_viewer"); 33 | QCoreApplication::setApplicationVersion("1.0"); 34 | 35 | MainWindow w; 36 | w.show(); 37 | return a.exec(); 38 | } 39 | -------------------------------------------------------------------------------- /JBIG2_Viewer/mainwindow.h: -------------------------------------------------------------------------------- 1 | #ifndef MAINWINDOW_H 2 | #define MAINWINDOW_H 3 | 4 | #include 5 | 6 | #include "pdfexception.h" 7 | 8 | QT_BEGIN_NAMESPACE 9 | namespace Ui { class MainWindow; } 10 | QT_END_NAMESPACE 11 | 12 | class MainWindow : public QMainWindow, public pdf::PDFRenderErrorReporter 13 | { 14 | Q_OBJECT 15 | 16 | public: 17 | MainWindow(QWidget* parent = nullptr); 18 | virtual ~MainWindow() override; 19 | 20 | virtual void reportRenderError(pdf::RenderErrorType type, QString message) override; 21 | virtual void reportRenderErrorOnce(pdf::RenderErrorType type, QString message) override; 22 | 23 | private slots: 24 | void on_actionAddImage_triggered(); 25 | void on_actionClear_triggered(); 26 | void on_actionAdd_JBIG2_image_triggered(); 27 | 28 | private: 29 | void addImage(QString title, QImage image); 30 | 31 | Ui::MainWindow* ui; 32 | QString m_directory; 33 | }; 34 | #endif // MAINWINDOW_H 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pdf4QtDiff/aboutdialog.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFDIFF_PDFABOUTDIALOG_H 24 | #define PDFDIFF_PDFABOUTDIALOG_H 25 | 26 | #include 27 | 28 | namespace Ui 29 | { 30 | class PDFAboutDialog; 31 | } 32 | 33 | namespace pdfdiff 34 | { 35 | 36 | class PDFAboutDialog : public QDialog 37 | { 38 | Q_OBJECT 39 | 40 | public: 41 | explicit PDFAboutDialog(QWidget* parent); 42 | virtual ~PDFAboutDialog() override; 43 | 44 | private: 45 | Ui::PDFAboutDialog* ui; 46 | }; 47 | 48 | } // namespace pdfdiff 49 | 50 | #endif // PDFDIFF_PDFABOUTDIALOG_H 51 | -------------------------------------------------------------------------------- /Pdf4QtDiff/app-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Pdf4QtDiff/app-icon.ico -------------------------------------------------------------------------------- /Pdf4QtDiff/app-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 11 | 12 | 13 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Pdf4QtDiff/app.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | app-icon.svg 4 | 5 | 6 | -------------------------------------------------------------------------------- /Pdf4QtDiff/differencesdockwidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DifferencesDockWidget 4 | 5 | 6 | 7 | 0 8 | 0 9 | 562 10 | 537 11 | 12 | 13 | 14 | Differences 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 16 23 | 75 24 | true 25 | 26 | 27 | 28 | 29 | 30 | 31 | Qt::AlignCenter 32 | 33 | 34 | 35 | 36 | 37 | 38 | true 39 | 40 | 41 | false 42 | 43 | 44 | 45 | 1 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Pdf4QtDiff/icon.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "app-icon.ico" -------------------------------------------------------------------------------- /Pdf4QtDiff/resources.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | resources/about.svg 4 | resources/close.svg 5 | resources/compare.svg 6 | resources/get-source.svg 7 | resources/open-left.svg 8 | resources/open-right.svg 9 | resources/create-compare-report.svg 10 | resources/filter-images.svg 11 | resources/filter-page-movement.svg 12 | resources/filter-shading.svg 13 | resources/filter-text.svg 14 | resources/filter-vector-graphics.svg 15 | resources/next-diff.svg 16 | resources/prev-diff.svg 17 | resources/save-diff-to-xml.svg 18 | resources/show-p-with-diff.svg 19 | resources/synchronize-view.svg 20 | resources/view-differences.svg 21 | resources/view-left.svg 22 | resources/view-overlay.svg 23 | resources/view-right.svg 24 | resources/display-differences.svg 25 | resources/display-markers.svg 26 | resources/wallet.svg 27 | 28 | 29 | -------------------------------------------------------------------------------- /Pdf4QtDiff/resources/compare.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtDiff/resources/display-differences.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtDiff/resources/display-markers.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtDiff/resources/open-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 12 | 13 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Pdf4QtDiff/resources/open-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 12 | 13 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Pdf4QtDiff/resources/save-diff-to-xml.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 12 | 13 | 15 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtDiff/settings.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFDIFF_SETTINGS_H 24 | #define PDFDIFF_SETTINGS_H 25 | 26 | #include 27 | 28 | namespace pdfdiff 29 | { 30 | 31 | struct Settings 32 | { 33 | QString directory; 34 | QColor colorPageMove = QColor(35, 145, 255); 35 | QColor colorAdded = QColor(125, 250, 0); 36 | QColor colorRemoved = QColor(255, 50, 50); 37 | QColor colorReplaced = QColor(255, 120, 30); 38 | bool displayDifferences = true; 39 | bool displayMarkers = true; 40 | }; 41 | 42 | } // namespace pdfdiff 43 | 44 | #endif // PDFDIFF_SETTINGS_H 45 | -------------------------------------------------------------------------------- /Pdf4QtEditor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | add_executable(Pdf4QtEditor 24 | main.cpp 25 | icon.rc 26 | app.qrc 27 | ) 28 | 29 | target_link_libraries(Pdf4QtEditor PRIVATE Pdf4QtLibCore Pdf4QtLibWidgets Pdf4QtLibGui Qt6::Core Qt6::Gui Qt6::Widgets) 30 | 31 | set_target_properties(Pdf4QtEditor PROPERTIES 32 | WIN32_EXECUTABLE ON 33 | MACOSX_BUNDLE ON 34 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_LIB_DIR} 35 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_BIN_DIR} 36 | ) 37 | 38 | install(TARGETS Pdf4QtEditor RUNTIME DESTINATION ${PDF4QT_INSTALL_BIN_DIR} LIBRARY DESTINATION ${PDF4QT_INSTALL_LIB_DIR}) 39 | -------------------------------------------------------------------------------- /Pdf4QtEditor/app-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Pdf4QtEditor/app-icon.ico -------------------------------------------------------------------------------- /Pdf4QtEditor/app.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | app-icon.svg 4 | 5 | 6 | -------------------------------------------------------------------------------- /Pdf4QtEditor/icon.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "app-icon.ico" -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/AudioBookPlugin/AudioBookPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "AudioBook", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Convert document to an audio book." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/AudioBookPlugin/audiotextstreameditordockwidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | AudioTextStreamEditorDockWidget 4 | 5 | 6 | 7 | 0 8 | 0 9 | 723 10 | 552 11 | 12 | 13 | 14 | Text Stream for Audio Book 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/AudioBookPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | create-text-stream.svg 4 | activate-selection.svg 5 | create-audio-book.svg 6 | deactivate-selection.svg 7 | move-selection-down.svg 8 | move-selection-up.svg 9 | restore-original-text.svg 10 | select-by-contained-text.svg 11 | select-by-page-list.svg 12 | select-by-rectangle.svg 13 | select-by-regular-expression.svg 14 | synchronize-from-graphics-to-table.svg 15 | synchronize-from-table-to-graphics.svg 16 | clear.svg 17 | 18 | 19 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | if(PDF4QT_LINUX) 24 | set(PDF4QT_PLUGINS_DIR ${PDF4QT_INSTALL_LIB_DIR}/pdf4qt) 25 | else() 26 | set(PDF4QT_PLUGINS_DIR ${PDF4QT_INSTALL_LIB_DIR}/pdfplugins) 27 | endif() 28 | 29 | add_subdirectory(AudioBookPlugin) 30 | add_subdirectory(DimensionsPlugin) 31 | add_subdirectory(ObjectInspectorPlugin) 32 | add_subdirectory(OutputPreviewPlugin) 33 | add_subdirectory(RedactPlugin) 34 | add_subdirectory(SignaturePlugin) 35 | add_subdirectory(SoftProofingPlugin) 36 | add_subdirectory(EditorPlugin) 37 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/DimensionsPlugin/DimensionsPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "Dimensions", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Measure distances, area, perimeter in a document page." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/DimensionsPlugin/angle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/DimensionsPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | area.svg 4 | linear.svg 5 | linear-horizontal.svg 6 | linear-vertical.svg 7 | perimeter.svg 8 | clear-dimensions.svg 9 | settings.svg 10 | show-dimensions.svg 11 | angle.svg 12 | rectangle-area.svg 13 | rectangle-perimeter.svg 14 | 15 | 16 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/DimensionsPlugin/linear-horizontal.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/DimensionsPlugin/linear-vertical.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/DimensionsPlugin/linear.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/EditorPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "Editor", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Edit content of PDF document." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/accept-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | 13 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-freehand-curve.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-horizontal-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 13 | 14 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 12 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-rectangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-rounded-rectangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-vertical-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 13 | 14 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/create-yes-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 14 | 15 | 16 | 18 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | accept-mark.svg 4 | reject-mark.svg 5 | activate.svg 6 | clear.svg 7 | create-dot.svg 8 | create-freehand-curve.svg 9 | create-horizontal-line.svg 10 | create-line.svg 11 | create-no-mark.svg 12 | create-rectangle.svg 13 | create-rounded-rectangle.svg 14 | create-svg-image.svg 15 | create-text.svg 16 | create-vertical-line.svg 17 | create-yes-mark.svg 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/EditorPlugin/reject-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/ObjectInspectorPlugin/ObjectInspectorPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "ObjectInspector", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Explore internal structure of a document. View decompressed streams and images. Modify objects directly." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/ObjectInspectorPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | object-inspector.svg 4 | object-statistics.svg 5 | 6 | 7 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/ObjectInspectorPlugin/objectstatisticsdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | ObjectStatisticsDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 924 10 | 504 11 | 12 | 13 | 14 | Object Statistics 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/ObjectInspectorPlugin/statisticsgraphwidget.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | StatisticsGraphWidget 4 | 5 | 6 | 7 | 0 8 | 0 9 | 400 10 | 300 11 | 12 | 13 | 14 | Form 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/OutputPreviewPlugin/OutputPreviewPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "OutputPreview", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "View prepress output preview (overprint, spot colors, advanced transparency). Measure ink coverage for process and spot colors for all pages." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/OutputPreviewPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | preview.svg 4 | ink-coverage.svg 5 | 6 | 7 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/RedactPlugin/RedactPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "Redact", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Redact document - remove sensitive information from the document. Create redacted document from marked redact annotations." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/RedactPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | redact-create-document.svg 4 | redact-rectangle.svg 5 | redact-text.svg 6 | redact-page.svg 7 | redact-text-selection.svg 8 | 9 | 10 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/RedactPlugin/redact-create-document.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/SignaturePlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "Signature", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Electronically or digitally sign PDF document." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/accept-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | 13 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-freehand-curve.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-horizontal-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 13 | 14 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 12 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-rectangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-rounded-rectangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-vertical-line.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 13 | 14 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/create-yes-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 14 | 15 | 16 | 18 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | accept-mark.svg 4 | reject-mark.svg 5 | activate.svg 6 | certificates.svg 7 | clear.svg 8 | create-dot.svg 9 | create-freehand-curve.svg 10 | create-horizontal-line.svg 11 | create-line.svg 12 | create-no-mark.svg 13 | create-rectangle.svg 14 | create-rounded-rectangle.svg 15 | create-svg-image.svg 16 | create-text.svg 17 | create-vertical-line.svg 18 | create-yes-mark.svg 19 | sign-digitally.svg 20 | sign-electronically.svg 21 | 22 | 23 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SignaturePlugin/reject-mark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SoftProofingPlugin/SoftProofingPlugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "Name" : "SoftProofing", 3 | "Author" : "Jakub Melka", 4 | "Version" : "1.0.0", 5 | "License" : "LGPL v3", 6 | "Description" : "Perform soft-proofing / gamut checking with CMYK profiles on a document." 7 | } 8 | -------------------------------------------------------------------------------- /Pdf4QtEditorPlugins/SoftProofingPlugin/icons.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | gamut-checking.svg 4 | soft-proofing.svg 5 | settings.svg 6 | 7 | 8 | -------------------------------------------------------------------------------- /Pdf4QtLaunchPad/app-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Pdf4QtLaunchPad/app-icon.ico -------------------------------------------------------------------------------- /Pdf4QtLaunchPad/app.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | app-icon.svg 4 | ../Pdf4QtEditor/app-icon.svg 5 | ../Pdf4QtViewer/app-icon.svg 6 | ../Pdf4QtDiff/app-icon.svg 7 | ../Pdf4QtPageMaster/app-icon.svg 8 | 9 | 10 | -------------------------------------------------------------------------------- /Pdf4QtLaunchPad/icon.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "app-icon.ico" -------------------------------------------------------------------------------- /Pdf4QtLaunchPad/launchdialog.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef LAUNCHDIALOG_H 24 | #define LAUNCHDIALOG_H 25 | 26 | #include 27 | 28 | namespace Ui 29 | { 30 | class LaunchDialog; 31 | } 32 | 33 | class LaunchDialog : public QDialog 34 | { 35 | Q_OBJECT 36 | 37 | public: 38 | explicit LaunchDialog(QWidget* parent); 39 | virtual ~LaunchDialog() override; 40 | 41 | private: 42 | void startEditor(); 43 | void startViewer(); 44 | void startPageMaster(); 45 | void startDiff(); 46 | 47 | void startProgram(const QString& program); 48 | 49 | Ui::LaunchDialog* ui; 50 | }; 51 | 52 | #endif // LAUNCHDIALOG_H 53 | -------------------------------------------------------------------------------- /Pdf4QtLaunchPad/launchdialog.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | LaunchDialog 4 | 5 | 6 | 7 | 0 8 | 0 9 | 525 10 | 272 11 | 12 | 13 | 14 | Launch Application 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtLibCore/aatl.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | aatl/SecuritySettings.xml 4 | 5 | 6 | -------------------------------------------------------------------------------- /Pdf4QtLibCore/aatl/source.txt: -------------------------------------------------------------------------------- 1 | http://trustlist.adobe.com/tl12.acrobatsecuritysettings -------------------------------------------------------------------------------- /Pdf4QtLibCore/cmaps/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright 1990-2019 Adobe. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 10 | Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | Neither the name of Adobe nor the names of its contributors may be 15 | used to endorse or promote products derived from this software without 16 | specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | -------------------------------------------------------------------------------- /Pdf4QtLibCore/sources/pdfdbgheap.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFDBGHEAP_H 24 | #define PDFDBGHEAP_H 25 | 26 | #include "pdfglobal.h" 27 | 28 | #if defined(PDF4QT_USE_DBG_HEAP) 29 | #define _CRTDBG_MAP_ALLOC 30 | #include 31 | #include 32 | 33 | #define new DBG_NEW 34 | 35 | #ifdef _DEBUG 36 | #define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ ) 37 | #else 38 | #define DBG_NEW new 39 | #endif 40 | 41 | #endif 42 | 43 | #endif // PDFDBGHEAP_H 44 | -------------------------------------------------------------------------------- /Pdf4QtLibCore/sources/pdfwidgetsnapshot.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #include "pdfwidgetsnapshot.h" 24 | #include "pdfdbgheap.h" 25 | 26 | namespace pdf 27 | { 28 | 29 | const PDFWidgetSnapshot::SnapshotItem* PDFWidgetSnapshot::getPageSnapshot(PDFInteger pageIndex) const 30 | { 31 | auto it = std::find_if(items.cbegin(), items.cend(), [pageIndex](const auto& item) { return item.pageIndex == pageIndex; }); 32 | if (it != items.cend()) 33 | { 34 | return &*it; 35 | } 36 | 37 | return nullptr; 38 | } 39 | 40 | } // namespace pdf 41 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/pdfaboutdialog.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFABOUTDIALOG_H 24 | #define PDFABOUTDIALOG_H 25 | 26 | #include 27 | 28 | namespace Ui 29 | { 30 | class PDFAboutDialog; 31 | } 32 | 33 | namespace pdfviewer 34 | { 35 | 36 | class PDFAboutDialog : public QDialog 37 | { 38 | Q_OBJECT 39 | 40 | public: 41 | explicit PDFAboutDialog(QWidget* parent = nullptr); 42 | virtual ~PDFAboutDialog() override; 43 | 44 | private: 45 | Ui::PDFAboutDialog* ui; 46 | }; 47 | 48 | } // namespace pdfviewer 49 | 50 | #endif // PDFABOUTDIALOG_H 51 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/pdfsendmail.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFSENDMAIL_H 24 | #define PDFSENDMAIL_H 25 | 26 | #include 27 | 28 | class QWidget; 29 | 30 | namespace pdfviewer 31 | { 32 | 33 | class PDFSendMail 34 | { 35 | public: 36 | PDFSendMail() = delete; 37 | 38 | static bool sendMail(QWidget* parent, QString subject, QString fileName); 39 | }; 40 | 41 | } // namespace pdfviewer 42 | 43 | #endif // PDFSENDMAIL_H 44 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/pdfviewerglobal.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFVIEWERGLOBAL_H 24 | #define PDFVIEWERGLOBAL_H 25 | 26 | #include 27 | 28 | #if !defined(PDF4QTLIBGUILIBSHARED_EXPORT) 29 | 30 | #if defined(PDF4QTLIBGUI_LIBRARY) 31 | # define PDF4QTLIBGUILIBSHARED_EXPORT Q_DECL_EXPORT 32 | #else 33 | # define PDF4QTLIBGUILIBSHARED_EXPORT Q_DECL_IMPORT 34 | #endif 35 | 36 | #endif 37 | 38 | #endif // PDFVIEWERGLOBAL_H 39 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/find-advanced.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/find-next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/find-previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 9 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/find.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/highlight.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | 19 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/magnifier.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/next-end.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/next-page.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 13 | 14 | 16 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/outline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-align-bottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-align-h-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 12 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-align-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-align-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-align-top.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 12 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-align-v-center.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 12 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-layout-form.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 14 | 15 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-same-height.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 14 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/pce-same-width.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 14 | 16 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/previous-start.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/print.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/redo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/result-error.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/result-information.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/result-ok.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/result-warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/rotate-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/rotate-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/strikeout.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/underline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/zoom-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtLibGui/resources/zoom-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Pdf4QtLibWidgets/sources/pdfwidgetsglobal.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFWIDGETSGLOBAL_H 24 | #define PDFWIDGETSGLOBAL_H 25 | 26 | #include 27 | 28 | #include 29 | 30 | #if !defined(PDF4QTLIBWIDGETSSHARED_EXPORT) 31 | #if defined(PDF4QTLIBWIDGETS_LIBRARY) 32 | # define PDF4QTLIBWIDGETSSHARED_EXPORT Q_DECL_EXPORT 33 | #else 34 | # define PDF4QTLIBWIDGETSSHARED_EXPORT Q_DECL_IMPORT 35 | #endif 36 | #endif 37 | 38 | #endif // PDFWIDGETSGLOBAL_H 39 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/aboutdialog.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFPAGEMASTER_PDFABOUTDIALOG_H 24 | #define PDFPAGEMASTER_PDFABOUTDIALOG_H 25 | 26 | #include 27 | 28 | namespace Ui 29 | { 30 | class PDFAboutDialog; 31 | } 32 | 33 | namespace pdfpagemaster 34 | { 35 | 36 | class PDFAboutDialog : public QDialog 37 | { 38 | Q_OBJECT 39 | 40 | public: 41 | explicit PDFAboutDialog(QWidget* parent); 42 | virtual ~PDFAboutDialog() override; 43 | 44 | private: 45 | Ui::PDFAboutDialog* ui; 46 | }; 47 | 48 | } // namespace pdfpagemaster 49 | 50 | #endif // PDFPAGEMASTER_PDFABOUTDIALOG_H 51 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/app-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Pdf4QtPageMaster/app-icon.ico -------------------------------------------------------------------------------- /Pdf4QtPageMaster/app.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | app-icon.svg 4 | 5 | 6 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/icon.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "app-icon.ico" -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/group.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/insert-empty-page.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/insert-page-from-pdf.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 12 | 13 | 14 | 16 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/invert-selection.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 13 | 14 | 16 | 17 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/redo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/rotate-left.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/rotate-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/undo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/ungroup.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/zoom-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Pdf4QtPageMaster/resources/zoom-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Pdf4QtViewer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | add_executable(Pdf4QtViewer 24 | main.cpp 25 | icon.rc 26 | app.qrc 27 | ) 28 | 29 | target_link_libraries(Pdf4QtViewer PRIVATE Pdf4QtLibCore Pdf4QtLibWidgets Pdf4QtLibGui Qt6::Core Qt6::Gui Qt6::Widgets) 30 | 31 | set_target_properties(Pdf4QtViewer PROPERTIES 32 | WIN32_EXECUTABLE ON 33 | MACOSX_BUNDLE ON 34 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_LIB_DIR} 35 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_BIN_DIR} 36 | ) 37 | 38 | install(TARGETS Pdf4QtViewer RUNTIME DESTINATION ${PDF4QT_INSTALL_BIN_DIR} LIBRARY DESTINATION ${PDF4QT_INSTALL_LIB_DIR}) 39 | -------------------------------------------------------------------------------- /Pdf4QtViewer/app-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/Pdf4QtViewer/app-icon.ico -------------------------------------------------------------------------------- /Pdf4QtViewer/app.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | app-icon.svg 4 | 5 | 6 | -------------------------------------------------------------------------------- /Pdf4QtViewer/icon.rc: -------------------------------------------------------------------------------- 1 | IDI_ICON1 ICON DISCARDABLE "app-icon.ico" -------------------------------------------------------------------------------- /PdfExampleGenerator/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | add_executable(PdfExampleGenerator 24 | pdfexamplesgenerator.cpp 25 | main.cpp 26 | ) 27 | 28 | target_link_libraries(PdfExampleGenerator PRIVATE Pdf4QtLibCore Qt6::Core Qt6::Widgets Qt6::Gui) 29 | 30 | set_target_properties(PdfExampleGenerator PROPERTIES 31 | WIN32_EXECUTABLE ON 32 | MACOSX_BUNDLE ON 33 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_LIB_DIR} 34 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_BIN_DIR} 35 | ) 36 | -------------------------------------------------------------------------------- /PdfExampleGenerator/main.cpp: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #include 24 | 25 | #include "pdfexamplesgenerator.h" 26 | 27 | int main(int argc, char *argv[]) 28 | { 29 | QApplication a(argc, argv); 30 | PDFExamplesGenerator::generateAnnotationsExample(); 31 | PDFExamplesGenerator::generatePageBoxesExample(); 32 | PDFExamplesGenerator::generateOutlineExample(); 33 | PDFExamplesGenerator::generatePageDrawExample(); 34 | } 35 | -------------------------------------------------------------------------------- /PdfExampleGenerator/pdfexamplesgenerator.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFEXAMPLESGENERATOR_H 24 | #define PDFEXAMPLESGENERATOR_H 25 | 26 | class PDFExamplesGenerator 27 | { 28 | public: 29 | explicit PDFExamplesGenerator() = delete; 30 | 31 | static void generateAnnotationsExample(); 32 | static void generatePageBoxesExample(); 33 | static void generateOutlineExample(); 34 | static void generatePageDrawExample(); 35 | }; 36 | 37 | #endif // PDFEXAMPLESGENERATOR_H 38 | -------------------------------------------------------------------------------- /PdfTool/pdftoolattachments.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLATTACHMENTS_H 24 | #define PDFTOOLATTACHMENTS_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolAttachmentsApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLATTACHMENTS_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolcolorprofiles.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLCOLORPROFILES_H 24 | #define PDFTOOLCOLORPROFILES_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolColorProfiles : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLCOLORPROFILES_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftooldecrypt.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLDECRYPT_H 24 | #define PDFTOOLDECRYPT_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolDecryptApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLDECRYPT_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftooldiff.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLDIFF_H 24 | #define PDFTOOLDIFF_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolDiff : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLDIFF_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolencrypt.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLENCRYPT_H 24 | #define PDFTOOLENCRYPT_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolEncryptApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLENCRYPT_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolfetchtext.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLFETCHTEXT_H 24 | #define PDFTOOLFETCHTEXT_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolFetchTextApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLFETCHTEXT_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfo.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFO_H 24 | #define PDFTOOLINFO_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFO_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfofonts.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFOFONTS_H 24 | #define PDFTOOLINFOFONTS_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoFonts : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFOFONTS_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfoinks.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFOINKS_H 24 | #define PDFTOOLINFOINKS_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoInksApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFOINKS_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfojavascript.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFOJAVASCRIPT_H 24 | #define PDFTOOLINFOJAVASCRIPT_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoJavaScriptApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFOJAVASCRIPT_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfometadata.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFOMETADATA_H 24 | #define PDFTOOLINFOMETADATA_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoMetadataApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFOMETADATA_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfonameddestinations.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFONAMEDDESTINATIONS_H 24 | #define PDFTOOLINFONAMEDDESTINATIONS_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoNamedDestinationsApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFONAMEDDESTINATIONS_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfopageboxes.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFOPAGEBOXES_H 24 | #define PDFTOOLINFOPAGEBOXES_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoPageBoxesApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | 42 | #endif // PDFTOOLINFOPAGEBOXES_H 43 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinfostructuretree.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINFOSTRUCTURETREE_H 24 | #define PDFTOOLINFOSTRUCTURETREE_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInfoStructureTreeApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLINFOSTRUCTURETREE_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolinkcoverage.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLINKCOVERAGE_H 24 | #define PDFTOOLINKCOVERAGE_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolInkCoverageApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | #endif // PDFTOOLINKCOVERAGE_H 41 | -------------------------------------------------------------------------------- /PdfTool/pdftooloptimize.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLOPTIMIZE_H 24 | #define PDFTOOLOPTIMIZE_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolOptimize : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLOPTIMIZE_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolseparate.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLSEPARATE_H 24 | #define PDFTOOLSEPARATE_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolSeparate : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLSEPARATE_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolstatistics.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLSTATISTICS_H 24 | #define PDFTOOLSTATISTICS_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolStatisticsApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLSTATISTICS_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolunite.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLUNITE_H 24 | #define PDFTOOLUNITE_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolUnite : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLUNITE_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolverifysignatures.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLVERIFYSIGNATURES_H 24 | #define PDFTOOLVERIFYSIGNATURES_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolVerifySignaturesApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLVERIFYSIGNATURES_H 42 | -------------------------------------------------------------------------------- /PdfTool/pdftoolxml.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in all 13 | // copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | // SOFTWARE. 22 | 23 | #ifndef PDFTOOLXML_H 24 | #define PDFTOOLXML_H 25 | 26 | #include "pdftoolabstractapplication.h" 27 | 28 | namespace pdftool 29 | { 30 | 31 | class PDFToolXmlApplication : public PDFToolAbstractApplication 32 | { 33 | public: 34 | virtual QString getStandardString(StandardString standardString) const override; 35 | virtual int execute(const PDFToolOptions& options) override; 36 | virtual Options getOptionsFlags() const override; 37 | }; 38 | 39 | } // namespace pdftool 40 | 41 | #endif // PDFTOOLXML_H 42 | -------------------------------------------------------------------------------- /Release_Process.txt: -------------------------------------------------------------------------------- 1 | Release process steps: 2 | 1) Increment program version 3 | 2) Build release version of the program 4 | 3) Adjust RELEASES.txt for the new version 5 | 4) Commit changes 6 | 5) Sign all exe and dll files (including using timestamp http://timestamp.digicert.com ) 7 | 6) Create MSI installation from signed files 8 | 7) Sign MSI installation 9 | 10 | signtool sign /f certificate.pfx /p ???????????? /fd SHA256 /t http://timestamp.digicert.com *.exe 11 | signtool sign /f certificate.pfx /p ???????????? /fd SHA256 /t http://timestamp.digicert.com *.msi -------------------------------------------------------------------------------- /UnitTests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # MIT License 2 | # 3 | # Copyright (c) 2018-2025 Jakub Melka and Contributors 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in all 13 | # copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | # SOFTWARE. 22 | 23 | add_executable(UnitTests 24 | tst_lexicalanalyzertest.cpp 25 | ) 26 | 27 | target_link_libraries(UnitTests PRIVATE Pdf4QtLibCore Qt6::Core Qt6::Gui Qt6::Test) 28 | 29 | set_target_properties(UnitTests PROPERTIES 30 | WIN32_EXECUTABLE OFF 31 | MACOSX_BUNDLE OFF 32 | LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_LIB_DIR} 33 | RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PDF4QT_INSTALL_BIN_DIR} 34 | ) 35 | -------------------------------------------------------------------------------- /WixInstaller/PDF4QT.sln.in: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.2.32526.322 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PDF4QT", "PDF4QT.wixproj", "{45030FAF-48F0-491A-87B3-CC9DB74CF389}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x86 = Debug|x86 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {45030FAF-48F0-491A-87B3-CC9DB74CF389}.Debug|x86.ActiveCfg = Debug|x86 15 | {45030FAF-48F0-491A-87B3-CC9DB74CF389}.Debug|x86.Build.0 = Debug|x86 16 | {45030FAF-48F0-491A-87B3-CC9DB74CF389}.Release|x86.ActiveCfg = Release|x86 17 | {45030FAF-48F0-491A-87B3-CC9DB74CF389}.Release|x86.Build.0 = Release|x86 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {56E2C17B-8E0F-45F1-A769-FA8D9C16F459} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /WixInstaller/createInstaller.ps1.in: -------------------------------------------------------------------------------- 1 | candle -d"DevEnvDir=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\\" -d"SolutionDir=${PDF4QT_WIX_DIR}" -d"SolutionExt=.sln" -d"SolutionFileName=PDF4QT.sln" -d"SolutionName=PDF4QT" -d"SolutionPath=PDF4QT.sln" -d"Configuration=Release" -d"OutDir=bin\Release\" -d"Platform=x86" -d"ProjectDir=${PDF4QT_WIX_DIR}" -d"ProjectExt=.wixproj" -d"ProjectFileName=PDF4QT.wixproj" -d"ProjectName=PDF4QT" -d"ProjectPath=PDF4QT.wixproj" -d"TargetDir=bin\Release\" -d"TargetExt=.msi" -d"TargetFileName=PDF4QT.msi" -d"TargetName=PDF4QT" -d"TargetPath=bin\Release\PDF4QT.msi" -out obj\Release\ -arch x86 -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUIExtension.dll" Product.wxs 2 | Light -out .\bin\Release\PDF4QT.msi -pdbout .\bin\Release\PDF4QT.wixpdb -cultures:null -ext "C:\Program Files (x86)\WiX Toolset v3.11\bin\\WixUIExtension.dll" -contentsfile obj\Release\PDF4QT.wixproj.BindContentsFileListnull.txt -outputsfile obj\Release\PDF4QT.wixproj.BindOutputsFileListnull.txt -builtoutputsfile obj\Release\PDF4QT.wixproj.BindBuiltOutputsFileListnull.txt -wixprojectfile .\PDF4QT.wixproj obj\Release\Product.wixobj 3 | -------------------------------------------------------------------------------- /assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakubMelka/PDF4QT/b7a5c9507cf832520f2937446303cdebd1bf1d37/assets/logo.png -------------------------------------------------------------------------------- /make-package.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir -p install/DEBIAN/ 4 | file="install/DEBIAN/control" 5 | 6 | >$file 7 | echo "Package: PDF4QT" >>$file 8 | echo "Version: ${PDF4QT_VERSION}" >>$file 9 | echo "Section: base" >>$file 10 | echo "Priority: optional" >>$file 11 | echo "Architecture: amd64" >>$file 12 | echo "Maintainer: Jakub Melka" >>$file 13 | echo "Description: Unleash the power of PDF4QT: Your go-to open source PDF editor powered by the Qt framework. With a robust C++ library, intuitive PDF viewing/editing applications, and a handy command-line tool, PDF4QT streamlines your PDF interactions. Try it today." >>$file 14 | echo "Homepage: https://jakubmelka.github.io/" >>$file 15 | echo "Vcs-Browser: https://github.com/JakubMelka/PDF4QT" >>$file 16 | 17 | 18 | dpkg-deb --build install 19 | 20 | mv install.deb PDF4QT-${PDF4QT_VERSION}.deb 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /qt.conf: -------------------------------------------------------------------------------- 1 | [Platforms] 2 | WindowsArguments = fontengine=freetype -------------------------------------------------------------------------------- /vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pdf4qt", 3 | "version-string": "1.3.7", 4 | "dependencies": [ "tbb", "openssl", "lcms", "zlib", "openjpeg", "freetype", "ijg-libjpeg", "libpng", "blend2d" ] 5 | } 6 | -------------------------------------------------------------------------------- /vcpkg/overlays/libpng/portfile.cmake: -------------------------------------------------------------------------------- 1 | set(VCPKG_POLICY_EMPTY_PACKAGE enabled) 2 | -------------------------------------------------------------------------------- /vcpkg/overlays/libpng/vcpkg.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "libpng", 3 | "version": "1.0.0", 4 | "port-version": 0 5 | } 6 | -------------------------------------------------------------------------------- /vcpkg_with_qt.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pdf4qt", 3 | "version-string": "1.3.3", 4 | "dependencies": [ "openssl", "lcms", "zlib", "openjpeg", "freetype", "ijg-libjpeg", "libpng", "qt" ] 5 | } 6 | -------------------------------------------------------------------------------- /version.txt.in: -------------------------------------------------------------------------------- 1 | ${PDF4QT_VERSION} --------------------------------------------------------------------------------