Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion docs/changelog.html
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,26 @@ <h1>Changelog</h1>

<section>
<div class="container" style="max-width: 880px;">
<div class="release">
<div class="release-header">
<span class="version-tag">v1.15.0</span>
<span class="release-date">September 12, 2026</span>
<span class="release-badge">Latest</span>
</div>
<h3>Passwords that unlock once, stay unlocked, and a stronger encryption stack</h3>
<ul class="docs-list">
<li><strong>Password-protected PDFs</strong>: a correct password is no longer accepted by the unlock prompt and then rejected by every tool you open afterwards. Documents with accented or non-English characters in the password were the ones affected: the file appeared to open, the page thumbnails stayed blank, and each tool asked again for a password you had just typed correctly. PDFApps now tries the spellings the PDF standard allows, remembers the one that actually worked, and reuses it everywhere, so unlocking once is enough.</li>
<li><strong>Clearer wrong-password message</strong>: typing the wrong password now shows a plain, translated message instead of a generic error with technical details hidden behind a "Show Details" button.</li>
<li><strong>Encryption fixed on Linux (Flatpak)</strong>: the Flatpak build was missing a cryptography component, so encrypting a PDF with AES-256 failed outright and AES-encrypted files could not be opened by the Encrypt tool. The component is now bundled and both work.</li>
<li><strong>Security &amp; dependencies</strong>: pypdf updated to 6.16.2 and cryptography to 50.0.1, closing six advisories in the PDF parser and one in the cryptography library.</li>
<li><strong>Better release notes</strong>: the "What's new" text shown by the in-app updater no longer includes internal development entries, and security updates now get their own section listed first.</li>
</ul>
</div>

<div class="release">
<div class="release-header">
<span class="version-tag">v1.14.4</span>
<span class="release-date">August 4, 2026</span>
<span class="release-badge">Latest</span>
</div>
<h3>OCR language detection on Apple Silicon Macs</h3>
<ul class="docs-list">
Expand Down
63 changes: 62 additions & 1 deletion flatpak/io.github.nelsonduarte.PDFApps.metainfo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@
PDFApps is a fast, offline, all-in-one PDF editor and manager. No subscriptions,
no cloud uploads, no account required — your files never leave your computer.
</p>
<p>13 built-in tools:</p>
<p>15 built-in tools:</p>
<ul>
<li>Split PDFs by page ranges</li>
<li>Merge multiple PDFs with drag-and-drop ordering</li>
<li>Rotate, extract, and reorder pages</li>
<li>Compress with three quality levels</li>
<li>Add page numbers in six positions with four formats</li>
<li>N-up layout: 2, 4, 6, 9, or 16 pages per sheet</li>
<li>Encrypt and decrypt with passwords</li>
<li>Add watermarks and stamps</li>
<li>OCR for scanned documents (5 languages)</li>
Expand Down Expand Up @@ -96,6 +98,65 @@
</provides>

