65 Commits
Author SHA1 Message Date
ArcticLampyrid 406ed733f1 release: v0.2.1 2026-06-01 18:13:53 +08:00
ArcticLampyridandCopilot 049b90e1c9 perf(test-utils): prefer to use -InputObject instead of -Name, avoiding double searching
Co-authored-by: Copilot <copilot@github.com>
2026-04-26 03:44:06 +08:00
ArcticLampyrid 40210f4872 fix(test-utils): canonicalize file path 2026-04-26 03:44:06 +08:00
ArcticLampyrid cf83253d8f test: add visual regression test 2026-04-26 03:44:06 +08:00
ArcticLampyrid 68fb7b3acb fix(test-in-windows-vm): collect exit code correctly 2026-04-26 03:44:06 +08:00
ArcticLampyrid cc4826764d chore: upgrade dependencies 2026-04-25 03:20:33 +08:00
ArcticLampyrid fba35cfc91 feat(test_utils): file printer device (#11) 2026-04-25 02:13:39 +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
ArcticLampyrid 4b280cad03 chore: configure target in vscode 2026-04-21 02:05:14 +08:00
ArcticLampyrid d91ffac4b8 build: verify pdfium downloads with sigstore 2026-04-21 02:05:14 +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 1646ac4be9 feat: add utils powered by KVM & Vagrant for testing in Windows VM 2026-04-21 02:05:14 +08:00
ArcticLampyrid a80430d175 release: v0.2.0 2024-08-30 02:03:13 +08:00
ArcticLampyrid 8ebd2a2593 feat: add PageImageableSize for fetching imageable size 2024-08-29 05:17:49 +08:00
ArcticLampyrid b96fa1ec44 feat: fetch capabilities for given ticket 2024-08-29 04:33:33 +08:00
ArcticLampyrid 6d92ece705 feat: add utility to specify copies (#1) 2024-08-16 00:09:29 +08:00
ArcticLampyrid a4c7fee2f0 feat!: remove listing DocumentDuplex as I never fetch it.
.NET do not provide support for listing it either.
2024-08-15 23:47:40 +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 39241a7247 chore: migrate lazy_static to OnceLock 2024-06-22 07:23:07 +08:00
ArcticLampyrid e63c0c7e51 chore: update dependencies 2024-06-22 07:10:37 +08:00
ArcticLampyrid 4747cc7dbd fix!: use plural form in capabilities for option packs listing 2024-06-22 02:34:30 +08:00
ArcticLampyrid b0f26c2e92 feat: add option pack for page resolution 2024-06-22 02:31:38 +08:00
ArcticLampyrid eec259b661 feat: add option pack for page output color 2024-06-22 01:44:15 +08:00
ArcticLampyrid 4bf1165cc8 feat: add option pack for duplex type 2024-06-21 22:46:45 +08:00
ArcticLampyrid 91fbf3f762 feat!: include feature option pack to reuse code 2024-06-21 20:18:32 +08:00
ArcticLampyrid 9026208a0d feat: add helper for PageOrientation 2024-06-21 18:36:48 +08:00
ArcticLampyrid 36d3fbc14c feat: add display_name to PageMediaSize 2024-06-21 18:36:32 +08:00
ArcticLampyrid 895caf9b8b docs: add example to extract print capabilities as xml 2024-06-21 18:20:21 +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 4c835c39a0 perf: make initializer for NULL_DEVICE value const 2024-06-21 15:00:52 +08:00
ArcticLampyrid c65922577f style: avoid warning when pdfium is disabled 2024-03-14 17:51:47 +08:00
ArcticLampyrid 58c1170707 fix: ensure port and driver exist for null device 2024-03-14 17:51:47 +08:00
ArcticLampyrid 675a33c06e ci: add test job 2024-03-14 17:51:36 +08:00
ArcticLampyrid 20db327a84 docs: add basic metadata for crate 2024-03-14 16:35:29 +08:00
ArcticLampyrid 3e067c1499 feat: (re-)export the OwnedName type 2024-03-14 16:07:47 +08:00
ArcticLampyrid 940ddc03b8 ci: configure for docs.rs 2024-03-14 16:07:47 +08:00
ArcticLampyrid e94b6046d1 feat: expose error chains 2024-03-14 16:07:47 +08:00
ArcticLampyrid 73b7d202e0 fix: detect platform properly for cross-compilation 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 46ad3deccc refactor!: reorganize document model for print schema 2024-03-14 12:35:47 +08:00
ArcticLampyrid 19869b7de4 refactor: reorganize print schema parser 2024-03-14 01:58:21 +08:00
ArcticLampyrid b751858cec refactor: rename PrinterInfo to PrinterDevice 2024-03-14 01:36:35 +08:00
ArcticLampyrid 769a28d7c8 chore: upgrade dependencies 2024-03-13 15:04:26 +08:00
ArcticLampyrid 2ed00958ec chore: more friendly error message when downloading pdfium failure 2024-03-13 15:02:08 +08:00
ArcticLampyrid 9d8867094c chore: enable only on Windows 2024-03-13 14:50:15 +08:00
ArcticLampyrid 2b980f0aee test: cover more branches 2024-03-12 17:34:26 +08:00
ArcticLampyrid b66ab0d74c feat: facilitate picking media size 2024-03-12 17:16:01 +08:00
ArcticLampyrid b68abe8ca3 feat: handle print schema structurally 2024-03-12 01:53:51 +08:00
ArcticLampyrid 526866498a test: split into different modules 2024-03-12 00:26:31 +08:00
ArcticLampyrid 1fe7dbf49a refactor: use Vec<u8> inside print ticket 2024-03-11 02:24:44 +08:00
ArcticLampyrid a839f6b188 refactor: use print ticket type when merging 2024-03-10 20:44:06 +08:00
ArcticLampyrid 2878ea4e71 test: initial unit tests 2024-03-10 03:44:14 +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 ebad062ef9 style: cleanup 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