diff --git a/AGENTS.md b/AGENTS.md index f984c81b..bbf2f7ea 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -35,6 +35,8 @@ Every asset must be one of: - **Public domain.** - **Contributor-original:** created, photographed or generated by a contributor who owns it and licenses it under the project licence (`MIT OR Apache-2.0`). +**One narrow exception: Storyteller's own brand.** The ArtCraft name and logos in `docs/brand/` are owned by Storyteller and are **not** open source (`LicenseRef-Storyteller-Trademark`, terms in `docs/brand/LICENSE-brand.txt`). They may be used only as `kind = "logo"` entries from that directory, to identify the project. Never add other files under this licence, and never modify the logos. + Anything else is forbidden, including assets whose licence you cannot prove from the source. Examples: - system fonts (Apple, Microsoft, Google Android system UI fonts that are not openly licensed); - emoji artwork from Apple, Microsoft or Samsung; diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index e53b6ed1..ff2038e5 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -4,7 +4,7 @@ Every asset PrintCraft includes, bundles or uses to build its published material, with its author, source and licence. The policy is in [AGENTS.md](AGENTS.md) §1. The machine-readable list, with SHA-256 hashes, is [ATTRIBUTION.toml](ATTRIBUTION.toml). Licence texts are kept beside the assets and summarised in [NOTICE](NOTICE). -## In this repository (193) +## In this repository (201) | Asset | Title | Author | Licence | Source | Used for | |---|---|---|---|---|---| @@ -201,6 +201,14 @@ Every asset PrintCraft includes, bundles or uses to build its published material | `docs/images/printcraft-tools.png` | PrintCraft screenshot: All tools | PrintCraft contributors (generated by `cargo xtask screenshots`) | MIT OR Apache-2.0 | this repository | README: tool catalogue. Shows only PrintCraft UI, Lucide icons and the showcase PDF built from the [[fetched]] OFL fonts | | `docs/images/printcraft-twoup.png` | PrintCraft screenshot: Two-up reading | PrintCraft contributors (generated by `cargo xtask screenshots`) | MIT OR Apache-2.0 | this repository | README: layouts. Shows only PrintCraft UI, Lucide icons and the showcase PDF built from the [[fetched]] OFL fonts | | `docs/images/printcraft-viewer.png` | PrintCraft screenshot: Viewer with comments | PrintCraft contributors (generated by `cargo xtask screenshots`) | MIT OR Apache-2.0 | this repository | README hero. Shows only PrintCraft UI, Lucide icons and the showcase PDF built from the [[fetched]] OFL fonts | +| `docs/brand/artcraft-logo-white.png` | ArtCraft brand: artcraft-logo-white | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-logo-white.svg` | ArtCraft brand: artcraft-logo-white | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-logo.png` | ArtCraft brand: artcraft-logo | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-logo.svg` | ArtCraft brand: artcraft-logo | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-mark-black.png` | ArtCraft brand: artcraft-mark-black | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-mark-black.svg` | ArtCraft brand: artcraft-mark-black | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-mark.png` | ArtCraft brand: artcraft-mark | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | +| `docs/brand/artcraft-mark.svg` | ArtCraft brand: artcraft-mark | Storyteller | LicenseRef-Storyteller-Trademark | Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it. | ## Compiled in through dependencies (6) diff --git a/ATTRIBUTION.toml b/ATTRIBUTION.toml index affc9784..5538d68f 100644 --- a/ATTRIBUTION.toml +++ b/ATTRIBUTION.toml @@ -2464,3 +2464,91 @@ licence_file = "LICENSE-MIT" kind = "image" usage = "README hero. Shows only PrintCraft UI, Lucide icons and the showcase PDF built from the [[fetched]] OFL fonts" sha256 = "13c0032d140a0b8db98352055864cff65aade8b212efc9ed1166d69512ab755a" + +[[asset]] +path = "docs/brand/artcraft-logo-white.png" +title = "ArtCraft brand: artcraft-logo-white" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "8b86aeb06a12a90ba77a60e0d90329272310e244ee5c1f9b161b391280ca79d8" + +[[asset]] +path = "docs/brand/artcraft-logo-white.svg" +title = "ArtCraft brand: artcraft-logo-white" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "a3e03dc49f9ad4225b8517d5424309c8d1c864d3996d862190d9cc797d5af427" + +[[asset]] +path = "docs/brand/artcraft-logo.png" +title = "ArtCraft brand: artcraft-logo" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "08fc6d9d3717e8f13417bac6f9025b50e11d1e0b32e9e000883d2fe0c4a0c67b" + +[[asset]] +path = "docs/brand/artcraft-logo.svg" +title = "ArtCraft brand: artcraft-logo" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "3188971e1affdf4f6be4fa65f715376a7a305e6aa741ec78b0296c8f934eff08" + +[[asset]] +path = "docs/brand/artcraft-mark-black.png" +title = "ArtCraft brand: artcraft-mark-black" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "5954cc0306e1b9d7beb47097e2e842157113a39d9aba078b57304902687936a9" + +[[asset]] +path = "docs/brand/artcraft-mark-black.svg" +title = "ArtCraft brand: artcraft-mark-black" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "570adcb4f7ba8ca0647f97074476bab81d3272988f1cdee52efa21bf026036a4" + +[[asset]] +path = "docs/brand/artcraft-mark.png" +title = "ArtCraft brand: artcraft-mark" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "9d372157a949c147318561e629b11561c28b7cbc14c84b516a3fe6e84d8fbbad" + +[[asset]] +path = "docs/brand/artcraft-mark.svg" +title = "ArtCraft brand: artcraft-mark" +author = "Storyteller" +source = "Storyteller brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" +licence = "LicenseRef-Storyteller-Trademark" +licence_file = "docs/brand/LICENSE-brand.txt" +kind = "logo" +usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. Not open source; forks must remove it." +sha256 = "f87af81b6fa411da8820eed2bfdcc54c0ee9cd453b4e868c64f56c69db142d0e" diff --git a/README.md b/README.md index a51f12b7..d2d4b7bc 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,65 @@ -
+
+
+
+ The open-source PDF workbench.
+ Read, organize, combine, split and secure PDFs in a fast, native app, written in Rust from the ground up.
+ macOS · Windows · Linux · the web
+
+
+
+
+
+
+ PrintCraft on getartcraft.com · + ArtCraft · + All Crafting Apps +
+
+
+
+ The PrintCraft Showcase, a 13-page specimen PDF, open with the All tools panel and threaded comments.
+
+ Highlights · + Read · + Find · + Organize · + Combine & split · + Protect · + Forms & layers · + Everywhere · + Agents · + How it's built · + Get started · + What's next · + Crafting Apps +
--- @@ -58,7 +94,11 @@ No account, no telemetry, no cloud. It works offline and opens instantly. The en PrintCraft renders PDFs with care for the details that make a page feel right: kerning and ligatures, right-to-left and complex scripts, vertical CJK, colour emoji, shadings, blend modes, soft masks and optional content. -
+
+
+
+ Twelve writing systems on one page, plus vertical Japanese, at 125%.
+
![]() |
-![]() |
+![]() |
+![]() |
| Two-up Read mode | -Dark theme | +Two-up Read mode, ready for long reading | +The dark theme, with the comments panel open |
-
## Navigate long documents
Bookmarks, page thumbnails and the document's own page labels (i, ii, 1, 2…) keep you oriented in long documents.
-
+![]() |
+![]() |
+
| Find as you type: match 10 of 16 | +Nested bookmarks with the document's own page labels | +
+
+
+
+ Organize pages with three pages selected and the page tools in the toolbar above.
+
![]() |
+![]() Split document: one page per file makes 13 files. |
![]() |
+![]() Document Properties, Description tab |
**Document Properties** shows:
@@ -167,8 +218,8 @@ Documents restricted by their author show a clear notice, and PrintCraft honours
+ + + + Come make things with us+ ++ Our Discord is where artists of every kind hang out: people who paint, shoot, draw, cut film, + set type, and people still figuring out what they like to make. Share what you're working on, + ask for help, tell us what's broken, or tell us what you wish these tools could do. + Whatever your medium and however long you've been at it, you're welcome here. + + ++ discord.gg/artcraft · + getartcraft.com · + The Crafting Apps · + PrintCraft + + +--- ## Licence MIT OR Apache-2.0 ([LICENSE-MIT](LICENSE-MIT), [LICENSE-APACHE](LICENSE-APACHE)). Every icon, font and image is openly licensed and listed, with its author and source, in [ATTRIBUTION.md](ATTRIBUTION.md). The policy is in [AGENTS.md](AGENTS.md), and required notices are in [NOTICE](NOTICE). Contributors and agents: read [AGENTS.md](AGENTS.md) and [CLAUDE.md](CLAUDE.md). Adobe, Acrobat, Photoshop, Illustrator, Premiere Pro and Lightroom are trademarks of Adobe Inc. PrintCraft is an independent project, not affiliated with or endorsed by Adobe. + +
+ |