<releases>
<release version="1.15.0" date="2026-09-12">
<description>
<p>Password fixes and a stronger encryption stack:</p>
<ul>
<li>Correct passwords with accented or non-English characters are no longer rejected by the tools after unlocking</li>
<li>The password spelling that worked is reused across the viewer and every tool</li>
<li>A wrong password now shows a clear translated message</li>
<li>AES-256 encryption fixed in the Flatpak build, where a missing cryptography module made it fail</li>
<li>Security: pypdf 6.16.2 and cryptography 50.0.1, closing seven advisories</li>
</ul>
</description>
</release>
<release version="1.14.4" date="2026-08-04">
<description>
<p>OCR language packs installed through Homebrew are now detected on Apple Silicon Macs.</p>
</description>
</release>
<release version="1.14.3" date="2026-07-28">
<description>
<p>Viewer stability, legacy-encoding imports, and security updates:</p>
<ul>
<li>The shared document handle stays valid after a failed note deletion, and saving no longer races with rendering</li>
<li>In-document search is debounced, so typing a query no longer blocks the interface</li>
<li>Text files in Windows-1252 and Latin-1 encodings now import without errors</li>
<li>Security updates to pillow, pymupdf, pypdf, and qtawesome</li>
</ul>
</description>
</release>
<release version="1.14.0" date="2026-07-13">
<description>
<p>Page thumbnails sidebar in the viewer:</p>
<ul>
<li>A Pages tab shows a live thumbnail of every page; click one to jump to it</li>
<li>Thumbnails render on demand and stay sharp on high-DPI displays</li>
<li>A Contents tab shows the document outline when a PDF has bookmarks</li>
<li>Password-protected documents are verified correctly when opened for viewing</li>
</ul>
</description>
</release>
<release version="1.13.17" date="2026-06-28">
<description>
<p>Editor audit fixes, atomic saves, and streaming OCR:</p>
<ul>
<li>Encryption is preserved on save and annotation deletions persist</li>
<li>Atomic writes with restore-on-error added across the tools</li>
<li>Streaming OCR writer lowers peak memory use</li>
<li>PDF to DOCX conversion is now layout-aware</li>
</ul>
</description>
</release>
<release version="1.12.0" date="2026-04-13">
<description>
<p>Five new import formats and four new export formats:</p>
<ul>
<li>Import DOCX, PPTX, XLSX, HTML, and EPUB to PDF</li>
<li>Convert PDF to PPTX, XLSX, HTML, and EPUB</li>
</ul>
</description>
</release>
<release version="1.8.3" date="2026-04-05">
<description>
<p>New features and fixes:</p>
Expand Down
114 changes: 57 additions & 57 deletions msix/generate_listing_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,69 +254,69 @@
# RELEASE NOTES
# ============================================================
RELEASE_NOTES = {}
RELEASE_NOTES['en-us'] = '' # User left empty
RELEASE_NOTES['pt-pt'] = '''Versão 1.13.9 — Melhorias de segurança e instalador

• Auditoria de segurança completa: validação SHA-256 nos updates, escrita atómica de ficheiros de configuração, e limites mais restritos na extração de ZIP/TAR.
• Splash screen do instalador traduzido em 8 idiomas com animação de carregamento.
• Pacote macOS agora distribuído como .dmg (arrasta para Aplicações).
• Atualização da pypdf 6.10.2 com várias correções de segurança.
• 9 correções em ferramentas: validação reforçada na junção, marca de água, encriptação, OCR e conversão.
• Updater traduzido em 8 idiomas com diálogo de progresso melhorado.
RELEASE_NOTES['en-us'] = '''Version 1.15.0 — Password fixes and a stronger encryption stack

• Password-protected PDFs: a correct password is no longer accepted by the unlock prompt and then rejected by every tool. Passwords with accented or non-English characters were affected, leaving blank page thumbnails and repeated prompts.
• Unlock once and stay unlocked: the spelling that worked is remembered and reused across the viewer and all tools.
• A wrong password now shows a clear translated message instead of a generic error with hidden technical details.
• AES-256 encryption fixed on the Linux (Flatpak) build, where a missing cryptography component made it fail.
• Security: pypdf 6.16.2 and cryptography 50.0.1, closing six PDF parser advisories and one cryptography advisory.
'''
RELEASE_NOTES['es-es'] = '''Versión 1.13.9 — Auditoría de seguridad y mejoras del instalador

• Validación SHA-256 en actualizaciones, escritura atómica de configuración y límites más estrictos en extracción ZIP/TAR.
• Pantalla de carga del instalador traducida a 8 idiomas con animación.
• macOS ahora se distribuye como .dmg (arrastra a Aplicaciones).
• pypdf actualizado a 6.10.2 con varios parches de seguridad.
• 9 correcciones en herramientas: unión, marca de agua, cifrado, OCR y conversión.
• Actualizador traducido a 8 idiomas con diálogo de progreso mejorado.
RELEASE_NOTES['pt-pt'] = '''Versão 1.15.0 — Correções de palavra-passe e encriptação mais robusta

• PDFs protegidos: uma palavra-passe correta deixa de ser aceite no pedido de desbloqueio e rejeitada depois por todas as ferramentas. Afetava palavras-passe com acentos ou caracteres não ingleses, deixando miniaturas em branco e pedidos repetidos.
• Desbloqueie uma vez: a grafia que funcionou fica memorizada e é reutilizada no visualizador e em todas as ferramentas.
• Palavra-passe errada mostra agora uma mensagem traduzida e clara, em vez de um erro genérico com detalhes técnicos escondidos.
• Encriptação AES-256 corrigida na versão Linux (Flatpak), onde falhava por falta de um componente de criptografia.
• Segurança: pypdf 6.16.2 e cryptography 50.0.1, fechando seis avisos no leitor de PDF e um na biblioteca de criptografia.
'''
RELEASE_NOTES['fr-fr'] = '''Version 1.13.9 — Audit de sécurité et améliorations de l\'installateur

• Validation SHA-256 sur les mises à jour, écriture atomique de la configuration, limites strictes sur l\'extraction ZIP/TAR.
• Écran de démarrage de l\'installateur traduit en 8 langues avec animation.
• macOS livré désormais en .dmg (glissez vers Applications).
• Mise à jour de pypdf vers 6.10.2 avec plusieurs correctifs de sécurité.
• 9 corrections dans les outils : fusion, filigrane, chiffrement, OCR et conversion.
• Programme de mise à jour traduit en 8 langues avec dialogue de progression amélioré.
RELEASE_NOTES['es-es'] = '''Versión 1.15.0 — Correcciones de contraseña y cifrado más robusto

