Commit Graph
30 Commits
Author SHA1 Message Date
Zhihui Song 800a6f9fd7 test: bound native tail reads instead of waiting indefinitely in DataReader 2026-11-08 18:41:10 +08:00
Zhihui Song 03a4fb6387 fix: clarify path validation and clean up Windows stream tests safely 2026-11-08 00:05:46 +08:00
Zhihui Song b334ebbbfe fix: read PDF jobs on demand through a read-only file stream 2026-11-07 15:05:34 +08:00
Zhihui Song 17f5f1e3c5 fix: load Windows PDF print jobs through a stream 2026-11-07 14:12:05 +08:00
cart2notasmn-opsandClaude Opus 5.5 f256775bec fix: create the Direct2D factory multi-threaded for Windows.Data.Pdf
Windows.Data.Pdf renders a page on several worker threads that share the
device context passed to RenderPageToDeviceContext. With a single-threaded
factory Direct2D takes no locks, so those threads race inside d2d1.dll:
access violations reading near null (d2d1.dll+0x93fd4, address 0x338) or
executing freed memory (BEX64), mostly on long jobs of scanned pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 12:31:35 -03:00
skylar taylor-barrick 5f80b9baf6 feat: report PDF page total before processing 2026-10-12 23:08:56 +02:00
skylar taylor-barrick 3c60c53482 fix: propagate DXGI terminal failures and report PDF page processing 2026-10-12 23:08:35 +02:00
ArcticLampyrid cc4826764d chore: upgrade dependencies 2026-04-25 03:20:33 +08:00
ArcticLampyrid 774996a59b feat: add Chromium-style safe EMF playback 2026-04-22 03:21:29 +08:00
ArcticLampyridandTATSUNO “Taz” Yasuhiro a61a99ff11 feat: align with Chromium's behavior for GDI printing initialization
Co-authored-by: TATSUNO “Taz” Yasuhiro <ytatsuno.jp@gmail.com>
2026-04-21 02:18:15 +08:00
ArcticLampyridandClaude Sonnet 4.6 b303b9f0ad fix: avoid TOCTOU race in printer enumeration by retrying on insufficient buffer
Replace the probe-then-fetch pattern with a grow-on-demand loop: start with a
null buffer and reallocate whenever EnumPrintersW returns ERROR_INSUFFICIENT_BUFFER,
so a printer list change between the two calls no longer causes a failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-21 02:05:14 +08:00
ArcticLampyrid fd85c2eedd feat: image printer 2024-08-15 16:22:34 +08:00
ArcticLampyrid 4ab5855fcc refactor: move dxgi print logic into seperated mod for reusage 2024-08-15 16:20:01 +08:00
ArcticLampyrid 84f1daa394 fix: set proper dpi for DirectX render 2024-07-10 18:19:27 +08:00
ArcticLampyrid 562466caca feat: add Windows.Data.Pdf backend for pdf printing 2024-07-08 07:27:53 +08:00
ArcticLampyrid e63c0c7e51 chore: update dependencies 2024-06-22 07:10:37 +08:00
ArcticLampyrid 681b6fd8bd fix: do not include that source error in its own Display representation
Link: https://alampy.com/2024/05/14/a-brief-of-error-chain-in-rust/
Link: https://github.com/rust-lang/api-guidelines/pull/210
2024-06-21 15:05:07 +08:00
ArcticLampyrid e94b6046d1 feat: expose error chains 2024-03-14 16:07:47 +08:00
ArcticLampyrid 6651a8a9af docs: initial documents 2024-03-14 16:07:47 +08:00
ArcticLampyrid d39ad272c1 test: use test_utils to contains code supporting tests 2024-03-14 16:07:40 +08:00
ArcticLampyrid b751858cec refactor: rename PrinterInfo to PrinterDevice 2024-03-14 01:36:35 +08:00
ArcticLampyrid 2b980f0aee test: cover more branches 2024-03-12 17:34:26 +08:00
ArcticLampyrid 526866498a test: split into different modules 2024-03-12 00:26:31 +08:00
ArcticLampyrid 35dd64b5d7 feat: initial support for print ticket 2024-03-10 02:41:01 +08:00
ArcticLampyrid a0566b3add feat: support delicate errors & options 2024-03-10 02:25:18 +08:00
ArcticLampyrid 29f8fe7313 chore!: upgrade windows crate 2024-03-10 02:25:18 +08:00
ArcticLampyrid 23bb7ee04a refactor: use std::alloc for better performance 2024-03-10 02:24:28 +08:00
ArcticLampyrid 50c51dcff7 feat: make pdfium pluggable 2024-03-07 00:19:47 +08:00
ArcticLampyrid b997e63124 feat: pdfium printer 2024-03-07 00:19:41 +08:00
ArcticLampyrid 820f1d0d63 feat: printer info & xps printer 2024-03-07 00:19:30 +08:00