feat: rebrand to MMD PDF, single corporate theme, and remove original text under an edit

- Services/PdfRedactText.cs: strip text whose origin falls inside a CoverAnnotation
  from the page content stream at save time, hooked into PdfBurn.DrawAnnotationsIntoDoc.
  Fixes edited values staying recoverable by text extraction.
- Themes/MMD.xaml replaces all thirteen themes; picker and accent strip removed; no dark mode.
- Rename KillerPDF -> MMD PDF across code, resources, packaging and locale strings; new icon.
- Remove the upstream author credit and the in-app install button.
This commit is contained in:
2026-08-27 07:37:09 +02:00
parent 532485a830
commit 6610acfa44
230 changed files with 9362 additions and 11508 deletions
+26 -26
View File
@@ -3,7 +3,7 @@
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<!-- ================================================================
KillerPDF - English (en-US) strings
MmdPdf - English (en-US) strings
================================================================ -->
<!-- ── Toolbar tooltips ─────────────────────────────────────────── -->
@@ -46,7 +46,7 @@
<sys:String x:Key="Str_TT_CollapseSidebar">Collapse sidebar (F9)</sys:String>
<sys:String x:Key="Str_TT_ExpandSidebar">Expand sidebar (F9)</sys:String>
<sys:String x:Key="Str_TT_KeyboardShortcuts">Keyboard shortcuts (F1)</sys:String>
<sys:String x:Key="Str_TT_About">About KillerPDF (F12)</sys:String>
<sys:String x:Key="Str_TT_About">About MMD PDF (F12)</sys:String>
<!-- ── About overlay ─────────────────────────────────────────────── -->
<sys:String x:Key="Str_About_Version">VERSION</sys:String>
@@ -131,7 +131,7 @@
<!-- ── Status bar ────────────────────────────────────────────────── -->
<sys:String x:Key="Str_Ready">Ready</sys:String>
<sys:String x:Key="Str_Portable">PORTABLE</sys:String>
<sys:String x:Key="Str_InstallBtn">Install KillerPDF</sys:String>
<sys:String x:Key="Str_InstallBtn">Install MMD PDF</sys:String>
<!-- ── Status messages (format strings - use string.Format) ─────── -->
<sys:String x:Key="Str_Opened">Opened {0} - {1} page(s)</sys:String>
@@ -202,37 +202,37 @@
Saving now overwrites the file and those changes will be lost. Save the other pane first if you want to keep them.</sys:String>
<sys:String x:Key="Str_St_SplitOn">Split pane on - F10 to close</sys:String>
<sys:String x:Key="Str_St_SplitOff">Split pane off</sys:String>
<sys:String x:Key="Str_Dlg_InstallTitle">Install KillerPDF</sys:String>
<sys:String x:Key="Str_Dlg_InstallMsg" xml:space="preserve">Install KillerPDF on this computer?
<sys:String x:Key="Str_Dlg_InstallTitle">Install MMD PDF</sys:String>
<sys:String x:Key="Str_Dlg_InstallMsg" xml:space="preserve">Install MMD PDF on this computer?
Installing copies the app to your Programs folder for faster startup and adds a Start menu entry. You can keep or delete this portable file afterward.</sys:String>
<sys:String x:Key="Str_Dlg_UpdateMachineMsg" xml:space="preserve">Update the existing all-users installation of KillerPDF?
<sys:String x:Key="Str_Dlg_UpdateMachineMsg" xml:space="preserve">Update the existing all-users installation of MmdPdf?
This replaces the copy in Program Files with the faster multi-file version. Any older per-user copy is removed so KillerPDF appears only once. You can keep or delete this portable file afterward.</sys:String>
<sys:String x:Key="Str_Dlg_UpdateUserMsg" xml:space="preserve">Update your existing KillerPDF installation?
This replaces the copy in Program Files with the faster multi-file version. Any older per-user copy is removed so MMD PDF appears only once. You can keep or delete this portable file afterward.</sys:String>
<sys:String x:Key="Str_Dlg_UpdateUserMsg" xml:space="preserve">Update your existing MMD PDF installation?
This replaces the installed copy with the faster multi-file version. You can keep or delete this portable file afterward.</sys:String>
<sys:String x:Key="Str_Dlg_OneInstallOnly" xml:space="preserve">KillerPDF is already installed for everyone on this computer. Update that installation, or uninstall it before choosing a per-user install.
<sys:String x:Key="Str_Dlg_OneInstallOnly" xml:space="preserve">MmdPdf is already installed for everyone on this computer. Update that installation, or uninstall it before choosing a per-user install.
KillerPDF will not create two installed copies.</sys:String>
MMD PDF will not create two installed copies.</sys:String>
<sys:String x:Key="Str_Btn_DoInstall">Install</sys:String>
<sys:String x:Key="Str_Btn_DoUpdate">Update</sys:String>
<sys:String x:Key="Str_Chk_Desktop">Add a desktop shortcut</sys:String>
<sys:String x:Key="Str_Chk_AllUsers">Install for everyone on this computer (needs admin)</sys:String>
<sys:String x:Key="Str_Status_InstallFailed">Install did not complete - KillerPDF is still running portable.</sys:String>
<sys:String x:Key="Str_Dlg_SetDefaultPdfMsg" xml:space="preserve">Would you like to set KillerPDF as your default PDF viewer?
<sys:String x:Key="Str_Status_InstallFailed">Install did not complete - MMD PDF is still running portable.</sys:String>
<sys:String x:Key="Str_Dlg_SetDefaultPdfMsg" xml:space="preserve">Would you like to set MMD PDF as your default PDF viewer?
Opens Windows Settings - Default Apps.</sys:String>
<sys:String x:Key="Str_Dlg_UnsavedClose">You have unsaved changes. Close this file without saving?</sys:String>
<sys:String x:Key="Str_Dlg_UnsavedExit">You have unsaved changes. Close KillerPDF without saving?</sys:String>
<sys:String x:Key="Str_Dlg_UnsavedExit">You have unsaved changes. Close MMD PDF without saving?</sys:String>
<sys:String x:Key="Str_Dlg_PageOutOfRange" xml:space="preserve">This document has {0} page(s) sized outside what Adobe Reader supports (3 to 14,400 points per side) - Adobe shows these as blank pages.
Scale them to a supported size? The pages keep their look and proportions.</sys:String>
<sys:String x:Key="Str_Dlg_FailedOpen" xml:space="preserve">Failed to open PDF:
{0}</sys:String>
<sys:String x:Key="Str_Dlg_AppTitle">KillerPDF</sys:String>
<sys:String x:Key="Str_Dlg_CloseAllDocs">You have {0} open documents. Would you like KillerPDF to close them all when you quit the app?</sys:String>
<sys:String x:Key="Str_Dlg_CloseAllDocsOne">You have 1 open document. Would you like KillerPDF to close it when you quit the app?</sys:String>
<sys:String x:Key="Str_Dlg_AppTitle">MMD PDF</sys:String>
<sys:String x:Key="Str_Dlg_CloseAllDocs">You have {0} open documents. Would you like MMD PDF to close them all when you quit the app?</sys:String>
<sys:String x:Key="Str_Dlg_CloseAllDocsOne">You have 1 open document. Would you like MMD PDF to close it when you quit the app?</sys:String>
<sys:String x:Key="Str_Dlg_RememberChoice">Remember my choice</sys:String>
@@ -365,7 +365,7 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
<sys:String x:Key="Str_Pos_TopLeft">Top Left</sys:String>
<!-- ── Print dialog ───────────────────────────────────────────────── -->
<sys:String x:Key="Str_Print_Title">KillerPDF - Print</sys:String>
<sys:String x:Key="Str_Print_Title">MMD PDF - Print</sys:String>
<sys:String x:Key="Str_Print_Printer">Printer</sys:String>
<sys:String x:Key="Str_Print_Paper">Paper size</sys:String>
<sys:String x:Key="Str_Print_PaperAuto">Match document</sys:String>
@@ -424,7 +424,7 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
<sys:String x:Key="Str_Drop_Separate">Open separately</sys:String>
<sys:String x:Key="Str_Drop_NothingOpenable">No PDFs or images were found to open.</sys:String>
<sys:String x:Key="Str_Drop_ManyTabs">This will open {0} separate tabs. Continue?</sys:String>
<sys:String x:Key="Str_Drop_TooMany">This folder or archive has {0} files. KillerPDF will open only the first {1}. Continue?</sys:String>
<sys:String x:Key="Str_Drop_TooMany">This folder or archive has {0} files. MMD PDF will open only the first {1}. Continue?</sys:String>
<sys:String x:Key="Str_Status_Merged">Merged {0} files - not yet saved</sys:String>
<sys:String x:Key="Str_Drop_Merging">Merging files...</sys:String>
<sys:String x:Key="Str_Drop_MergeCanceled">Merge canceled</sys:String>
@@ -557,14 +557,14 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
<sys:String x:Key="Str_KS_FullScreen">Full screen</sys:String>
<sys:String x:Key="Str_FullScreen_Hint">Press F11 or Esc to exit full screen</sys:String>
<!-- Quit prompt (family standard) -->
<sys:String x:Key="Str_Dlg_QuitMsg">Quit KillerPDF?</sys:String>
<sys:String x:Key="Str_Dlg_QuitMsg">Quit MMD PDF?</sys:String>
<sys:String x:Key="Str_Chk_CloseTabs">Close my open tabs</sys:String>
<sys:String x:Key="Str_Btn_Quit">Quit</sys:String>
<sys:String x:Key="Str_Btn_CancelDlg">Cancel</sys:String>
<!-- Status-bar messages (extracted from code) -->
<sys:String x:Key="Str_St_DataCleared">All KillerPDF data cleared</sys:String>
<sys:String x:Key="Str_St_DataCleared">All MMD PDF data cleared</sys:String>
<sys:String x:Key="Str_St_OcrRegionCanceled">OCR region canceled</sys:String>
<sys:String x:Key="Str_St_Erased">Erased</sys:String>
<sys:String x:Key="Str_St_Ungrouped">Ungrouped</sys:String>
@@ -613,7 +613,7 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
<!-- Dialog / message-box strings (extracted from code) -->
<sys:String x:Key="Str_Dlg_SaveBeforeUpdate">Please save your changes before updating.</sys:String>
<sys:String x:Key="Str_Dlg_Uninstalled">KillerPDF has been uninstalled.</sys:String>
<sys:String x:Key="Str_Dlg_Uninstalled">MMD PDF has been uninstalled.</sys:String>
<sys:String x:Key="Str_Dlg_SelectExtract">Select pages to extract.</sys:String>
<sys:String x:Key="Str_Dlg_SelectDelete">Select pages to delete.</sys:String>
<sys:String x:Key="Str_Dlg_NoPrinter">No printer is available.</sys:String>
@@ -879,7 +879,7 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
<sys:String x:Key="Str_Dlg_SearchableSaved" xml:space="preserve">Saved searchable PDF:&#10;{0}&#10;&#10;{1} pages processed, {2} words recognized.</sys:String>
<sys:String x:Key="Str_Dlg_Repaired" xml:space="preserve">"{0}" was repaired successfully.&#10;&#10;Bookmarks, forms, and other interactive features may have been lost. Use Save As to write the repaired file to a new location.</sys:String>
<sys:String x:Key="Str_Dlg_RepairedRaster" xml:space="preserve">"{0}" was repaired by rasterizing through PDFium.&#10;&#10;Text is not selectable in the repaired copy. Use Save As to write it to a new location.</sys:String>
<sys:String x:Key="Str_Dlg_RepairAsk" xml:space="preserve">"{0}" has a damaged structure and couldn't be added.&#10;&#10;Would you like KillerPDF to attempt a repair? A repaired copy will be created - the original file will not be changed.&#10;&#10;Note: repaired files may be missing bookmarks, forms, and other interactive features.</sys:String>
<sys:String x:Key="Str_Dlg_RepairAsk" xml:space="preserve">"{0}" has a damaged structure and couldn't be added.&#10;&#10;Would you like MMD PDF to attempt a repair? A repaired copy will be created - the original file will not be changed.&#10;&#10;Note: repaired files may be missing bookmarks, forms, and other interactive features.</sys:String>
<sys:String x:Key="Str_Dlg_LangDownloadAsk" xml:space="preserve">A language model ({0}) will be downloaded now so OCR can run.&#10;&#10;You can add more languages or switch to higher quality models any time from the OCR menu.</sys:String>
<sys:String x:Key="Str_Bar_More">More settings</sys:String>
<sys:String x:Key="Str_Bar_TT_Level">Keep the line on the nearest axis (horizontal or vertical)</sys:String>
@@ -893,14 +893,14 @@ Scale them to a supported size? The pages keep their look and proportions.</sys:
<sys:String x:Key="Str_TT_SaveOptions">Save options</sys:String>
<sys:String x:Key="Str_TT_OcrOptions">OCR options</sys:String>
<sys:String x:Key="Str_RecentHeading">RECENT</sys:String>
<sys:String x:Key="Str_KS_WindowTitle">KillerPDF - Keyboard Shortcuts</sys:String>
<sys:String x:Key="Str_KS_WindowTitle">MMD PDF - Keyboard Shortcuts</sys:String>
<sys:String x:Key="Str_UpdateAvailable">Update available: {0}</sys:String>
<sys:String x:Key="Str_UpdatePrompt" xml:space="preserve">Download and install KillerPDF {0}?&#10;&#10;The app will close and reopen automatically.</sys:String>
<sys:String x:Key="Str_UpdatePrompt" xml:space="preserve">Download and install MMD PDF {0}?&#10;&#10;The app will close and reopen automatically.</sys:String>
<sys:String x:Key="Str_UpdateDownloading">Downloading...</sys:String>
<sys:String x:Key="Str_ClearAllData">Clear all Data</sys:String>
<sys:String x:Key="Str_ClearDataConfirm" xml:space="preserve">This will delete all saved settings, downloaded OCR language packs, and temporary files.&#10;&#10;Your PDF files are not affected. Continue?</sys:String>
<sys:String x:Key="Str_ClearDataDone" xml:space="preserve">Settings, language packs, and temp files were cleared.&#10;&#10;Restart KillerPDF to finish clearing any files still in use this session.</sys:String>
<sys:String x:Key="Str_Crash_Title">KillerPDF - Unexpected Error</sys:String>
<sys:String x:Key="Str_ClearDataDone" xml:space="preserve">Settings, language packs, and temp files were cleared.&#10;&#10;Restart MMD PDF to finish clearing any files still in use this session.</sys:String>
<sys:String x:Key="Str_Crash_Title">MMD PDF - Unexpected Error</sys:String>
<sys:String x:Key="Str_Crash_Log">Log: {0}</sys:String>
<sys:String x:Key="Str_Crash_Copy">Copy Report</sys:String>
<sys:String x:Key="Str_Crash_OpenLogs">Open Logs</sys:String>