• PDF protegidos: una contraseña correcta ya no es aceptada al desbloquear y rechazada después por todas las herramientas. Afectaba a contraseñas con acentos o caracteres no ingleses, con miniaturas en blanco y peticiones repetidas.
• Desbloquee una vez: la grafía que funcionó se recuerda y se reutiliza en el visor y en todas las herramientas.
• Una contraseña incorrecta muestra ahora un mensaje traducido y claro, en lugar de un error genérico con detalles técnicos ocultos.
• Cifrado AES-256 corregido en la versión Linux (Flatpak), donde fallaba por faltar un componente de criptografía.
• Seguridad: pypdf 6.16.2 y cryptography 50.0.1, cerrando seis avisos del lector de PDF y uno de criptografía.
'''
RELEASE_NOTES['de-de'] = '''Version 1.13.9 — Sicherheitsaudit und Installer-Verbesserungen

• SHA-256-Validierung bei Updates, atomares Schreiben der Konfiguration, strengere ZIP/TAR-Extraktionsgrenzen.
• Übersetzte Installer-Splash in 8 Sprachen mit Ladeanimation.
• macOS wird jetzt als .dmg ausgeliefert (in Programme ziehen).
• pypdf auf 6.10.2 aktualisiert mit mehreren Sicherheitspatches.
• 9 Korrekturen in Werkzeugen: Zusammenführen, Wasserzeichen, Verschlüsselung, OCR, Konvertierung.
• Updater in 8 Sprachen übersetzt, mit verbessertem Fortschrittsdialog.
RELEASE_NOTES['fr-fr'] = '''Version 1.15.0 — Corrections de mot de passe et chiffrement renforcé

• PDF protégés : un mot de passe correct n\'est plus accepté au déverrouillage puis rejeté par tous les outils. Les mots de passe avec accents ou caractères non anglais étaient concernés, avec des miniatures vides et des demandes répétées.
• Déverrouillez une fois : l\'orthographe qui a fonctionné est mémorisée et réutilisée dans la visionneuse et tous les outils.
• Un mot de passe erroné affiche désormais un message traduit et clair, au lieu d\'une erreur générique aux détails techniques masqués.
• Chiffrement AES-256 corrigé sur la version Linux (Flatpak), où il échouait faute d\'un composant de cryptographie.
• Sécurité : pypdf 6.16.2 et cryptography 50.0.1, corrigeant six avis sur le lecteur PDF et un sur la cryptographie.
'''
RELEASE_NOTES['zh-cn'] = '''版本 1.13.9 — 安全审计与安装器优化

• 更新使用 SHA-256 校验、配置文件原子写入、更严格的 ZIP/TAR 解压限制。
• 安装器启动画面已翻译为 8 种语言,含加载动画。
• macOS 现以 .dmg 格式发布(拖入“应用程序”)。
• pypdf 升级至 6.10.2,包含多项安全补丁。
• 工具中 9 处修复:合并、水印、加密、OCR 与格式转换。
• 更新程序翻译为 8 种语言,进度对话框已改进。
RELEASE_NOTES['de-de'] = '''Version 1.15.0 — Passwort-Korrekturen und stärkere Verschlüsselung

• Geschützte PDFs: Ein korrektes Passwort wird nicht mehr beim Entsperren akzeptiert und danach von jedem Werkzeug abgelehnt. Betroffen waren Passwörter mit Akzenten oder nicht englischen Zeichen, mit leeren Miniaturansichten und wiederholten Abfragen.
• Einmal entsperren: Die Schreibweise, die funktioniert hat, wird gemerkt und im Viewer und in allen Werkzeugen wiederverwendet.
• Ein falsches Passwort zeigt jetzt eine klare, übersetzte Meldung statt eines generischen Fehlers mit versteckten technischen Details.
• AES-256-Verschlüsselung in der Linux-Version (Flatpak) korrigiert, wo eine fehlende Krypto-Komponente sie scheitern ließ.
• Sicherheit: pypdf 6.16.2 und cryptography 50.0.1, schließt sechs PDF-Parser-Hinweise und einen Krypto-Hinweis.
'''
RELEASE_NOTES['it-it'] = '''Versione 1.13.9 — Audit di sicurezza e miglioramenti dell\'installer

• Validazione SHA-256 sugli aggiornamenti, scrittura atomica della configurazione, limiti più rigidi sull\'estrazione ZIP/TAR.
• Splash dell\'installer tradotto in 8 lingue con animazione di caricamento.
• macOS distribuito come .dmg (trascina in Applicazioni).
• pypdf aggiornato a 6.10.2 con diverse patch di sicurezza.
• 9 correzioni negli strumenti: unione, filigrana, crittografia, OCR e conversione.
• Updater tradotto in 8 lingue con dialogo di avanzamento migliorato.
RELEASE_NOTES['zh-cn'] = '''版本 1.15.0 — 密码修复与更强的加密

• 受保护的 PDF:正确的密码不会再在解锁时被接受、随后却被所有工具拒绝。含重音或非英文字符的密码受影响,会出现空白缩略图和反复提示。
• 解锁一次即可:生效的密码写法会被记住,并在查看器和所有工具中复用。
• 密码错误时显示清晰的翻译提示,不再是隐藏技术细节的通用错误。
• 修复 Linux (Flatpak) 版本的 AES-256 加密,此前因缺少加密组件而失败。
• 安全:pypdf 升级至 6.16.2、cryptography 升级至 50.0.1,修复六项 PDF 解析器公告和一项加密库公告。
'''
RELEASE_NOTES['it-it'] = '''Versione 1.15.0 — Correzioni delle password e cifratura più robusta

• PDF protetti: una password corretta non viene più accettata allo sblocco e poi rifiutata da ogni strumento. Erano interessate le password con accenti o caratteri non inglesi, con miniature vuote e richieste ripetute.
• Sblocca una volta sola: la grafia che ha funzionato viene memorizzata e riusata nel visualizzatore e in tutti gli strumenti.
• Una password errata mostra ora un messaggio tradotto e chiaro, invece di un errore generico con dettagli tecnici nascosti.
• Cifratura AES-256 corretta nella versione Linux (Flatpak), dove falliva per un componente di crittografia mancante.
• Sicurezza: pypdf 6.16.2 e cryptography 50.0.1, chiudendo sei avvisi del lettore PDF e uno di crittografia.
'''
RELEASE_NOTES['nl-nl'] = '''Versie 1.13.9 — Beveiligingsaudit en installer-verbeteringen

• SHA-256-validatie bij updates, atomair schrijven van configuratie, striktere ZIP/TAR-extractielimieten.
• Vertaalde installer-splash in 8 talen met laad-animatie.
• macOS wordt nu als .dmg geleverd (sleep naar Programma\'s).
• pypdf bijgewerkt naar 6.10.2 met meerdere beveiligingspatches.
• 9 fixes in tools: samenvoegen, watermerk, versleuteling, OCR en conversie.
• Updater vertaald in 8 talen met verbeterd voortgangsdialoog.
RELEASE_NOTES['nl-nl'] = '''Versie 1.15.0 — Wachtwoordfixes en sterkere versleuteling

• Beveiligde PDF\'s: een correct wachtwoord wordt niet langer bij het ontgrendelen geaccepteerd en daarna door elke tool geweigerd. Wachtwoorden met accenten of niet-Engelse tekens waren getroffen, met lege miniaturen en herhaalde vragen.
• Eenmaal ontgrendelen: de schrijfwijze die werkte wordt onthouden en hergebruikt in de viewer en alle tools.
• Een verkeerd wachtwoord toont nu een duidelijke vertaalde melding in plaats van een generieke fout met verborgen technische details.
• AES-256-versleuteling hersteld in de Linux-versie (Flatpak), waar een ontbrekend crypto-onderdeel het liet mislukken.
• Beveiliging: pypdf 6.16.2 en cryptography 50.0.1, met zes PDF-parser-adviezen en één crypto-advies verholpen.
'''

# ============================================================
Expand Down