From b049b2e2d2f256ae2edfab0f2b88ff758477bc40 Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Thu, 26 Mar 2026 23:04:17 +0000 Subject: [PATCH] Add 7 html java tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: advanced-usage, conversion-html-to-other-formats, conversion-html-to-various-image-formats, html5-canvas-rendering Source: AI Search API Tutorials: - Create PDF Custom Size – Convert HTML to PDF with Aspose - Create multipage tiff from SVG in Java – Step‑by‑Step Guide - How to Emulate iPhone – Complete Guide with Aspose.HTML - top level await example – Using await delay in JavaScript - Convert HTML to Markdown in Java – Preserve Original Formatting - Create PDF from HTML in Java – Parallel Batch Conversion Guide - Convert HTML to WebP – Complete Java Guide Auto-generated by Professionalize.Tutorials Agent --- html/arabic/java/advanced-usage/_index.md | 16 +- .../_index.md | 170 +++++++++++ .../_index.md | 4 + .../_index.md | 205 +++++++++++++ .../_index.md | 194 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 4 + .../_index.md | 222 +++++++++++++++ .../_index.md | 166 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 168 +++++++++++ html/chinese/java/advanced-usage/_index.md | 3 + .../_index.md | 168 +++++++++++ .../_index.md | 6 + .../_index.md | 203 +++++++++++++ .../_index.md | 194 +++++++++++++ .../_index.md | 239 ++++++++++++++++ .../_index.md | 9 +- .../_index.md | 224 +++++++++++++++ .../_index.md | 165 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 166 +++++++++++ html/czech/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 6 + .../_index.md | 205 +++++++++++++ .../_index.md | 195 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 4 + .../_index.md | 222 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/dutch/java/advanced-usage/_index.md | 2 + .../_index.md | 171 +++++++++++ .../_index.md | 5 + .../_index.md | 206 ++++++++++++++ .../_index.md | 197 +++++++++++++ .../_index.md | 239 ++++++++++++++++ .../_index.md | 6 +- .../_index.md | 225 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/english/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 6 + .../_index.md | 205 +++++++++++++ .../_index.md | 194 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 4 + .../_index.md | 224 +++++++++++++++ .../_index.md | 167 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 169 +++++++++++ html/french/java/advanced-usage/_index.md | 2 + .../_index.md | 172 +++++++++++ .../_index.md | 9 + .../_index.md | 207 ++++++++++++++ .../_index.md | 197 +++++++++++++ .../_index.md | 244 ++++++++++++++++ .../_index.md | 4 +- .../_index.md | 225 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 168 +++++++++++ html/german/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 9 + .../_index.md | 207 ++++++++++++++ .../_index.md | 197 +++++++++++++ .../_index.md | 244 ++++++++++++++++ .../_index.md | 4 + .../_index.md | 223 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 170 +++++++++++ html/greek/java/advanced-usage/_index.md | 4 +- .../_index.md | 171 +++++++++++ .../_index.md | 11 +- .../_index.md | 207 ++++++++++++++ .../_index.md | 197 +++++++++++++ .../_index.md | 242 ++++++++++++++++ .../_index.md | 2 + .../_index.md | 223 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 170 +++++++++++ html/hindi/java/advanced-usage/_index.md | 2 + .../_index.md | 172 +++++++++++ .../_index.md | 13 +- .../_index.md | 205 +++++++++++++ .../_index.md | 195 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 7 +- .../_index.md | 226 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/hongkong/java/advanced-usage/_index.md | 3 + .../_index.md | 168 +++++++++++ .../_index.md | 6 + .../_index.md | 203 +++++++++++++ .../_index.md | 194 +++++++++++++ .../_index.md | 235 +++++++++++++++ .../_index.md | 5 + .../_index.md | 224 +++++++++++++++ .../_index.md | 165 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 166 +++++++++++ html/hungarian/java/advanced-usage/_index.md | 2 + .../_index.md | 171 +++++++++++ .../_index.md | 4 + .../_index.md | 206 ++++++++++++++ .../_index.md | 196 +++++++++++++ .../_index.md | 239 ++++++++++++++++ .../_index.md | 4 + .../_index.md | 224 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/indonesian/java/advanced-usage/_index.md | 3 + .../_index.md | 170 +++++++++++ .../_index.md | 9 + .../_index.md | 205 +++++++++++++ .../_index.md | 196 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 2 + .../_index.md | 224 +++++++++++++++ .../_index.md | 167 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 168 +++++++++++ html/italian/java/advanced-usage/_index.md | 1 + .../_index.md | 172 +++++++++++ .../_index.md | 3 + .../_index.md | 205 +++++++++++++ .../_index.md | 197 +++++++++++++ .../_index.md | 239 ++++++++++++++++ .../_index.md | 4 +- .../_index.md | 222 +++++++++++++++ .../_index.md | 167 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/japanese/java/advanced-usage/_index.md | 2 + .../_index.md | 168 +++++++++++ .../_index.md | 6 + .../_index.md | 202 +++++++++++++ .../_index.md | 192 +++++++++++++ .../_index.md | 269 ++++++++++++++++++ .../_index.md | 6 + .../_index.md | 222 +++++++++++++++ .../_index.md | 165 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 166 +++++++++++ html/korean/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 6 + .../_index.md | 205 +++++++++++++ .../_index.md | 193 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 4 + .../_index.md | 224 +++++++++++++++ .../_index.md | 166 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 168 +++++++++++ html/polish/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 6 + .../_index.md | 205 +++++++++++++ .../_index.md | 198 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 8 +- .../_index.md | 225 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 170 +++++++++++ html/portuguese/java/advanced-usage/_index.md | 2 + .../_index.md | 172 +++++++++++ .../_index.md | 5 + .../_index.md | 205 +++++++++++++ .../_index.md | 197 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 3 +- .../_index.md | 225 +++++++++++++++ .../_index.md | 166 +++++++++++ .../java/html5-canvas-rendering/_index.md | 4 +- .../_index.md | 168 +++++++++++ html/russian/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 11 +- .../_index.md | 205 +++++++++++++ .../_index.md | 198 +++++++++++++ .../_index.md | 243 ++++++++++++++++ .../_index.md | 6 + .../_index.md | 223 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/spanish/java/advanced-usage/_index.md | 3 + .../_index.md | 172 +++++++++++ .../_index.md | 5 + .../_index.md | 206 ++++++++++++++ .../_index.md | 196 +++++++++++++ .../_index.md | 240 ++++++++++++++++ .../_index.md | 6 +- .../_index.md | 223 +++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/swedish/java/advanced-usage/_index.md | 4 +- .../_index.md | 171 +++++++++++ .../_index.md | 5 + .../_index.md | 206 ++++++++++++++ .../_index.md | 196 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 3 +- .../_index.md | 221 ++++++++++++++ .../_index.md | 167 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/thai/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 5 + .../_index.md | 205 +++++++++++++ .../_index.md | 194 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 3 +- .../_index.md | 222 +++++++++++++++ .../_index.md | 166 +++++++++++ .../java/html5-canvas-rendering/_index.md | 6 +- .../_index.md | 168 +++++++++++ html/turkish/java/advanced-usage/_index.md | 2 + .../_index.md | 170 +++++++++++ .../_index.md | 6 + .../_index.md | 206 ++++++++++++++ .../_index.md | 196 +++++++++++++ .../_index.md | 242 ++++++++++++++++ .../_index.md | 4 +- .../_index.md | 238 ++++++++++++++++ .../_index.md | 168 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 170 +++++++++++ html/vietnamese/java/advanced-usage/_index.md | 2 + .../_index.md | 172 +++++++++++ .../_index.md | 8 + .../_index.md | 205 +++++++++++++ .../_index.md | 195 +++++++++++++ .../_index.md | 241 ++++++++++++++++ .../_index.md | 4 +- .../_index.md | 225 +++++++++++++++ .../_index.md | 167 +++++++++++ .../java/html5-canvas-rendering/_index.md | 5 +- .../_index.md | 168 +++++++++++ 253 files changed, 31950 insertions(+), 69 deletions(-) create mode 100644 html/arabic/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/arabic/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/arabic/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/arabic/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/arabic/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/arabic/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/arabic/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/chinese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/chinese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/chinese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/chinese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/chinese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/chinese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/chinese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/czech/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/czech/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/czech/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/czech/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/czech/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/czech/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/czech/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/dutch/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/dutch/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/dutch/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/dutch/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/dutch/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/dutch/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/dutch/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/english/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/english/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/english/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/english/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/english/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/english/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/english/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/french/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/french/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/french/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/french/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/french/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/french/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/french/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/german/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/german/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/german/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/german/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/german/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/german/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/german/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/greek/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/greek/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/greek/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/greek/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/greek/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/greek/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/greek/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/hindi/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/hindi/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/hindi/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/hindi/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/hindi/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/hindi/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/hindi/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/hongkong/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/hongkong/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/hongkong/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/hongkong/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/hongkong/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/hongkong/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/hongkong/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/hungarian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/hungarian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/hungarian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/hungarian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/hungarian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/hungarian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/hungarian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/indonesian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/indonesian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/indonesian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/indonesian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/indonesian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/indonesian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/indonesian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/italian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/italian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/italian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/italian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/italian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/italian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/italian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/japanese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/japanese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/japanese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/japanese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/japanese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/japanese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/japanese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/korean/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/korean/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/korean/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/korean/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/korean/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/korean/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/korean/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/polish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/polish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/polish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/polish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/polish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/polish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/polish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/portuguese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/portuguese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/portuguese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/portuguese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/portuguese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/portuguese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/portuguese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/russian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/russian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/russian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/russian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/russian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/russian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/russian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/spanish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/spanish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/spanish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/spanish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/spanish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/spanish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/spanish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/swedish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/swedish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/swedish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/swedish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/swedish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/swedish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/swedish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/thai/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/thai/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/thai/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/thai/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/thai/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/thai/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/thai/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/turkish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/turkish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/turkish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/turkish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/turkish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/turkish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/turkish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md create mode 100644 html/vietnamese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md create mode 100644 html/vietnamese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md create mode 100644 html/vietnamese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md create mode 100644 html/vietnamese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md create mode 100644 html/vietnamese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md create mode 100644 html/vietnamese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md create mode 100644 html/vietnamese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md diff --git a/html/arabic/java/advanced-usage/_index.md b/html/arabic/java/advanced-usage/_index.md index 5fd516250..92b52073f 100644 --- a/html/arabic/java/advanced-usage/_index.md +++ b/html/arabic/java/advanced-usage/_index.md @@ -113,28 +113,14 @@ weight: 20 ## الاستخدام المتقدم لتعليمات Aspose.HTML Java ### [تخصيص هوامش صفحة HTML باستخدام Aspose.HTML](./css-extensions-adding-title-page-number/) -تعلم كيفية تخصيص هوامش الصفحة، إضافة أرقام الصفحات، والعناوين إلى مستندات HTML باستخدام Aspose.HTML for Java. - ### [مراقب تغيرات DOM باستخدام Aspose.HTML for Java](./dom-mutation-observer-observing-node-additions/) -تعلم كيفية استخدام Aspose.HTML for Java لتنفيذ مراقب تغيرات DOM في هذا الدليل خطوة بخطوة. راقب وتفاعل مع تغييرات DOM بفعالية. - ### [معالجة HTML5 Canvas باستخدام Aspose.HTML for Java](./html5-canvas-manipulation-using-code/) -تعلم معالجة HTML5 Canvas باستخدام Aspose.HTML for Java. أنشئ رسومات تفاعلية مع إرشادات خطوة بخطوة. - ### [معالجة HTML5 Canvas باستخدام Aspose.HTML for Java (JavaScript)](./html5-canvas-manipulation-using-javascript/) -تعلم كيفية معالجة HTML5 Canvas باستخدام JavaScript و Aspose.HTML for Java. أنشئ رسومات ديناميكية وحولها إلى PDF. - ### [أتمتة تعبئة نماذج HTML باستخدام Aspose.HTML for Java](./html-form-editor-filling-submitting-forms/) -تعلم كيفية أتمتة تعبئة نماذج HTML وإرسالها باستخدام Aspose.HTML for Java. بسط التفاعل مع الويب من خلال هذا الدليل. - ### [ضبط حجم صفحة PDF باستخدام Aspose.HTML for Java](./adjust-pdf-page-size/) -تعلم كيفية ضبط حجم صفحة PDF باستخدام Aspose.HTML for Java. أنشئ ملفات PDF عالية الجودة من HTML بسهولة. سيطر على أبعاد الصفحة بفعالية. - ### [ضبط حجم صفحة XPS باستخدام Aspose.HTML for Java](./adjust-xps-page-size/) -تعلم كيفية ضبط حجم صفحة XPS باستخدام Aspose.HTML for Java. سيطر على أبعاد مخرجات مستندات XPS بسهولة. - ### [كيفية تشغيل JavaScript في Java – دليل كامل](./how-to-run-javascript-in-java-complete-guide/) -تعلم كيفية تشغيل كود JavaScript داخل تطبيقات Java باستخدام Aspose.HTML for Java. +### [مثال top level await – استخدام await delay في JavaScript](./top-level-await-example-using-await-delay-in-javascript/) --- diff --git a/html/arabic/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/arabic/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..b26aabf87 --- /dev/null +++ b/html/arabic/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: مثال على top level await يُظهر await delay في جافاسكريبت، وفئة زيادة + العداد، وحقول الفئة العامة في جافاسكريبت في عرض حي. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: ar +og_description: مثال على top level await يوضح await delay في جافاسكريبت، وفئة زيادة + العداد، والحقول العامة للفئات في جافاسكريبت في دليل مختصر. +og_title: مثال على await على المستوى الأعلى – استخدام await delay في جافا سكريبت +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: مثال على await على المستوى الأعلى – استخدام await لتأخير في جافا سكريبت +url: /ar/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# مثال على top level await – استخدام await delay في JavaScript + +هل تساءلت يومًا كيف تُوقف تنفيذ الوحدة دون تغليف كل شيء في IIFE غير متزامن؟ هذا بالضبط ما يتيح لك **top level await example** القيام به. في هذا الدرس سنستعرض صفحة ويب صغيرة تستخدم `await delay javascript` لتأخير العمل، ثم ننشئ `increment counter class` التي تستفيد من **public class fields javascript**. في النهاية ستحصل على مقطع كامل يمكن نسخه ولصقه ويعمل في أي متصفح حديث. + +سنغطي كل شيء من تعريف فئة بحقل عام إلى ربط مساعد تأخير بسيط يعتمد على الـ Promise. لا مكتبات خارجية، لا خطوة بناء—فقط HTML عادي، ` + + +``` + +### ناتج الـ Console المتوقع + +``` +Counter class initialized +Final count: 1 +``` + +إذا فتحت الصفحة في DevTools، يجب أن ترى رسالة الكتلة الثابتة تظهر **قبل** انتهاء التأخير، مما يؤكد أن الفئة تم تقييمها أولًا. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +قد تتساءل لماذا لم نكتب: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +كلا النهجين يعملان، لكن **public class fields javascript** تمنحك بنية أنظف وأكثر إعلانية. يتم تعريف الحقل مرة واحدة، وليس داخل كل استدعاء للمُنشئ، مما قد يكون أسهل للقراءة عندما تكبر الفئة. بالإضافة إلى ذلك، لا يمكن وضع الكتل الثابتة داخل المُنشئ، لذا يصبح فصل منطق التهيئة أكثر طبيعية. + +## Step 6 – Adapting the Example for Real‑World Apps + +في الإنتاج غالبًا ما تحتاج إلى أكثر من عداد واحد. إليك بعض الأفكار السريعة: + +- **Multiple counters:** خزنها في `Map` مع مفتاح معرف. +- **Persisted state:** استبدل `console.log` بكتابات `localStorage`. +- **Async initialization:** استخدم الكتلة الثابتة لجلب إعدادات من خادم قبل إنشاء أي نسخة. + +كل هذه الأنماط لا تزال تستفيد من top‑level await، لأنك يمكنك جلب البيانات مرة واحدة عند تحميل الوحدة وضمان جاهزيتها لكل مستهلك. + +## Frequently Asked Questions + +**س: هل يعرقل top‑level await الوحدات الأخرى؟** +ج: لا. كل وحدة تعمل بشكل مستقل. فقط الوحدة التي تحتوي على الـ await تُوقف؛ الوحدات الأخرى تواصل التحميل بالتوازي. + +**س: ماذا لو رفض وعد التأخير؟** +ج: رفض غير مُعالج سيُوقف تقييم الوحدة ويظهر كخطأ في الـ console. غلف الـ await داخل `try…catch` إذا كنت بحاجة إلى معالجة مرنة. + +**س: هل كلمة `static` مطلوبة؟** +ج: ليست للعداد نفسه، لكن الكتلة الثابتة طريقة مفيدة لإظهار أن الكود يُنفّذ *مرة* واحدة عند التحميل—ممتاز للتسجيل أو اكتشاف الميزات. + +## Conclusion + +لقد بنيت للتو **top level await example** يوضح `await delay javascript`، **increment counter class**، وقوة **public class fields javascript**. المقطع الكامل القابل للتنفيذ موجود أعلاه، وإخراج الـ console يثبت أن الكتلة الثابتة تُنفّذ قبل تشغيل الكود المتأخر. + +من هنا يمكنك تجربة تدفقات async أكثر تعقيدًا، استبدال التأخير باستدعاء API حقيقي، أو توسيع الفئة بطرق إضافية. تذكر أن JavaScript الحديثة تتيح لك معالجة الوحدات ككيانات async من الدرجة الأولى—بدون الحاجة إلى أطر إضافية. + +برمجة سعيدة، ولا تتردد في مشاركة تنويعاتك في التعليقات. إذا وجدت هذا الدليل مفيدًا، شاركه مع زميل لا يزال يواجه صعوبات مع أنماط async! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/conversion-html-to-other-formats/_index.md b/html/arabic/java/conversion-html-to-other-formats/_index.md index 7c53c6411..47c621e3c 100644 --- a/html/arabic/java/conversion-html-to-other-formats/_index.md +++ b/html/arabic/java/conversion-html-to-other-formats/_index.md @@ -98,6 +98,10 @@ XPS هو صيغة الطباعة الخاصة بمايكروسوفت. باستخ تعلم كيفية تحويل SVG إلى XPS باستخدام Aspose.HTML for Java. دليل بسيط خطوة بخطوة لتحويلات سلسة. ### [تحويل HTML إلى PDF في Java – دليل خطوة بخطوة مع إعدادات حجم الصفحة](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) تعلم تحويل HTML إلى PDF في Java مع إعدادات حجم الصفحة خطوة بخطوة باستخدام Aspose.HTML. +### [إنشاء PDF بحجم مخصص – تحويل HTML إلى PDF باستخدام Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +تعلم كيفية إنشاء PDF بأحجام مخصصة عند تحويل HTML إلى PDF باستخدام Aspose.HTML في Java. +### [تحويل HTML إلى Markdown في Java – الحفاظ على التنسيق الأصلي](./convert-html-to-markdown-in-java-preserve-original-formattin/) +### [إنشاء PDF من HTML في Java – دليل التحويل المتوازي للدفعات](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) ## الأسئلة المتكررة diff --git a/html/arabic/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/arabic/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..a7aa4d1ba --- /dev/null +++ b/html/arabic/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: تحويل HTML إلى ماركداون وإنشاء ملف ماركداون مع الحفاظ على التنسيق الأصلي + باستخدام تحويل Aspose HTML في Java. تعلم خطوة بخطوة. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: ar +og_description: حوّل HTML إلى Markdown بسرعة، أنشئ ملف Markdown، واحفظ التنسيق الأصلي + باستخدام تحويل Aspose HTML للـ Java. +og_title: تحويل HTML إلى Markdown في Java – الحفاظ على التنسيق +tags: +- Aspose +- Java +- Markdown +title: تحويل HTML إلى Markdown في Java – الحفاظ على التنسيق الأصلي +url: /ar/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل HTML إلى Markdown في Java – الحفاظ على التنسيق الأصلي + +هل احتجت يومًا إلى **convert HTML to markdown** لكنك كنت قلقًا من فقدان المسافات أو الجداول أو العلامات المضمنة؟ لست وحدك. يواجه العديد من المطورين هذه المشكلة عندما يحاولون نقل المحتوى من صفحة ويب إلى تنسيق نظيف صديق للتحكم في الإصدارات. الخبر السار؟ ببضع أسطر من Java و Aspose HTML، يمكنك **generate markdown file** التي تبدو تمامًا مثل المصدر، بما في ذلك المسافات. + +في هذا الدليل سنستعرض العملية بالكامل: تحميل ملف HTML معقد، ضبط التحويل بحيث **preserve original formatting**، وأخيرًا كتابة الناتج إلى `preserved.md`. في النهاية ستحصل على مقتطف جاهز للتنفيذ، وتفهم *لماذا* كل إعداد مهم، وتعرف كيف تعدل الشيفرة لحالات خاصة مثل CSS مخصص أو سكريبتات مدمجة. + +## ما ستحتاجه + +- Java 17 (أو أي JDK حديث) – الواجهة البرمجية تعمل مع Java 8+ لكن الإصدارات الأحدث توفر أداءً أفضل. +- مكتبة Aspose HTML for Java (الإصدار 23.11 أو أحدث). يمكنك الحصول عليها من Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- ملف HTML تجريبي (`complex.html`) يحتوي على عناوين، جداول، كتل شفرة، وربما بعض تنسيقات `` المضمنة. +- قليل من الصبر ورغبة في التجربة. + +هذا كل شيء. لا أدوات خارجية، لا حيل سطر أوامر—فقط شفرة Java صافية. + +## الخطوة 1: تحميل مستند HTML المصدر + +أول شيء نقوم به هو إنشاء كائن `HTMLDocument` يشير إلى ملف المصدر الخاص بك. تتعامل Aspose HTML مع الملف كـ DOM، مما يعني أنه يمكنك فحصه أو تعديلّه قبل التحويل إذا احتجت. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **لماذا هذا مهم:** تحميل المستند بهذه الطريقة يضمن أن جميع الموارد المرتبطة (ملفات الأنماط، الصور) تُحل نسبيًا إلى موقع الملف. إذا تخطيت هذه الخطوة ومررت بسلسلة نصية خام، قد تفقد CSS الخارجي الذي يؤثر على المسافات—وهو بالضبط ما تريد **preserve original formatting** له. + +## الخطوة 2: ضبط خيارات تحويل Markdown + +توفر لك Aspose HTML فئة `MarkdownConversionOptions`. الخاصية الأساسية بالنسبة لنا هي `setPreserveOriginalFormatting(true)`. عند تفعيلها، يحتفظ المحول بفواصل الأسطر، والمسافات البادئة، وحتى مقاطع HTML الخام التي لا يمكن للـ markdown تمثيلها أصلاً. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **نصيحة احترافية:** إذا لاحظت لاحقًا أن بعض الأنماط المضمنة تُحذف، يمكنك أيضًا استدعاء `markdownOptions.setIncludeHtml(true)` لإجبار كتل HTML الخام على الظهور في ناتج markdown. + +## الخطوة 3: تنفيذ التحويل + +الآن نمرر `HTMLDocument`، مسار الملف الهدف، وخياراتنا إلى الطريقة الساكنة `Converter.convertHTML`. تقوم هذه الطريقة بكل الأعمال الثقيلة في الخلفية. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +عند انتهاء الاستدعاء، ستجد `preserved.md` بجوار ملف المصدر. افتحه في أي محرر—لاحظ كيف أن فواصل الأسطر الأصلية ومحاذاة الجداول لا تزال محفوظة. + +## الخطوة 4: التحقق من النتيجة (اختياري لكن موصى به) + +فحص سريع للمنطق سيوفر عليك من الأخطاء الدقيقة لاحقًا. يمكنك قراءة الملف مرة أخرى في Java وطباعة الأسطر القليلة الأولى، أو ببساطة فتحه في VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +يجب أن ترى شيئًا مثل: + +``` +# My Complex Document + + + + +
NameValue
Alpha42
+ +``` + +لا يزال وسم `` موجودًا لأن صيغة الجداول الأصلية في markdown لا تستطيع التقاط التنسيق الدقيق—بفضل `preserve original formatting`. + +## الخطوة 5: تجميع كل شيء – مثال كامل قابل للتنفيذ + +فيما يلي الفئة الكاملة الجاهزة للتنفيذ. استبدل `YOUR_DIRECTORY` بالمسار الفعلي على جهازك. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +شغّل البرنامج باستخدام `mvn exec:java` أو بيئتك المفضلة IDE، وستحصل على **generate markdown file** التي تعكس تخطيط HTML الأصلي. + +## أسئلة شائعة وحالات خاصة + +### هل يعمل هذا مع ملفات CSS الخارجية؟ + +نعم. طالما أن ملفات CSS قابلة للوصول عبر مسارات نسبية، تقوم Aspose HTML بتحميلها تلقائيًا. إذا كنت تجلب HTML من عنوان URL بعيد، قد تحتاج إلى تعيين كائن `ResourceLoadingOptions` مخصص للسماح بالوصول إلى الشبكة. + +### ماذا لو لا أرغب في أي HTML خام داخل markdown؟ + +ببساطة غيّر الخيار: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +سيتحول المحول حينها إلى محاولة ترجمة كل شيء إلى صيغ markdown النقية، مما قد يؤدي إلى فقدان بعض دقة التخطيط. + +### هل يمكنني تحويل سلسلة نصية بدلاً من ملف؟ + +بالطبع. استخدم المُنشئ الذي يقبل `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +ثم مرّر `doc` إلى `Converter.convertHTML` كما في السابق. + +### كيف يختلف هذا عن مكتبات أخرى مثل Flexmark أو pandoc؟ + +معظم الأدوات المفتوحة المصدر تتعامل مع HTML كنص عادي وتزيل المسافات بشكل عدواني. علم `preserveOriginalFormatting` في Aspose HTML هو **ميزة مملوكة** تحترم المسافات الفارغة وفواصل الأسطر في المصدر الأصلي، وحتى تحتفظ بالوسوم غير المدعومة ككتل HTML خام. لهذا السبب يركز هذا الدليل على **aspose html conversion** لمطوري Java الذين يحتاجون إلى دقة مطابقة. + +## نصائح للاستخدام في الإنتاج + +- **Batch processing:** غلف منطق التحويل داخل حلقة لمعالجة ملفات HTML متعددة دفعة واحدة. +- **Error handling:** امسك `IOException` و `com.aspose.html.exceptions.AssertionFailedException` للكشف عن الموارد المفقودة. +- **Performance:** أعد استخدام كائن `HTMLDocument` واحد عند تحويل أجزاء من موقع كبير؛ المكتبة تخزن CSS المحلل مؤقتًا. + +## الخلاصة + +لقد أظهرنا لك الآن كيفية **convert HTML to markdown** في Java مع ضمان أن الناتج **preserve original formatting**. يوضح المقتطف القصير المستقل بالكامل سير العمل بالكامل—من تحميل مستند HTML إلى ضبط `MarkdownConversionOptions`، تنفيذ التحويل، والتحقق من النتيجة. باستخدام واجهة Aspose HTML القوية، يمكنك الآن **generate markdown file** برمجيًا، سواء كنت تبني مولد مواقع ثابتة، أو خط أنابيب توثيق، أو أداة ترحيل محتوى. + +بعد ذلك، قد ترغب في استكشاف: + +- استخدام **html to markdown java** للترحيلات الضخمة عبر موقع ويب. +- تعديل خيارات التحويل لإنتاج جداول markdown بنكهة GitHub. +- دمج هذا النهج مع خطوة CI/CD التي تُحدّث مستنداتك تلقائيًا كلما تغير HTML المصدر. + +لا تتردد في التجربة، واترك تعليقًا إذا واجهت أي صعوبات. برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/arabic/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..ba577287a --- /dev/null +++ b/html/arabic/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,194 @@ +--- +category: general +date: 2026-03-26 +description: إنشاء ملف PDF بحجم مخصص من HTML باستخدام Aspose.HTML للغة Java. تعلّم + كيفية تحويل HTML إلى PDF وتحديد حجم صفحة PDF في بضع خطوات فقط. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: ar +og_description: إنشاء ملف PDF بحجم مخصص من HTML باستخدام Aspose. يوضح لك هذا الدليل + كيفية تحويل HTML إلى PDF، وتغيير حجم صفحة PDF، وتعيين حجم صفحة PDF بسهولة. +og_title: إنشاء حجم مخصص لملف PDF – دليل سريع لتحويل HTML إلى PDF +tags: +- aspose +- java +- pdf +- html +title: إنشاء PDF بحجم مخصص – تحويل HTML إلى PDF باستخدام Aspose +url: /ar/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء حجم مخصص لملف PDF – تحويل HTML إلى PDF باستخدام Aspose + +هل احتجت يومًا إلى **إنشاء حجم مخصص لملف PDF** من ملف HTML؟ في هذا البرنامج التعليمي سنوضح لك كيفية **تحويل HTML إلى PDF** وتعيين حجم صفحة PDF باستخدام Aspose.HTML for Java. + +إذا كنت تقوم بإنشاء فواتير أو تقارير أو كتب إلكترونية، فإن الحصول على أبعاد الصفحة الدقيقة مهم—وإلا سيظهر التخطيط غير مركّز أو سيتم قصه. + +سنستعرض كل خطوة، من تحميل ملف HTML المصدر إلى تعديل الهوامش، وسننتهي بملف PDF جاهز للاستخدام. لا مراجع غامضة، بل مثال كامل قابل للتنفيذ يمكنك نسخه ولصقه اليوم. + +## ما ستحتاجه + +- **Java 17** (أو أي JDK حديث). +- **Aspose.HTML for Java** JARs – يمكنك الحصول على أحدث نسخة من مستودع Maven أو موقع Aspose. +- ملف `input.html` بسيط وضعه في مجلد تملكه. +- بيئة تطوير متكاملة أو محرر نصوص تختاره؛ عادةً أكتب الكود في IntelliJ IDEA، لكن Eclipse يعمل جيدًا. + +وجود هذه المتطلبات يعني أنك لن تواجه أخطاء “class not found” في منتصف العملية. + +الآن، دعنا نغوص في التفاصيل. + +![مثال إنشاء حجم مخصص لملف PDF](/images/create-pdf-custom-size.png "لقطة شاشة تُظهر ملف PDF تم إنشاؤه بحجم صفحة مخصص وهوامش – إنشاء حجم مخصص لملف PDF") + +## إنشاء حجم مخصص لملف PDF – الخطوات الأساسية + +فيما يلي البرنامج الكامل بلغة Java الذي ستحصل عليه. لا تتردد في نسخه إلى ملف يُسمى `ConvertHtmlToPdfCustomPage.java` وتشغيله بعد إضافة تبعيات Aspose إلى مشروعك. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### الخطوة 1 – تحويل HTML إلى PDF: تحميل المستند + +أول شيء نفعله هو **تحميل ملف HTML** الذي نريد تحويله إلى PDF. +`HTMLDocument` يقرأ الملف، يحل الروابط النسبية، ويُنشئ DOM يمكن لـ Aspose عرضه. + +> **لماذا هذا مهم:** إذا كان ملف HTML يشير إلى CSS أو صور، سيقوم Aspose بجلبها نسبةً إلى مسار الملف. استخدام مسار مطلق (`YOUR_DIRECTORY/input.html`) يتجنب مفاجآت “file not found”. + +### الخطوة 2 – تغيير حجم صفحة PDF: تكوين الخيارات + +هنا نقوم بإنشاء كائن `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` يخبر Aspose باستخدام أبعاد A4 القياسية (210 × 297 مم). +- `setPageOrientation(...)` يغيّر اتجاه الصفحة إذا كنت تحتاج إلى وضعية أفقية. +- `setMargins(new Margin(20, 20, 20, 20))` يضيف هامشًا قدره 20 نقطة على كل جانب. + +يمكنك استبدال `PageSize.A4` بـ `PageSize.LETTER` أو حتى **حجم مخصص** بتمرير كائن `SizeF`، على سبيل المثال: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **نصيحة احترافية:** النقطة الواحدة تساوي 1/72 بوصة. إذا كنت تفكر بالمليمترات، اضرب في 2.83465 للحصول على النقاط. + +### الخطوة 3 – إنشاء PDF من HTML: تشغيل التحويل + +`Converter.convertHTML` يقوم بالعمل الشاق. يأخذ `HTMLDocument` المحمل، مسار الإخراج، والخيارات التي قمنا بتكوينها. + +إذا أردت **تعيين حجم صفحة PDF** بشكل ديناميكي بناءً على المحتوى، يمكنك حساب الأبعاد المطلوبة قبل هذه الخطوة وتعديل `pdfOptions` وفقًا لذلك. + +### الخطوة 4 – التحقق من النتيجة + +سطر `System.out.println` اختياري، لكنه يوفر رد فعل سريع عند تشغيل البرنامج من وحدة التحكم. بعد التنفيذ، افتح `custom_page.pdf` – يجب أن ترى ملف PDF بحجم A4 عمودي مع هوامش موحدة قدرها 20 نقطة، تمامًا كما حددنا. + +## تحويل HTML إلى PDF – تنويعات شائعة + +### استخدام Stream بدلاً من مسار ملف + +أحيانًا لا يكون لديك ملف فعلي؛ ربما يأتي HTML من قاعدة بيانات أو API. في هذه الحالة، غلف السلسلة في `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +المعامل الثاني هو عنوان URL الأساسي لحل الموارد النسبية. + +### تغيير اتجاه الصفحة + +إذا كان تقريرك عريضًا، غيّر إلى الوضعية الأفقية: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### ضبط الهوامش بدقة + +الهوامش تقبل قيمًا عائمة، لذا يمكنك ضبط 0.5 pt لحافة رفيعة جدًا: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### معالجة ملفات HTML الكبيرة + +للمستندات الضخمة، فكر في تمكين **البث الفعال للذاكرة**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +هذا يخبر Aspose بكتابة البيانات الوسيطة إلى ملفات مؤقتة بدلاً من الاحتفاظ بكل شيء في الذاكرة RAM. + +## تعيين حجم صفحة PDF – الحالات الخاصة والمشكلات + +- **Missing Fonts:** إذا كان HTML الخاص بك يستخدم خطًا مخصصًا غير مثبت على الخادم، سيتراجع PDF إلى الخط الافتراضي. قم بدمج الخط باستخدام `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Image Scaling:** الصور عالية الدقة يمكن أن تزيد حجم PDF. استخدم `pdfOptions.setImageResolution(150);` لتقليل الدقة مع الحفاظ على الجودة. +- **CSS Compatibility:** ليست كل خصائص CSS مدعومة بالكامل. التزم بتقنيات التخطيط القياسية (flexbox يعمل، لكن grid قد يحتوي على بعض العيوب). +- **Path Permissions:** تأكد من أن العملية لديها صلاحية كتابة إلى `YOUR_DIRECTORY`. وإلا سيتم رمي `IOException`. + +## النتيجة المتوقعة + +تشغيل البرنامج ينتج ملف PDF يبدو هكذا (توضيح تصوري): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- حجم الصفحة: **A4** (210 × 297 مم). +- الاتجاه: **عمودي**. +- الهوامش: **20 pt** على كل جانب. + +افتح الملف بأي عارض PDF (Adobe Reader، Chrome، إلخ) للتأكد. + +## الخلاصة + +أنت الآن تعرف كيف **تنشئ حجم مخصص لملف PDF** من مصدر HTML باستخدام Aspose.HTML for Java. غطى البرنامج التعليمي كامل العملية: **تحويل HTML إلى PDF**، **تغيير حجم صفحة PDF**، **تعيين حجم صفحة PDF**، و**إنشاء PDF من HTML** مع هوامش مخصصة. + +لا تتردد في التجربة—استبدل `PageSize.LETTER` بحجم قانوني، عدّل الهوامش، أو دمج خطوطك الخاصة. بعد ذلك، قد تستكشف **إضافة علامات مائية**، **تشفير PDF**، أو **معالجة دفعة من ملفات HTML متعددة**. جميع هذه المواضيع تبنى على نفس المفاهيم الأساسية التي غطيناها. + +هل لديك سؤال حول حالة خاصة؟ اترك تعليقًا أدناه، وسأساعدك في حل المشكلة. برمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/arabic/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..206429c3f --- /dev/null +++ b/html/arabic/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: إنشاء PDF من HTML بسرعة باستخدام مجموعة خيوط ثابتة. تعلم تحويل دفعات + HTML إلى PDF وتشغيل المهام المتوازية في Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: ar +og_description: أنشئ PDF من HTML بسرعة باستخدام مجموعة خيوط ثابتة. تعلّم كيفية تحويل + مجموعة من ملفات HTML إلى PDF وتشغيل المهام المتوازية في جافا. +og_title: إنشاء PDF من HTML في جافا – دليل التحويل المتوازي للدفعات +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: إنشاء ملف PDF من HTML في جافا – دليل التحويل المتوازي للدفعات +url: /ar/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء PDF من HTML في جافا – دليل التحويل المتوازي للدفعات + +هل احتجت يومًا إلى **إنشاء PDF من HTML** لكنك شعرت بالإحباط وأنت تراقب عملية تحويل أحادية الخيط تسير ببطء شديد؟ لست وحدك. في العديد من المشاريع الواقعية نستقبل عشرات تقارير HTML التي يجب أن تتحول إلى ملفات PDF بنهاية اليوم، ومعالجتها واحدةً تلو الأخرى ليس عمليًا. + +لهذا السبب يوضح لك هذا الدرس **كيفية تحويل HTML إلى PDF** باستخدام **fixed thread pool**، مما يتيح لك **تحويل دفعات HTML إلى PDF** و**تشغيل مهام متوازية** دون عناء. في النهاية ستحصل على برنامج كامل جاهز للتنفيذ يحول مجلدًا من ملفات HTML إلى PDF في جزء بسيط من الوقت. + +## ما ستتعلمه + +في الأقسام القليلة التالية سنغطي كل ما تحتاج معرفته: + +* الاعتماد الدقيق لـ Maven/Gradle لـ Aspose.HTML (المكتبة التي تقوم بالعمل الشاق). +* لماذا تُعد **fixed thread pool** الخيار المثالي لأعمال التحويل المعتمدة على وحدة المعالجة المركزية. +* كيفية سرد ملفات المصدر بحيث يمكن للعملية أن تتوسع لتشمل مئات المستندات. +* الكود الدقيق الذي تلصقه في بيئة التطوير IDE — بدون استيرادات مفقودة، ولا تعليقات “TODO”. +* نصائح للتعامل مع الأخطاء، وضبط حجم التجمع، والتحقق من المخرجات. + +لا تحتاج إلى معرفة مسبقة بـ Aspose.HTML، فقط إعداد أساسي لجافا ورغبة في التجربة. لنبدأ. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*نص بديل الصورة: إنشاء pdf من html – مخطط التحويل المتوازي* + +## الخطوة 1: إعداد مشروعك وإضافة Aspose.HTML + +أولاً وقبل كل شيء—يحتاج مشروعك إلى مكتبة Aspose.HTML. إذا كنت تستخدم Maven، أضف ما يلي إلى ملف `pom.xml` الخاص بك: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +أما بالنسبة لـ Gradle، فالأمر بسيط: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +لماذا Aspose.HTML؟ إنها مكتبة تجارية، لكنها توفر واجهة برمجة تطبيقات **convert html to pdf** تتعامل مع CSS وJavaScript وتخطيطات معقدة مباشرةً. إذا كنت تفضل بديلًا مفتوح المصدر يمكنك استبدال استدعاء `Converter.convertHTML` لاحقًا، لكن منطق الخيوط سيبقى كما هو. + +> **نصيحة محترف:** حافظ على توافق رقم الإصدار مع ملاحظات الإصدار الرسمية؛ الإصدارات الأحدث غالبًا ما تحسن سرعة العرض، وهو ما يهم عندما تقوم بتشغيل العديد من المهام بشكل متوازي. + +## الخطوة 2: بناء Fixed Thread Pool للتحويل المتوازي + +عند وجود دفعة من الملفات، لا تريد إنشاء عدد غير محدود من الخيوط—سيتسبب ذلك في إرباك نظام التشغيل. **fixed thread pool** يمنحك مقدارًا متوقعًا من التوازي مع الحفاظ على استهلاك الذاكرة تحت السيطرة. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +لماذا أربعة؟ على جهاز عادي بثمانية أنوية، يمكن ترك نصف الأنوية مجانية للـ I/O ونظام التشغيل. يمكنك التجربة: `Runtime.getRuntime().availableProcessors()` يعيد عدد الأنوية، والقاعدة العامة هي `cores / 2`. تذكر أن كل تحويل يستهلك وحدة المعالجة المركزية، لذا عادةً ما يضر الأداء وجود خيوط أكثر من عدد الأنوية. + +## الخطوة 3: جمع ملفات HTML التي تريد تحويلها + +الجزء التالي من اللغز هو قائمة **batch html to pdf**. يمكنك كتابة مصفوفة ثابتة (كما في المثال) أو مسح دليل. إليك نسخة مرنة تقرأ كل ملف `.html` من مجلد: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +بهذه الطريقة يمكنك إضافة ملفات جديدة إلى المجلد وسيقوم البرنامج بالتقاطها تلقائيًا—مثالي لوظيفة دفعة ليلية. + +## الخطوة 4: تقديم مهمة تحويل لكل ملف (تشغيل مهام متوازية) + +الآن الجزء الممتع: كل ملف يصبح **Runnable** (أو `Callable`) ينفذه التجمع. الكود أدناه يعكس المثال الأصلي لكنه يضيف معالجة الأخطاء ورسالة سجل صغيرة. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**لماذا نغلف التحويل داخل try‑catch؟** عندما **تشغل مهامًا متوازية**، قد يتسبب ملف HTML غير صالح في إسقاط جميع عمليات التنفيذ. من خلال التقاط الاستثناءات محليًا نضمن استمرار باقي الدفعة في العمل. + +## الخطوة 5: إغلاق الـ Executor والانتظار حتى الانتهاء + +بعد تقديم جميع الوظائف، يجب إخبار التجمع بالتوقف عن قبول أعمال جديدة ثم الانتظار حتى يكتمل كل شيء. هذا يضمن عدم خروج JVM مبكرًا. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +إذا كان لديك مجلد ضخم (آلاف الملفات) قد تحتاج إلى زيادة مهلة الانتظار أو تنفيذ مراقب تقدم. المفتاح هو **الإغلاق السلس**—هذا هو سمة الكود الجاهز للإنتاج. + +## مثال عملي كامل + +بجمع كل ما سبق، إليك فئة مستقلة يمكنك نسخها ولصقها في `src/main/java` وتشغيلها: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**الناتج المتوقع** (عينة): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +إذا فتحت ملفات `.pdf` التي تم إنشاؤها ستلاحظ أن تخطيط HTML الأصلي محفوظ—الخطوط، الجداول، وحتى المحتوى الأساسي المدفوع بـ JavaScript تم عرضه بشكل صحيح. + +## أسئلة شائعة وحالات حافة + +| سؤال | إجابة | +|----------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/conversion-html-to-various-image-formats/_index.md b/html/arabic/java/conversion-html-to-various-image-formats/_index.md index fdf215c5f..c2044cb4b 100644 --- a/html/arabic/java/conversion-html-to-various-image-formats/_index.md +++ b/html/arabic/java/conversion-html-to-various-image-formats/_index.md @@ -99,6 +99,10 @@ Learn how to convert HTML to PNG images in Java with Aspose.HTML. A comprehensiv Learn how to easily convert HTML to TIFF using Aspose.HTML for Java. Step-by-step guide for efficient document handling. ### [تحويل HTML إلى WebP](./convert-html-to-webp-complete-java-guide-with-aspose-html/) تحويل HTML إلى WebP باستخدام Aspose.HTML for Java. دليل شامل لتحويل مستندات HTML إلى صور WebP بسهولة. +### [تحويل HTML إلى WebP – دليل Java كامل](./convert-html-to-webp-complete-java-guide/) +دليل شامل خطوة بخطوة لتحويل مستندات HTML إلى صور WebP باستخدام Aspose.HTML للغة Java. +### [إنشاء ملف TIFF متعدد الصفحات من SVG في Java – دليل خطوة بخطوة](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +تعلم كيفية تحويل ملفات SVG إلى TIFF متعدد الصفحات باستخدام Aspose.HTML for Java خطوة بخطوة. ## الأسئلة المتكررة diff --git a/html/arabic/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/arabic/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..7d8ffea6a --- /dev/null +++ b/html/arabic/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-26 +description: حوّل HTML إلى WebP بسرعة باستخدام Aspose.HTML. تعلّم كيفية حفظ HTML كـ + WebP، وعرض HTML كـ WebP، وإنشاء WebP من HTML في بضع خطوات فقط. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: ar +og_description: حوّل HTML إلى WebP بسرعة باستخدام Aspose.HTML. يوضح هذا الدرس كيفية + تحويل HTML إلى WebP وتوليد WebP من HTML في Java. +og_title: تحويل HTML إلى WebP – دليل جافا الكامل +tags: +- Java +- Aspose.HTML +- Image Conversion +title: تحويل HTML إلى WebP – دليل Java الكامل +url: /ar/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل HTML إلى WebP – دليل Java الكامل + +هل احتجت يومًا إلى **تحويل HTML إلى WebP** لكن لم تكن متأكدًا أي مكتبة يمكنها التعامل مع المهمة دون عناء؟ لست وحدك. يواجه العديد من المطورين هذه المشكلة عند محاولة تقديم صور خفيفة الوزن تم إنشاؤها من صفحات ديناميكية. الخبر السار؟ باستخدام Aspose.HTML for Java يمكنك *حفظ HTML كـ WebP* في استدعاء طريقة واحد، وتكون العملية بأكملها سلسة ك الزبدة. + +في هذا الدرس سنستعرض كل ما تحتاج معرفته: من إعداد تبعية Aspose.HTML، إلى تعديل إعدادات الضغط، وأخيرًا تحويل مستند HTML إلى ملف WebP يمكنك تقديمه على الويب. بنهاية الدرس ستتمكن من **عرض HTML كـ WebP**، **إنشاء WebP من HTML**، وفهم “السبب” وراء كل خيار تكوين. لا سكربتات خارجية، لا تمارين سطر أوامر—فقط كود Java نظيف. + +## المتطلبات المسبقة + +- تثبيت Java 8 أو أحدث (المكتبة تدعم JDK 8+). +- Maven أو Gradle لإدارة التبعيات (سنظهر مقتطف Maven). +- ملف HTML بسيط (`input.html`) تريد تحويله إلى صورة WebP. +- بيئة تطوير متكاملة أو محرر نصوص تختاره—IntelliJ IDEA يعمل بشكل ممتاز، لكن أي محرر سيؤدي الغرض. + +هل لديك كل ذلك؟ رائع، لنبدأ. + +## الخطوة 1: إضافة Aspose.HTML إلى مشروعك + +أولاً، تحتاج إلى مكتبة Aspose.HTML في مسار الفئات (classpath). إذا كنت تستخدم Maven، أضف ما يلي إلى ملف `pom.xml` الخاص بك: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +لـ Gradle، يبدو الأمر هكذا: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +لماذا هذه الخطوة حاسمة؟ بدون ملف JAR، لن تكون هناك فئات `HTMLDocument` أو `Converter` أو `WebpConversionOptions`، وسيتسبب ذلك في استثناء `ClassNotFoundException`. إضافة التبعية تجلب أيضًا الثنائيات الأصلية اللازمة لترميز WebP، لذا لن تحتاج للبحث عن ملفات DLL أو `.so` خارجية. + +> **نصيحة احترافية:** حافظ على تحديث تبعياتك. الإصدارات الأحدث من Aspose غالبًا ما تحسن خوارزميات ضغط WebP وتضيف دعمًا لميزات HTML5 الجديدة. + +## الخطوة 2: تحميل مستند HTML المصدر + +الآن بعد أن أصبحت المكتبة جاهزة، يمكننا تحميل ملف HTML الذي تريد تحويله. تقوم فئة `HTMLDocument` بتحليل الملف وبناء DOM، والذي سيقوم المحول بعد ذلك برسمه. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +لاحظ التعليق “Load the source HTML document” – هو تذكير بأنه يمكنك أيضًا حقن CSS أو JavaScript قبل التحويل إذا كانت صفحتك تعتمد على تنسيق ديناميكي. إذا تخطيت هذه الخطوة، لن يكون لدى المحول ما يرسمه، مما ينتج صورة فارغة. + +## الخطوة 3: تكوين خيارات تحويل WebP + +توفر Aspose.HTML تحكمًا دقيقًا في الناتج. في معظم الحالات، يعتبر WebP **lossy** مع إعداد جودة حوالي 85 توازنًا جيدًا بين الدقة البصرية وحجم الملف. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +لماذا نختار lossy؟ وضع lossy في WebP يستخدم الترميز التنبؤي، مما يمكنه تقليل حجم الملفات بنسبة 30‑50 % مقارنةً بـ PNG مع الحفاظ على معظم التفاصيل البصرية. إذا كنت تحتاج إلى نتائج دقيقة pixel‑perfect (مثل الشعارات)، غيّر `CompressionMode` إلى `Lossless` وزد `quality` إلى 100. + +## الخطوة 4: تحويل وحفظ صورة WebP + +مع وجود المستند والإعدادات جاهزة، يصبح التحويل سطرًا واحدًا. تقوم الطريقة الساكنة `Converter.convertHTML` بكل الأعمال الثقيلة: تُرسم الـ DOM على bitmap، تُشفّر كـ WebP، وتكتب الملف إلى القرص. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +هذا كل شيء! بعد انتهاء البرنامج، ستجد `output.webp` بجوار ملف HTML المصدر. يمكنك الآن تقديمه مباشرة من خادم الويب، تضمينه في عنصر ``، أو استخدامه في أي سياق يدعم WebP. + +## الخطوة 5: التحقق من النتيجة (اختياري لكن موصى به) + +من الجيد دائمًا التأكد من أن التحويل نجح وأن الصورة تبدو كما هو متوقع. يمكنك فتح ملف WebP في Chrome أو Firefox أو أي عارض صور يدعم الصيغة. للتحقق البرمجي السريع، قد تقرأ حجم الملف وأبعاده: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +إذا كان الملف كبيرًا بشكل غير متوقع أو الأبعاد غير صحيحة، عد إلى **الخطوة 3** وعدّل `quality` أو إعدادات viewport في HTML المصدر. تذكر أن WebP يحترم خصائص CSS `width`/`height` للعنصر الجذر، لذا فإن غياب وسم `` قد يسبب نتائج غير متوقعة. + +## مثال كامل يعمل + +لنجمع كل شيء معًا، إليك الفئة Java الكاملة الجاهزة للتنفيذ: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +احفظ هذا الملف باسم `HtmlToWebp.java`، استبدل `YOUR_DIRECTORY` بمسار المجلد الفعلي، ثم قم بالترجمة باستخدام `javac` وتشغيله عبر `java HtmlToWebp`. يجب أن ترى مخرجات في وحدة التحكم تؤكد حجم الملف وأبعاده، متبوعةً برسالة النجاح النهائية. + +![مثال تحويل html إلى webp](/images/convert-html-to-webp.png "لقطة شاشة لصورة WebP تم إنشاؤها من HTML – تحويل html إلى webp") + +## أسئلة شائعة وحالات خاصة + +### ماذا لو كان الـ HTML الخاص بي يشير إلى موارد خارجية (CSS، صور)؟ + +تقوم Aspose.HTML تلقائيًا بحل عناوين URL النسبية بناءً على موقع `input.html`. فقط تأكد من أن الموارد قابلة للوصول من نظام الملفات أو خادم ويب. إذا احتجت إلى حقن عنوان URL أساسي مخصص، استخدم المُنشئ `HTMLDocument` المتعدد الوسائط الذي يقبل كائن `URI` كقاعدة. + +### هل يمكنني إنشاء صور WebP متعددة من نفس ملف HTML (مثلاً بأحجام عرض مختلفة)؟ + +بالطبع. ضع منطق التحويل داخل حلقة، عدّل `webpOptions.setWidth()` و `setHeight()` قبل كل استدعاء، ومنح كل مخرج اسم ملف فريد. هذا مفيد لتصميم استجابة حيث تُقدم أحجام صور مختلفة للهواتف المحمولة وأجهزة الكمبيوتر. + +### كيف أتحول إلى ضغط lossless؟ + +استبدل السطر: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +بالسطر التالي: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +الضغط lossless يضمن دقة pixel‑perfect لكنه ينتج ملفات أكبر—استخدمه فقط عندما يكون ذلك ضروريًا. + +### هل يعمل هذا على Linux/macOS؟ + +نعم. حزمة JAR الخاصة بـ Aspose.HTML تتضمن الثنائيات الأصلية لأنظمة Windows وLinux وmacOS، لذا يعمل نفس كود Java في جميع الأنظمة. فقط تأكد من تثبيت JRE المناسب. + +## الخاتمة + +لقد تعلمت الآن **كيفية تحويل HTML إلى WebP** باستخدام Aspose.HTML for Java، بدءًا من إعداد التبعيات إلى ضبط الضغط والتحقق من النتيجة. بهذه المعرفة يمكنك **حفظ HTML كـ WebP**، **عرض HTML كـ WebP**، و**إنشاء WebP من HTML** في الوقت الفعلي—مثالي لسلاسل معالجة الصور الديناميكية، النشرات البريدية، أو أي سيناريو يتطلب رسومات خفيفة الوزن. + +ما الخطوة التالية؟ جرّب تعديل قيم `quality` المختلفة، استكشف وضع `Lossless`، أو دمج هذا المحول في نقطة نهاية REST باستخدام Spring Boot حتى يتمكن خدمتك من إرجاع صور WebP عند الطلب. يمكنك أيضًا التفكير في معالجة مجموعة من ملفات HTML دفعيًا، أو دمج ذلك مع Chrome بدون رأس لتحويل SVG إلى WebP. + +هل لديك المزيد من الأسئلة حول **كيفية تحويل HTML** بلغات أخرى، أو تحتاج مساعدة في حل حالة خاصة؟ اترك تعليقًا أدناه، وبرمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/arabic/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..7da229617 --- /dev/null +++ b/html/arabic/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: إنشاء ملف TIFF متعدد الصفحات من SVG في Java باستخدام Aspose.HTML. تعلّم + كيفية تحويل SVG إلى TIFF، تحميل مستند SVG في Java، وإنشاء ملفات TIFF متعددة الصفحات. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: ar +og_description: إنشاء ملف TIFF متعدد الصفحات من SVG في Java. يوضح هذا الدليل كيفية + تحميل مستند SVG، وتكوين خيارات TIFF، وإنشاء ملف TIFF متعدد الصفحات بدون فقدان للجودة. +og_title: إنشاء ملف TIFF متعدد الصفحات من SVG في جافا – دليل كامل +tags: +- Java +- Aspose.HTML +- Image Conversion +title: إنشاء ملف TIFF متعدد الصفحات من SVG في Java – دليل خطوة بخطوة +url: /ar/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# إنشاء ملف tiff متعدد الصفحات من SVG في Java – دليل خطوة بخطوة + +هل احتجت يومًا إلى **إنشاء ملف tiff متعدد الصفحات** من SVG لكن لم تكن متأكدًا من أين تبدأ؟ لست وحدك—العديد من المطورين يواجهون هذه العقبة عندما يحتاجون إلى مستند قابل للطباعة، غير فقدان، يمتد لعدة صفحات. في هذا الدليل سنستعرض حلًا كاملاً جاهزًا للتنفيذ يوضح **كيفية تحويل SVG إلى TIFF**، تحميل مستند SVG في Java، وتكوين الإخراج بحيث يمكنك **إنشاء ملفات tiff متعددة الصفحات** باستخدام ضغط LZW. + +سنغطي كل شيء من إعداد مكتبة Aspose.HTML إلى التعامل مع الحالات الخاصة مثل أصول SVG الكبيرة. بنهاية هذا الدليل سيكون لديك فئة Java واحدة يمكنك إدراجها في أي مشروع والبدء في إنشاء ملفات TIFF متعددة الصفحات فورًا. + +## ما ستحتاجه + +- **Java Development Kit (JDK) 8+** – يستخدم الكود واجهات برمجة تطبيقات Java القياسية. +- **Aspose.HTML for Java** (الإصدار 23.5 أو أحدث) – هذه هي الاعتمادية الطرف الثالث الوحيدة. +- **ملف SVG تجريبي** (أي رسم متجه سيعمل؛ سنسميه `input.svg`). +- بيئتك المفضلة IDE أو محرر نصوص بسيط وواجهة سطر أوامر. + +لا توجد أدوات بناء إضافية مطلوبة؛ المثال يُجمع باستخدام `javac` ويُنفّذ باستخدام `java`. إذا كنت تفضّل Maven أو Gradle، فقط أضف ملف JAR الخاص بـ Aspose.HTML إلى مسار الفئة (classpath) في مشروعك. + +![Create multipage tiff example](create-multipage-tiff.png){alt="إنشاء مثال tiff متعدد الصفحات"} + +## الخطوة 1 – تحميل مستند SVG (load svg document java) + +أول شيء يجب القيام به هو قراءة SVG إلى كائن `HTMLDocument`. تتعامل Aspose.HTML مع ملفات SVG كوثائق HTML، مما يمنحنا واجهة برمجة تطبيقات موحدة للتحويل. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**لماذا هذا مهم:** تحميل SVG كـ `HTMLDocument` يتيح لنا الوصول إلى محرك العرض الكامل، مما يضمن تفسير جميع الأنماط، الخطوط، والصور المدمجة بشكل صحيح قبل التحويل. تخطي هذه الخطوة ومحاولة تمرير البايتات الخام مباشرة إلى المحول غالبًا ما يؤدي إلى فقدان عناصر أو ألوان غير صحيحة. + +## الخطوة 2 – تكوين خيارات TIFF (how to create multipage tiff) + +بعد ذلك نقوم بإعداد `TiffConversionOptions`. هذا الكائن يتحكم في كل شيء من تخطيط الصفحة إلى الضغط. للحصول على إخراج متعدد الصفحات حقيقي نفعّل `setMultipage(true)`، ونختار ضغط **LZW** لأنه غير فقدان ويدعم على نطاق واسع. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**لماذا هذا مهم:** إذا حذفت `setMultipage(true)`، ستولد المكتبة ملف TIFF بصفحة واحدة، متجاهلة أي صفحات إضافية قد تُستنتج من SVG (مثلاً عندما يحتوي SVG على عدة عناصر جذرية ``). ضغط LZW يحافظ على حجم الملف معقولًا دون التضحية بجودة الصورة—مثالي للأرشفة أو خطوط طباعة. + +## الخطوة 3 – تنفيذ التحويل (how to convert svg to tiff) + +الآن يبدأ الجزء الثقيل. الطريقة الساكنة `Converter.convertSVG` تأخذ المستند المحمّل، مسار الوجهة، والخيارات التي عرّفناها للتو. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**لماذا هذا مهم:** استخدام الاستدعاء الساكن `convertSVG` هو أبسط طريقة لتشغيل التحويل. تحت الغطاء، تقوم Aspose.HTML بتحويل البيانات المتجهة إلى نقطية بدقة افتراضية 96 dpi؛ يمكنك تعديل DPI عبر `tiffOptions.setResolution(...)` إذا كانت جودة أعلى مطلوبة. + +## الخطوة 4 – التحقق من النتيجة + +بعد انتهاء التحويل، من الجيد التأكد من وجود الملف واحتوائه على عدد الصفحات المتوقع. يمكن إجراء فحص سريع باستخدام أي عارض صور يدعم TIFF متعدد الصفحات (مثل IrfanView، XnView، أو حتى `ImageIO` في Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Run the program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +يجب أن ترى رسالة في وحدة التحكم تؤكد النجاح، وعند فتح `output.tiff` ستظهر صفحة واحدة لكل عنصر جذر SVG (أو صفحة واحدة إذا كان SVG يحتوي على لوحة واحدة فقط). + +## المشكلات الشائعة & نصائح احترافية + +| المشكلة | لماذا يحدث | كيفية الإصلاح | +|-------|----------------|---------------| +| **Missing fonts** | يشير SVG إلى خطوط نظام غير مثبتة على الخادم. | تضمين الخطوط داخل SVG أو استخدام `FontSettings` في Aspose.HTML لتوفير مجلد خطوط مخصص. | +| **Large file size** | التحويل النقطي بدقة عالية قد يضاعف حجم TIFF. | خفض DPI عبر `tiffOptions.setResolution(150)` أو التحويل إلى `Compression.NONE` فقط لأغراض التصحيح. | +| **Multiple pages not generated** | يحتوي SVG على عنصر `` واحد فقط. | قسّم المصدر إلى ملفات SVG منفصلة أو غلف كل صفحة منطقية بعلامة `` قبل التحويل. | +| **Unsupported SVG features** | بعض الفلاتر أو الرسوم المتحركة غير مدعومة. | بسط الـ SVG أو عالجه مسبقًا بأداة مثل Inkscape لتسطيح الفلاتر. | + +**نصيحة احترافية:** إذا كنت بحاجة إلى ترتيب صفحات محدد، أعد تسمية ملفات SVG إلى `page1.svg`، `page2.svg`، إلخ، وكررها في حلقة، مضافًا كل نتيجة تحويل إلى نفس ملف TIFF باستخدام `tiffOptions.setMultipage(true)` في كل مرة. + +## مثال كامل يعمل + +فيما يلي الفئة الكاملة المستقلة في Java التي يمكنك نسخها ولصقها في ملف باسم `SvgToMultipageTiff.java`. تتضمن عبارات الاستيراد، التعليقات، ومعالجة الأخطاء للاستخدام في بيئة الإنتاج. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +تشغيل الكود ينتج ملف TIFF حيث يتحول كل جذر SVG إلى صفحة منفصلة—بالضبط ما تحتاجه عندما تريد **إنشاء ملفات tiff متعددة الصفحات** للطباعة أو الأرشفة. + +## الخلاصة + +لقد أظهرنا لك الآن كيفية **إنشاء ملف tiff متعدد الصفحات** من SVG باستخدام Java و Aspose.HTML. غطى الدليل تحميل SVG (`load svg document java`)، تكوين خيارات التحويل، تنفيذ التحويل (`how to convert svg to tiff`)، والتحقق من النتيجة. مع وجود الكود المصدري الكامل، يمكنك تعديل الحل لمعالجة مجموعة من SVGs دفعةً، تعديل إعدادات DPI، أو دمج المنطق في خط أنابيب توليد مستندات أكبر. + +هل أنت مستعد للتحدي التالي؟ جرّب تحويل مجلد من SVGs إلى ملف TIFF متعدد الصفحات واحد، جرب مخططات ضغط مختلفة، أو استكشف إخراج PDF عن طريق استبدال `TiffConversionOptions` بـ `PdfConversionOptions`. المبادئ نفسها تنطبق، لذا ستكون مرتاحًا لتوسيع هذا النمط إلى صيغ أخرى. + +هل لديك أسئلة أو صادفت حالة خاصة في SVG؟ اترك تعليقًا أدناه، وبرمجة سعيدة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/html5-canvas-rendering/_index.md b/html/arabic/java/html5-canvas-rendering/_index.md index 4ee976649..da50b2857 100644 --- a/html/arabic/java/html5-canvas-rendering/_index.md +++ b/html/arabic/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ url: /ar/java/html5-canvas-rendering/ إنشاء وعرض HTML5 Canvas باستخدام Aspose.HTML for Java. تعلّم خطوة بخطوة كيفية الرسم والتصميم والتصدير إلى PDF باستخدام مكتبة Java القوية هذه. ### [إتقان HTML5 Canvas باستخدام Aspose.HTML لـ Java](./html5-canvas/) تعرف على كيفية إنشاء HTML5 Canvas وتحويله إلى PDF باستخدام Aspose.HTML for Java. هذا الدليل مثالي للمطورين الذين يتطلعون إلى تحسين مشاريع الويب الخاصة بهم. +### [كيفية محاكاة iPhone – دليل كامل باستخدام Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +تعلم كيفية محاكاة جهاز iPhone في المتصفح باستخدام Aspose.HTML وإنشاء ملفات PDF دقيقة. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/arabic/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/arabic/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..675f2ed2d --- /dev/null +++ b/html/arabic/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: تعلم كيفية محاكاة iPhone في جافا باستخدام Aspose.HTML. يتضمن خطوات لتعيين + وكيل مستخدم مخصص وتعيين نسبة بكسل الجهاز للحصول على عرض دقيق للهواتف المحمولة. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: ar +og_description: كيف تحاكي iPhone في Java؟ يوضح هذا الدرس كيفية تعيين وكيل مستخدم مخصص + ونسبة بكسل الجهاز باستخدام Aspose.HTML، لتقديم صفحات موبايل بدقة بكسل مثالية. +og_title: كيفية محاكاة iPhone – دليل Aspose.HTML خطوة بخطوة +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: كيفية محاكاة iPhone – دليل كامل مع Aspose.HTML +url: /ar/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# كيفية محاكاة iPhone – دليل كامل باستخدام Aspose.HTML + +هل تساءلت يومًا **كيف تحاكي iPhone** عند اختبار صفحة ويب محليًا؟ ربما تكون تقوم بتصحيح تخطيط استجابة والمتصفح على سطح المكتب لا يفي بالغرض. الخبر السار هو أنك لا تحتاج إلى جهاز فعلي—`DocumentSandbox` في Aspose.HTML يتيح لك تقليد شاشة iPhone، ووكيل المستخدم (User‑Agent)، ونسبة بكسل الجهاز (DPR) ببضع أسطر من جافا. + +في هذا الدرس سنستعرض الخطوات الدقيقة لتعيين **وكيل مستخدم مخصص**، وضبط **نسبة بكسل الجهاز**، والتحقق من أن كل شيء يعمل كما هو متوقع. في النهاية ستحصل على بيئة sandbox قابلة لإعادة الاستخدام تُظهر الصفحات كما لو كانت على iPhone 8، وستفهم لماذا كل إعداد مهم. + +## ما ستحققه + +- إنشاء كائن `Screen` يعكس أبعاد iPhone الفعلية وDPR الخاص به. +- تطبيق سلسلة **وكيل مستخدم مخصص** بحيث يظن الخوادم أن الطلب قادم من Safari على iOS. +- بناء `DocumentSandbox` يربط الشاشة ووكيل المستخدم معًا. +- تشغيل `HTMLDocument` داخل الـ sandbox ورؤية مخرجات الكونسول التي تؤكد الإعدادات. + +لا تحتاج إلى مكتبات خارجية بخلاف Aspose.HTML، والكود يعمل على أي بيئة Java 17+. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## كيفية محاكاة iPhone باستخدام Aspose.HTML Sandbox + +أول شيء نحتاجه هو `Screen` يعكس أبعاد iPhone الفعلية *وكثافة بكسلاته*. هذا هو جوهر **كيفية محاكاة iPhone** بدقة. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**لماذا هذا مهم:** +- العرض = 375 px والارتفاع = 667 px هما أبعاد البكسل CSS التي ستراها في Chrome DevTools عند اختيار iPhone 8. +- ضبط DPR إلى 2 يخبر محرك العرض أن يعامل كل بكسل CSS كبكسلين فعليين، مما يمنحك نصًا وصورًا واضحة—تمامًا كما يحدث على الجهاز الحقيقي. + +> *نصيحة محترف:* إذا أردت محاكاة iPhone أحدث (مثل iPhone 13)، فقط غيّر الأرقام إلى 390 × 844 وDPR = 3. + +## ضبط وكيل مستخدم مخصص (set custom user agent) + +الخطوة التالية هي **ضبط وكيل مستخدم مخصص** حتى يقدم الخادم HTML/CSS المخصص للهواتف المحمولة. بدون ذلك، ستظل العديد من المواقع تعتقد أنك على سطح مكتب. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**كيف يعمل ذلك:** +- رأس `User-Agent` هو طريقة التحية التي يستخدمها المتصفح لتعلن عن نفسه. +- بتوفير السلسلة الدقيقة التي يرسلها Safari على iOS 16، تضمن أن الخادم يعيد الأصول المُحسّنة للهواتف (مثل الصور المتجاوبة، السكريبتات المتكيفة، إلخ). + +إذا احتجت يومًا **كيفية ضبط وكيل المستخدم** لجهاز مختلف، فقط استبدل السلسلة بالقيمة المناسبة—Google Chrome، Firefox، أو حتى بوت مخصص. + +## ضبط نسبة بكسل الجهاز (set device pixel ratio) + +الآن نضبط **نسبة بكسل الجهاز** داخل الـ sandbox. هذه هي الخطوة التي تجيب مباشرة على سؤال “**كيفية ضبط DPR**” لبيئة محاكاة. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**التفسير:** +- نمط `Builder` يتيح لك ربط الشاشة (التي تحمل DPR) ووكيل المستخدم بطريقة سلسة. +- عندما يقوم الـ sandbox بعرض `HTMLDocument`، سيتظاهر بأنه يعمل على جهاز بهذه الكثافة البكسلية بالضبط. + +> *لماذا يهمك ذلك:* بعض استعلامات CSS تستخدم `device-pixel-ratio` (مثال: `@media (-webkit-min-device-pixel-ratio: 2)`). إذا لم تقم بضبط DPR، فإن تلك القواعد لن تُفعَّل، وستفوت الأصول عالية الدقة. + +## التحقق من إعدادات الـ Sandbox (how to set user-agent) + +لنضع الـ sandbox قيد الاختبار. المقتطف التالي ينشئ `HTMLDocument`، يحمل صفحة، ويطبع تأكيدًا على أن الـ sandbox نشط. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**مخرجات الكونسول المتوقعة** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +إذا شغلت البرنامج ورأيت هذا السطر، فقد نجحت في **كيفية محاكاة iPhone** مع DPR ووكيل المستخدم الصحيحين. افتح الصفحة في متصفح حقيقي وتفقد أبعاد نافذة العرض—ستلاحظ أنها تتطابق مع قيم iPhone التي حددناها. + +## الأخطاء الشائعة وكيفية ضبط DPR بشكل صحيح (how to set dpr) + +حتى مع الكود الصحيح، قد تواجه بعض العقبات: + +| المشكلة | لماذا يحدث | الحل | +|---------|------------|------| +| **يبقى DPR عند 1** | قمت بتمرير `Screen` بدون الوسيط الثالث (DPR). | استخدم دائمًا `new Screen(width, height, dpr)`. | +| **تم تجاهل وكيل المستخدم** | الـ sandbox لم يُربط بـ `HTMLDocument`. | مرّر `documentSandbox` كوسيط ثاني إلى مُنشئ `HTMLDocument`. | +| **أبعاد غير صحيحة** | استخدمت بكسلات الجهاز بدلًا من بكسلات CSS. | تذكّر: العرض/الارتفاع هما **بكسلات CSS**، وليس بكسلات العتاد. | +| **الخادم لا يزال يرسل CSS لسطح المكتب** | بعض المواقع تستخدم جافاسكريبت لاكتشاف الأجهزة، وليس فقط الرأس. | فكر أيضًا في حقن وسم `` إذا لزم الأمر. | + +مع مراعاة هذه النقاط، نادراً ما تواجه حالة لا تعمل فيها المحاكاة كما هو متوقع. + +## توسيع الـ Sandbox – الخطوات التالية + +الآن بعد أن عرفت **كيفية ضبط وكيل مستخدم مخصص** و**كيفية ضبط DPR**، يمكنك تجربة ما يلي: + +- **تغيير حجم الشاشة** لمحاكاة الأجهزة اللوحية أو الهواتف الأكبر. +- **تبديل وكيل المستخدم** لاختبار Chrome على Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **إضافة ملفات تعريف الارتباط أو رؤوس** عبر طريقة `setHeaders` في الـ sandbox للاختبار الموثق. +- **التقاط لقطة شاشة** باستخدام `HTMLDocument.renderToFile("output.png")` لمقارنة الاختلافات البصرية تلقائيًا. + +هذه الإضافات تتيح لك بناء بيئة اختبار متكاملة دون مغادرة بيئة التطوير الخاصة بك. + +--- + +## الخلاصة + +غطّينا **كيفية محاكاة iPhone** باستخدام `DocumentSandbox` في Aspose.HTML، موضحين لك بالضبط **كيفية ضبط وكيل مستخدم مخصص**، **كيفية ضبط نسبة بكسل الجهاز**، وحتى الفروق الدقيقة بين “**كيفية ضبط وكيل المستخدم**” و“**كيفية ضبط DPR**”. المثال الكامل القابل للتنفيذ يُظهر كل جزء في مكان واحد، لتتمكن من النسخ واللصق والتعديل والبدء في اختبار التخطيطات المتجاوبة فورًا. + +جرّبه—غيّر أبعاد الشاشة، العب بواجهات وكيل المستخدم المختلفة، وشاهد كيف تتفاعل صفحاتك. عندما تتقن هذه الإعدادات، يصبح تصحيح تصاميم الاستجابة أمرًا سهلًا، وستوفر ساعات طويلة من البحث عن أخطاء على الأجهزة الفعلية. + +هل لديك أسئلة أو تريد مشاركة تعديلاتك؟ اترك تعليقًا أدناه، وتمنياتنا لك بمحاكاة ممتعة! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/advanced-usage/_index.md b/html/chinese/java/advanced-usage/_index.md index c338f32fe..1c9c349d9 100644 --- a/html/chinese/java/advanced-usage/_index.md +++ b/html/chinese/java/advanced-usage/_index.md @@ -135,6 +135,9 @@ Aspose.HTML 允许您将 `DomMutationObserver` 附加到任意节点。这对于 ### [如何在 Java 中运行 JavaScript – 完整指南](./how-to-run-javascript-in-java-complete-guide/) 学习如何在 Java 环境中执行 JavaScript 代码,涵盖 Rhino、Nashorn 和 GraalVM 等实现。 +### [顶级 await 示例 – 在 JavaScript 中使用 await 延迟](./top-level-await-example-using-await-delay-in-javascript/) +演示在 JavaScript 中使用顶级 await 以及 await delay 实现异步延时的示例。 + --- **最后更新:** 2025-11-29 **测试环境:** Aspose.HTML for Java 24.11 diff --git a/html/chinese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/chinese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..a5906bd25 --- /dev/null +++ b/html/chinese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: 顶层 await 示例,展示 await 延迟、递增计数器类和公共类字段的 JavaScript 实时演示。 +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: zh +og_description: 顶层 await 示例,演示 await 延迟、递增计数器类和公共类字段的简明 JavaScript 教程。 +og_title: 顶层 await 示例 – 在 JavaScript 中使用 await 延迟 +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: 顶层 await 示例 – 在 JavaScript 中使用 await 延迟 +url: /zh/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await 示例 – 在 JavaScript 中使用 await delay + +你是否曾想过如何在不将所有代码包装在 async IIFE 中的情况下暂停模块执行?这正是 **top level await example** 能做到的。在本教程中,我们将演示一个使用 `await delay javascript` 延迟工作的 tiny web page,然后创建一个利用 **public class fields javascript** 的 `increment counter class`。完成后,你将拥有一个完整的、可直接复制粘贴的代码片段,可在任何现代浏览器中运行。 + +我们将从定义带有公共字段的类到构建一个简单的基于 promise 的 delay 辅助函数全部讲解。无需外部库,无需构建步骤——只需普通的 HTML、一个 ` + + +``` + +### 预期的控制台输出 + +``` +Counter class initialized +Final count: 1 +``` + +如果在 DevTools 中打开页面,你应该会看到 static‑block 消息在延迟完成之前 **出现**,从而确认类先被求值。 + +## 步骤 5 – 为什么使用公共类字段而不是构造函数? + +你可能会想,为什么我们没有这样写: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +两种方式都可行,但 **public class fields javascript** 提供了更简洁、更声明式的语法。字段只定义一次,而不是在每次构造函数调用中定义,当类变得更大时更易阅读。此外,静态块不能放在构造函数内部,因此将初始化逻辑分离得更自然。 + +## 步骤 6 – 将示例适配到真实应用 + +在生产环境中,你通常需要的不止一个计数器。以下是一些快速思路: + +- **多个计数器:** 将它们存储在以标识符为键的 `Map` 中。 +- **持久化状态:** 用 `localStorage` 写入取代 `console.log`。 +- **异步初始化:** 使用静态块在创建任何实例之前从服务器获取配置。 + +所有这些模式仍然受益于 top‑level await,因为你可以在模块加载时一次性获取数据,并保证它对每个使用者都已准备好。 + +## 常见问题 + +**Q: top‑level await 会阻塞其他模块吗?** +A: 不会。每个模块独立运行。只有包含 await 的模块会暂停;其他模块会并行加载。 + +**Q: 如果 delay promise 被拒绝会怎样?** +A: 未处理的拒绝会中止模块求值,并在控制台显示错误。如果需要优雅的回退,请在 `await` 外层使用 `try…catch`。 + +**Q: `static` 关键字是必需的吗?** +A: 对计数器本身不是必需的,但静态块是演示代码在加载时 *只运行一次* 的便捷方式——非常适合日志记录或特性检测。 + +## 结论 + +你刚刚构建了一个展示 `await delay javascript`、**increment counter class** 和 **public class fields javascript** 强大功能的 **top level await example**。完整、可运行的代码片段位于上方,控制台输出证明静态块在延迟代码运行之前就已触发。 + +接下来,你可以尝试更复杂的 async 流程,用真实的 API 调用替代 delay,或为类添加更多方法。记住,现代 JavaScript 允许你将模块视为一等的 async 实体——无需额外的包装器。 + +祝编码愉快,欢迎在评论中分享你的变体。如果你觉得本指南有帮助,请分享给仍在与 async 模式搏斗的同事! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/conversion-html-to-other-formats/_index.md b/html/chinese/java/conversion-html-to-other-formats/_index.md index 17440bc9f..3d54cd18f 100644 --- a/html/chinese/java/conversion-html-to-other-formats/_index.md +++ b/html/chinese/java/conversion-html-to-other-formats/_index.md @@ -89,6 +89,8 @@ Aspose.HTML for Java 简化了 HTML 转 PDF 的工作流。请参阅专门的教 了解如何使用 Aspose.HTML for Java 轻松将 HTML 转换为 XPS。轻松创建跨平台文档。 ### [将 Markdown 转换为 HTML](./convert-markdown-to-html/) 使用 Aspose.HTML for Java 在 Java 中无缝将 Markdown 转换为 HTML。按照我们的分步指南简化文档转换需求。 +### [在 Java 中将 HTML 转换为 Markdown – 保持原始格式](./convert-html-to-markdown-in-java-preserve-original-formattin/) +使用 Aspose.HTML for Java 将 HTML 内容转换为 Markdown,同时保留原始排版和样式。 ### [将 SVG 转换为图像](./convert-svg-to-image/) 了解如何使用 Aspose.HTML 在 Java 中将 SVG 转换为图像。提供高质量输出的完整指南。 ### [将 SVG 转换为 PDF](./convert-svg-to-pdf/) @@ -97,6 +99,10 @@ Aspose.HTML for Java 简化了 HTML 转 PDF 的工作流。请参阅专门的教 了解如何使用 Aspose.HTML for Java 将 SVG 转换为 XPS。提供简单、分步的无缝转换指南。 ### [在 Java 中将 HTML 转换为 PDF – 带页面尺寸设置的分步指南](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) 详细步骤演示如何在 Java 使用 Aspose.HTML 将 HTML 转换为 PDF,并自定义页面尺寸。 +### [创建自定义尺寸 PDF – 使用 Aspose 将 HTML 转换为 PDF](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +了解如何在 Java 中使用 Aspose.HTML 将 HTML 转换为自定义页面尺寸的 PDF 文档。 +### [在 Java 中从 HTML 创建 PDF – 并行批量转换指南](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +了解如何使用 Aspose.HTML 在 Java 中并行批量将 HTML 转换为 PDF,提高转换效率。 ## 常见问题 diff --git a/html/chinese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/chinese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..05a5e87c4 --- /dev/null +++ b/html/chinese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose HTML 在 Java 中将 HTML 转换为 Markdown,并在保留原始格式的同时生成 Markdown 文件。一步一步学习。 +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: zh +og_description: 快速将HTML转换为Markdown,生成Markdown文件,并使用Aspose HTML转换(Java版)保持原始格式。 +og_title: 在 Java 中将 HTML 转换为 Markdown – 保持格式 +tags: +- Aspose +- Java +- Markdown +title: 在 Java 中将 HTML 转换为 Markdown – 保持原始格式 +url: /zh/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 将 HTML 转换为 Markdown(Java) – 保持原始格式 + +是否曾经需要**将 HTML 转换为 markdown**,但担心会失去空格、表格或内联标签?你并不是唯一遇到这种情况的人。许多开发者在尝试将网页内容迁移到干净、适合版本控制的格式时都会碰到这个难题。好消息是?只需几行 Java 代码和 Aspose HTML,你就可以**生成 markdown 文件**,其外观与源文件完全一致,包括所有空白字符。 + +在本指南中,我们将完整演示整个过程:加载一个复杂的 HTML 文件,配置转换以**保持原始格式**,并最终将输出写入 `preserved.md`。完成后,你将拥有一个可直接运行的代码片段,了解每个设置*为何*重要,并知道如何针对自定义 CSS 或嵌入脚本等边缘情况进行适配。 + +## 你需要的环境 + +- Java 17(或任何近期的 JDK)——该 API 支持 Java 8 及以上,但更新的版本性能更佳。 +- Aspose HTML for Java 库(版本 23.11 或更高)。你可以从 Maven Central 获取: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- 一个示例 HTML 文件(`complex.html`),其中包含标题、表格、代码块,可能还有一些内联 `` 样式。 +- 一点耐心和尝试的意愿。 + +就这么简单。无需外部工具,也不需要命令行技巧——仅使用纯 Java 代码。 + +## 步骤 1:加载源 HTML 文档 + +我们首先创建一个指向源文件的 `HTMLDocument` 实例。Aspose HTML 将文件视为 DOM,这意味着在转换之前,你可以检查或修改它(如果需要的话)。 + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **为什么这很重要:** 以这种方式加载文档可确保所有链接资源(样式表、图像)相对于文件位置进行解析。如果跳过此步骤直接使用原始字符串,可能会丢失影响间距的外部 CSS——这正是你想要**保持原始格式**的情况。 + +## 步骤 2:配置 Markdown 转换选项 + +Aspose HTML 提供了 `MarkdownConversionOptions` 类。对我们而言关键属性是 `setPreserveOriginalFormatting(true)`。启用后,转换器会保留换行、缩进,甚至是 Markdown 无法原生表示的原始 HTML 片段。 + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **专业提示:** 如果后来发现某些内联样式被剥离,你也可以调用 `markdownOptions.setIncludeHtml(true)`,将原始 HTML 块强制写入 Markdown 输出。 + +## 步骤 3:执行转换 + +现在我们将 `HTMLDocument`、目标文件路径以及选项传递给静态的 `Converter.convertHTML` 方法。该方法在后台完成所有繁重的工作。 + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +调用完成后,你会在源文件旁边看到 `preserved.md`。用任意编辑器打开——你会注意到原始的换行和表格对齐都保持完整。 + +## 步骤 4:验证结果(可选但推荐) + +快速的合理性检查可以帮助你避免后期的细微错误。你可以将文件重新读取到 Java 中并打印前几行,或直接在 VS Code 中打开它。 + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +你应该会看到类似如下内容: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +`` 标签仍然存在,因为 Markdown 原生的表格语法无法捕获精确的样式——这要归功于 `preserve original formatting`。 + +## 步骤 5:完整示例 – 可直接运行的代码 + +下面是完整的、可直接运行的类。将 `YOUR_DIRECTORY` 替换为你机器上的实际路径。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +使用 `mvn exec:java` 或你喜欢的 IDE 运行程序,你将得到一个**生成的 markdown 文件**,其布局与原始 HTML 完全一致。 + +## 常见问题与边缘情况 + +### 这能与外部 CSS 文件一起使用吗? + +可以。只要 CSS 文件可以通过相对路径访问,Aspose HTML 会自动加载它们。如果你从远程 URL 获取 HTML,可能需要设置自定义的 `ResourceLoadingOptions` 对象以允许网络访问。 + +### 如果我不想在 markdown 中出现任何原始 HTML,该怎么办? + +只需切换选项: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +转换器随后会尝试将所有内容转换为纯 markdown 语法,可能会失去部分布局的忠实度。 + +### 我可以转换字符串而不是文件吗? + +当然可以。使用接受 `String` 的构造函数: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +然后像之前一样将 `doc` 传递给 `Converter.convertHTML`。 + +### 与 Flexmark 或 pandoc 等其他库相比有什么区别? + +大多数开源工具将 HTML 视为纯文本,并会积极剥除空白。Aspose HTML 的 `preserveOriginalFormatting` 标志是一个**专有特性**,它会保留原始源代码的空白、换行,甚至将不受支持的标签保留为原始 HTML 块。这也是本教程强调**aspose html conversion**,面向需要精确保真度的 Java 开发者的原因。 + +## 生产环境使用提示 + +- **批量处理:** 将转换逻辑包装在循环中,一次处理多个 HTML 文件。 +- **错误处理:** 捕获 `IOException` 和 `com.aspose.html.exceptions.AssertionFailedException`,以报告缺失的资源。 +- **性能:** 在转换大型站点的片段时复用单个 `HTMLDocument` 实例;库会缓存已解析的 CSS。 + +## 结论 + +我们已经展示了如何在 Java 中**将 HTML 转换为 markdown**,并确保输出**保持原始格式**。这段简短且独立的代码片段演示了完整的工作流——从加载 HTML 文档、配置 `MarkdownConversionOptions`、执行转换到验证结果。借助 Aspose HTML 强大的 API,你现在可以以编程方式**生成 markdown 文件**,无论是构建静态站点生成器、文档流水线,还是内容迁移工具。 + +接下来,你可以探索: + +- 使用 **html to markdown java** 在整个网站进行批量迁移。 +- 调整转换选项以输出 GitHub 风格的 markdown 表格。 +- 将此方法与 CI/CD 步骤结合,实现源 HTML 变更时自动更新文档。 + +欢迎随意尝试,如遇到任何问题请留言。祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/chinese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..6cf11b31f --- /dev/null +++ b/html/chinese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,194 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose.HTML for Java 从 HTML 创建自定义尺寸的 PDF。了解如何将 HTML 转换为 PDF 并仅需几步即可设置 + PDF 页面尺寸。 +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: zh +og_description: 使用 Aspose 从 HTML 创建自定义尺寸的 PDF。本指南将向您展示如何将 HTML 转换为 PDF,轻松更改 PDF 页面尺寸并设置 + PDF 页面尺寸。 +og_title: 创建自定义尺寸 PDF – HTML 转 PDF 快速指南 +tags: +- aspose +- java +- pdf +- html +title: 创建自定义尺寸的 PDF – 使用 Aspose 将 HTML 转换为 PDF +url: /zh/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 创建 PDF 自定义尺寸 – 使用 Aspose 将 HTML 转换为 PDF + +是否曾经需要从 HTML 文件 **创建 PDF 自定义尺寸**?在本教程中,我们将向您展示如何 **将 HTML 转换为 PDF** 并使用 Aspose.HTML for Java 设置 PDF 页面尺寸。 + +如果您正在制作发票、报告或电子书,获取精确的页面尺寸非常重要——否则布局会偏移或被截断。 + +我们将逐步演示,从加载源 HTML 到微调边距,最终生成可直接使用的 PDF。没有模糊的引用,只有完整、可运行的示例,您可以立即复制粘贴使用。 + +## 您需要的环境 + +- **Java 17**(或任何近期的 JDK)。 +- **Aspose.HTML for Java** JAR 包——您可以从 Maven 仓库或 Aspose 官网获取最新版本。 +- 一个简单的 `input.html` 文件,放置在您可控制的文件夹中。 +- 您喜欢的 IDE 或文本编辑器;我通常使用 IntelliJ IDEA,但 Eclipse 也完全可用。 + +拥有这些前提条件意味着您不会在中途遇到 “class not found” 错误。 + +现在,让我们开始吧。 + +![创建 PDF 自定义尺寸示例](/images/create-pdf-custom-size.png "显示使用自定义页面尺寸和边距生成的 PDF 的截图 – create pdf custom size") + +## 创建 PDF 自定义尺寸 – 核心步骤 + +下面是完整的 Java 程序。您可以将其复制到名为 `ConvertHtmlToPdfCustomPage.java` 的文件中,并在项目中添加 Aspose 依赖后运行它。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### 步骤 1 – 将 HTML 转换为 PDF:加载文档 + +我们首先要 **加载要转换为 PDF 的 HTML**。 +`HTMLDocument` 读取文件,解析相对链接,并构建 Aspose 可渲染的 DOM。 + +**为什么这很重要:** 如果 HTML 引用了 CSS 或图片,Aspose 将相对于文件路径获取它们。使用绝对路径(`YOUR_DIRECTORY/input.html`)可以避免 “file not found” 的意外。 + +### 步骤 2 – 更改 PDF 页面尺寸:配置选项 + +这里我们创建一个 `PdfConversionOptions` 对象。 +- `setPageSize(PageSize.A4)` 告诉 Aspose 使用标准的 A4 尺寸(210 × 297 mm)。 +- `setPageOrientation(...)` 在需要横向时翻转页面。 +- `setMargins(new Margin(20, 20, 20, 20))` 为每一侧设置 20 点的边距。 + +您可以将 `PageSize.A4` 替换为 `PageSize.LETTER`,甚至通过传递 `SizeF` 对象来使用 **自定义尺寸**,例如: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +**专业提示:** 1 点等于 1/72 英寸。如果您以毫米为单位思考,乘以 2.83465 即可得到点数。 + +### 步骤 3 – 从 HTML 生成 PDF:运行转换 + +`Converter.convertHTML` 完成主要工作。它接受已加载的 `HTMLDocument`、输出路径以及我们刚配置的选项。 + +如果您想根据内容动态 **设置 PDF 页面尺寸**,可以在此步骤之前计算所需尺寸并相应地调整 `pdfOptions`。 + +### 步骤 4 – 验证结果 + +`System.out.println` 行是可选的,但在控制台运行程序时可以快速反馈。执行后,打开 `custom_page.pdf` —— 您应该看到一个 A4 纵向 PDF,四边均为 20 点的统一边距,正如我们指定的那样。 + +## 将 HTML 转换为 PDF – 常见变体 + +### 使用流而非文件路径 + +有时您没有实体文件;HTML 可能来自数据库或 API。在这种情况下,将字符串包装在 `ByteArrayInputStream` 中: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +第二个参数是用于解析相对资源的基础 URL。 + +### 更改页面方向 + +如果您的报告较宽,请切换为横向: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### 微调边距 + +边距接受浮点值,您可以将其设置为 0.5 pt 以实现极细的边框: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### 处理大型 HTML 文件 + +对于大型文档,考虑启用 **内存高效流式处理**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +这会告诉 Aspose 将中间数据写入临时文件,而不是全部保存在 RAM 中。 + +## 设置 PDF 页面尺寸 – 边缘情况与陷阱 + +- **缺少字体:** 如果您的 HTML 使用了服务器上未安装的自定义字体,PDF 将回退为默认字体。使用 `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` 嵌入字体。 +- **图像缩放:** 高分辨率图像会导致 PDF 体积膨胀。使用 `pdfOptions.setImageResolution(150);` 在保持质量的同时进行降采样。 +- **CSS 兼容性:** 并非所有 CSS 属性都完全受支持。坚持使用标准布局技术(flexbox 可用,但 grid 可能有怪异表现)。 +- **路径权限:** 确保进程对 `YOUR_DIRECTORY` 具有写入权限。否则会抛出 `IOException`。 + +## 预期输出 + +运行程序会生成如下所示的 PDF(概念示意图): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- 页面尺寸:**A4**(210 × 297 mm)。 +- 方向:**Portrait**(纵向)。 +- 边距:每侧 **20 pt**。 + +使用任意 PDF 查看器(Adobe Reader、Chrome 等)打开文件以确认。 + +## 总结 + +现在您已经了解如何使用 Aspose.HTML for Java 从 HTML 源 **创建 PDF 自定义尺寸**。本教程覆盖了完整的流程:**将 HTML 转换为 PDF**、**更改 PDF 页面尺寸**、**设置 PDF 页面尺寸**,以及使用自定义边距 **从 HTML 生成 PDF**。 + +随意尝试——将 `PageSize.LETTER` 替换为 legal 尺寸,微调边距,或嵌入您自己的字体。接下来,您可以探索 **添加水印**、**加密 PDF** 或 **批量处理多个 HTML 文件**。所有这些主题都基于我们刚刚介绍的核心概念。 + +对特定的边缘情况有疑问吗?在下方留言,我会帮助您排查。祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/chinese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..53ee70275 --- /dev/null +++ b/html/chinese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-26 +description: 使用固定线程池快速将 HTML 转换为 PDF。学习批量 HTML 转 PDF 并在 Java 中运行并行任务。 +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: zh +og_description: 使用固定线程池快速将 HTML 转换为 PDF。了解如何批量将 HTML 转换为 PDF 并在 Java 中并行运行任务。 +og_title: 在 Java 中将 HTML 转换为 PDF – 并行批量转换指南 +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: 在 Java 中从 HTML 创建 PDF – 并行批量转换指南 +url: /zh/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Java 将 HTML 转换为 PDF – 并行批量转换指南 + +是否曾经需要**从 HTML 创建 PDF**,却因为单线程转换慢得像爬行一样而卡住?你并不是唯一遇到这种情况的人。在许多实际项目中,我们会收到数十个 HTML 报告,需要在当天结束前全部转换为 PDF,逐个处理根本不切实际。 + +因此本教程将向你展示**如何使用固定线程池将 HTML 转换为 PDF**,让你**批量将 HTML 转为 PDF**并**并行执行任务**,轻松搞定。完成后,你将拥有一个完整、可直接运行的程序,能够在极短的时间内将文件夹中的 HTML 文件批量转换为 PDF。 + +## 你将学到的内容 + +在接下来的章节中,我们将覆盖所有必备知识: + +* Aspose.HTML(负责核心转换的库)的确切 Maven/Gradle 依赖。 +* 为什么 **固定线程池** 是 CPU 密集型转换任务的最佳选择。 +* 如何列出源文件,以便处理上百个文档。 +* 直接粘贴到 IDE 中的完整代码——没有缺失的导入,没有 “TODO” 注释。 +* 错误处理技巧、线程池大小调优以及输出验证方法。 + +不需要事先了解 Aspose.HTML,只要有基本的 Java 环境和动手实验的意愿即可。让我们开始吧。 + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*图片说明:create pdf from html – 并行转换示意图* + +## 步骤 1:准备项目并添加 Aspose.HTML + +首先,你的项目需要引入 Aspose.HTML 库。如果使用 Maven,请在 `pom.xml` 中加入以下内容: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +如果使用 Gradle,则只需: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +为什么选择 Aspose.HTML?它是商业库,但提供了**convert html to pdf** API,能够开箱即用地处理 CSS、JavaScript 以及复杂布局。如果你更倾向于开源方案,后期可以替换 `Converter.convertHTML` 调用,但线程逻辑保持不变。 + +> **专业提示:** 请保持版本号与官方发布说明同步;更新的版本通常会提升渲染速度,这在并行运行大量任务时尤为重要。 + +## 步骤 2:构建固定线程池以实现并行转换 + +当你拥有一批文件时,千万不要无限制地创建线程——操作系统会因此产生大量上下文切换。**固定线程池** 能够提供可预测的并发度,同时控制内存使用。 + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +为什么是四个线程?在典型的 8 核机器上,留出一半核心给 I/O 和操作系统是比较合理的。你可以自行实验:`Runtime.getRuntime().availableProcessors()` 会返回核心数,经验法则是 `cores / 2`。记住,每一次转换都是 CPU 密集型的,线程数超过核心数往往会降低性能。 + +## 步骤 3:收集要转换的 HTML 文件 + +接下来需要准备**batch html to pdf**的文件列表。你可以像示例中那样硬编码数组,或扫描目录。下面是一个灵活的实现,它会读取指定文件夹下的所有 `.html` 文件: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +这种方式意味着你只需把新文件放入文件夹,程序就会自动识别——非常适合夜间批处理作业。 + +## 步骤 4:为每个文件提交转换任务(并行运行) + +现在进入有趣的部分:每个文件都被包装成一个 **Runnable**(或 `Callable`),交给线程池执行。下面的代码在原示例的基础上加入了错误处理和简短日志。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**为什么要在 try‑catch 中包装转换?** 当你**run parallel tasks**时,单个格式错误的 HTML 文件可能导致整个执行器崩溃。通过在本地捕获异常,能够保证批处理的其余部分继续运行。 + +## 步骤 5:关闭执行器并等待任务完成 + +所有任务提交完毕后,需要通知线程池不再接受新任务,然后等待所有工作完成。这可以防止 JVM 提前退出。 + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +如果文件夹非常庞大(成千上万的文件),可以适当延长超时时间或实现进度监控。关键是**优雅地关闭**——这正是生产级代码的标志。 + +## 完整可运行示例 + +将上述所有内容整合后,下面是一个可以直接复制到 `src/main/java` 并运行的自包含类: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**预期输出**(示例): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +打开生成的 `.pdf` 文件,你会看到原始 HTML 的布局被完整保留——包括字体、表格,甚至基本的 JavaScript 动态内容都渲染正确。 + +## 常见问题与边缘情况 + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/conversion-html-to-various-image-formats/_index.md b/html/chinese/java/conversion-html-to-various-image-formats/_index.md index c52c7a2ca..932f2f80f 100644 --- a/html/chinese/java/conversion-html-to-various-image-formats/_index.md +++ b/html/chinese/java/conversion-html-to-various-image-formats/_index.md @@ -101,8 +101,13 @@ weight: 24 ### [Converting HTML to TIFF](./convert-html-to-tiff/) 学习如何使用 Aspose.HTML for Java 轻松将 HTML 转换为 TIFF。一步步指南,帮助您高效处理文档。 -### [将 HTML 转换为 WebP](./convert-html-to-webp-complete-java-guide-with-aspose-html/) -使用 Aspose.HTML for Java 将 HTML 转换为 WebP。完整的 Java 指南,帮助您轻松生成高质量的 WebP 图像。 +### [在 Java 中从 SVG 创建多页 TIFF – 步骤指南](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +使用 Aspose.HTML for Java 将 SVG 转换为多页 TIFF,提供完整的步骤示例。 + +### [将 HTML 转换为 WebP](./convert-html-to-webp-complete-java-guide/) +将 HTML 转换为 WebP + +### [将 HTML 转换为 WebP](./convert-html-to-webp-complete-java-guide/) ## 常见问题解答 diff --git a/html/chinese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/chinese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..897242174 --- /dev/null +++ b/html/chinese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose.HTML 快速将 HTML 转换为 WebP。了解如何将 HTML 保存为 WebP、将 HTML 渲染为 WebP,以及仅需几步即可从 + HTML 生成 WebP。 +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: zh +og_description: 使用 Aspose.HTML 快速将 HTML 转换为 WebP。本教程展示了如何在 Java 中将 HTML 渲染为 WebP 并从 + HTML 生成 WebP。 +og_title: 将HTML转换为WebP – 完整的Java指南 +tags: +- Java +- Aspose.HTML +- Image Conversion +title: 将HTML转换为WebP – 完整Java指南 +url: /zh/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 将 HTML 转换为 WebP – 完整 Java 指南 + +是否曾经需要**将 HTML 转换为 WebP**,却不确定哪个库能够轻松完成?你并不孤单。许多开发者在尝试为动态页面生成轻量级图片时都会遇到这个难题。好消息是:使用 Aspose.HTML for Java,你只需一次方法调用即可*将 HTML 保存为 WebP*,整个过程顺畅如黄油。 + +在本教程中,我们将逐步讲解你需要了解的一切:从设置 Aspose.HTML 依赖、调整压缩设置,到最终将 HTML 文档渲染为可在网页上使用的 WebP 文件。完成后,你将能够**将 HTML 渲染为 WebP**、**从 HTML 生成 WebP**,并了解每个配置选项背后的“原因”。无需外部脚本、无需命令行技巧——只需干净的 Java 代码。 + +## 前置条件 + +在开始之前,请确保你具备以下条件: + +- 已安装 Java 8 或更高版本(库支持 JDK 8+)。 +- 有 Maven 或 Gradle 用于依赖管理(我们将展示 Maven 示例)。 +- 一个你想转换为 WebP 图像的简单 HTML 文件(`input.html`)。 +- 任选的 IDE 或文本编辑器——IntelliJ IDEA 表现优秀,其他也可。 + +准备好了吗?很好,让我们开始吧。 + +## 步骤 1:将 Aspose.HTML 添加到项目中 + +首先,需要在类路径上加入 Aspose.HTML 库。如果你使用 Maven,请将以下内容放入 `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle 的写法如下: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +为什么这一步至关重要?没有该 JAR,`HTMLDocument`、`Converter` 或 `WebpConversionOptions` 类都不存在,编译器会抛出 `ClassNotFoundException`。添加依赖还会自动拉取用于 WebP 编码的本地二进制文件,这样你就不必自行寻找外部 DLL 或 `.so` 文件。 + +> **专业提示:** 保持依赖最新。新版 Aspose 通常会改进 WebP 压缩算法并添加对最新 HTML5 特性的支持。 + +## 步骤 2:加载源 HTML 文档 + +库准备就绪后,就可以加载需要转换的 HTML。`HTMLDocument` 类会解析文件并构建 DOM,随后转换器会基于此渲染。 + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +请注意注释“Load the source HTML document”——这提醒你可以在转换前注入 CSS 或 JavaScript,以便页面依赖动态样式。如果跳过此步骤,转换器将没有内容可渲染,结果会得到一张空白图像。 + +## 步骤 3:配置 WebP 转换选项 + +Aspose.HTML 为输出提供细粒度控制。对于大多数情况,**有损** WebP 并将质量设置为约 85,能够在视觉保真度和文件大小之间取得良好平衡。 + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +为什么选择有损?WebP 的有损模式使用预测编码,文件大小相比 PNG 可缩小 30‑50 %,同时保留大部分视觉细节。如果你需要像素级完美(例如徽标),可以将 `CompressionMode` 切换为 `Lossless` 并将 `quality` 提升到 100。 + +## 步骤 4:转换并保存 WebP 图像 + +准备好文档和选项后,转换只需一行代码。静态的 `Converter.convertHTML` 方法完成所有繁重工作:将 DOM 渲染到位图、编码为 WebP 并写入磁盘。 + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +就这么简单!程序执行完毕后,你会在源 HTML 同目录下看到 `output.webp`。现在可以直接从 Web 服务器提供它,嵌入 `` 元素,或在任何支持 WebP 的场景中使用。 + +## 步骤 5:验证结果(可选但推荐) + +最好再次确认转换成功且图像符合预期。你可以在 Chrome、Firefox 或任何支持该格式的图片查看器中打开 WebP 文件。若想快速进行程序化检查,可以读取文件大小和尺寸: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +如果文件异常大或尺寸不对,请回到**步骤 3**,调整 `quality` 或源 HTML 的视口设置。记住,WebP 会遵循根元素的 CSS `width`/`height`,缺少 `` 标签可能导致意外结果。 + +## 完整工作示例 + +将所有内容整合在一起,下面是可直接运行的完整 Java 类: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +将此文件保存为 `HtmlToWebp.java`,将 `YOUR_DIRECTORY` 替换为实际文件夹路径,使用 `javac` 编译,随后用 `java HtmlToWebp` 运行。你应当在控制台看到文件大小和尺寸的输出,随后是成功提示信息。 + +![将 HTML 转换为 WebP 示例](/images/convert-html-to-webp.png "从 HTML 生成的 WebP 图像截图 – convert html to webp") + +## 常见问题与边缘情况 + +### 我的 HTML 引用了外部资源(CSS、图片)怎么办? + +Aspose.HTML 会基于 `input.html` 所在位置自动解析相对 URL。只需确保这些资源在文件系统或 Web 服务器上可访问。若需注入自定义基准 URL,可使用接受 `URI` 基准的 `HTMLDocument` 构造函数。 + +### 能否从同一 HTML 生成多个不同视口尺寸的 WebP 图像? + +完全可以。将转换逻辑放入循环,在每次调用前使用 `webpOptions.setWidth()` 与 `setHeight()` 调整尺寸,并为每个输出指定唯一文件名。这在响应式设计中非常实用,可为移动端和桌面端提供不同尺寸的图片。 + +### 如何切换为无损压缩? + +将以下代码: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +替换为: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +无损压缩保证像素级完美,但文件会更大——仅在必要时使用。 + +### 这在 Linux/macOS 上能运行吗? + +可以。Aspose.HTML JAR 包含 Windows、Linux 和 macOS 的本地二进制文件,统一的 Java 代码可在所有平台上运行。只需确保已安装相应的 JRE。 + +## 结论 + +你已经学会了使用 Aspose.HTML for Java **将 HTML 转换为 WebP**,涵盖了从依赖配置到压缩微调以及结果验证的全部步骤。掌握这些后,你可以**将 HTML 保存为 WebP**、**渲染 HTML 为 WebP**,并在动态图片流水线、邮件新闻稿或任何需要轻量视觉内容的场景中即时生成 WebP。 + +接下来可以尝试不同的 `quality` 值,探索 `Lossless` 模式,或将此转换器集成到 Spring Boot REST 接口中,让你的 Web 服务按需返回 WebP 图像。你也可以批量处理文件夹中的 HTML,或结合无头 Chrome 实现 SVG‑to‑WebP 转换。 + +如果你还有关于**如何在其他语言中转换 HTML**的疑问,或需要针对特定边缘情况的帮助,欢迎在下方留言。祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/chinese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..1a8d34606 --- /dev/null +++ b/html/chinese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,165 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose.HTML 在 Java 中将 SVG 创建为多页 TIFF。了解如何将 SVG 转换为 TIFF、在 Java 中加载 + SVG 文档以及创建多页 TIFF 文件。 +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: zh +og_description: 在 Java 中从 SVG 创建多页 TIFF。本教程展示了如何加载 SVG 文档、配置 TIFF 选项以及生成无损的多页 TIFF。 +og_title: 在 Java 中从 SVG 创建多页 TIFF – 完全指南 +tags: +- Java +- Aspose.HTML +- Image Conversion +title: 在 Java 中从 SVG 创建多页 TIFF – 步骤指南 +url: /zh/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 Java 中从 SVG 创建多页 TIFF – 步骤指南 + +是否曾经需要**从 SVG 创建多页 TIFF**却不知从何入手?你并不孤单——许多开发者在需要可打印、无损且跨多页的文档时都会遇到这个难题。在本指南中,我们将逐步演示一个完整、可直接运行的解决方案,展示**如何将 SVG 转换为 TIFF**、在 Java 中加载 SVG 文档,并配置输出,以便使用 LZW 压缩**创建多页 TIFF**文件。 + +我们将涵盖从设置 Aspose.HTML 库到处理大型 SVG 资源等所有细节。教程结束时,你将拥有一个可以直接放入任何项目的单个 Java 类,立即生成多页 TIFF。 + +## 所需环境 + +- **Java Development Kit (JDK) 8+** – 代码使用标准 Java API。 +- **Aspose.HTML for Java**(版本 23.5 或更高)– 唯一的第三方依赖。 +- 一个**示例 SVG 文件**(任意矢量图均可,我们将其命名为 `input.svg`)。 +- 你喜欢的 IDE、文本编辑器或终端。 + +不需要额外的构建工具;示例可使用 `javac` 编译、`java` 运行。如果你更喜欢 Maven 或 Gradle,只需将 Aspose.HTML JAR 添加到项目的 classpath 即可。 + +![Create multipage tiff example](create-multipage-tiff.png){alt="create multipage tiff output"} + +## 第一步 – 加载 SVG 文档 (load svg document java) + +首先需要将 SVG 读取为 `HTMLDocument` 对象。Aspose.HTML 将 SVG 文件视为 HTML 文档,从而提供统一的转换 API。 + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**为什么重要:** 将 SVG 加载为 `HTMLDocument` 可以使用完整的渲染引擎,确保所有样式、字体和嵌入的图像在转换前被正确解释。若跳过此步骤直接将原始字节喂给转换器,常会导致元素缺失或颜色错误。 + +## 第二步 – 配置 TIFF 选项 (how to create multipage tiff) + +接下来创建 `TiffConversionOptions`。该对象控制页面布局、压缩等所有细节。要生成真正的多页输出,需要调用 `setMultipage(true)`,并选择 **LZW** 压缩,因为它是无损且兼容性广。 + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**为什么重要:** 若省略 `setMultipage(true)`,库只会生成单页 TIFF,任何从 SVG 推断出的额外页面(例如 SVG 包含多个 `` 根元素)都会被丢弃。LZW 在保持图像保真度的同时还能让文件大小保持在合理范围,适合归档或打印流水线。 + +## 第三步 – 执行转换 (how to convert svg to tiff) + +现在开始真正的转换工作。静态方法 `Converter.convertSVG` 接收已加载的文档、目标路径以及我们刚才定义的选项。 + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**为什么重要:** 使用 `convertSVG` 的静态调用是触发转换最直接的方式。底层,Aspose.HTML 会以默认 96 dpi 对矢量数据进行光栅化;如果需要更高质量,可通过 `tiffOptions.setResolution(...)` 调整 DPI。 + +## 第四步 – 验证结果 + +转换完成后,最好确认文件是否存在且页数符合预期。可以使用任何支持多页 TIFF 的图像查看器(如 IrfanView、XnView,或 Java 的 `ImageIO`)快速检查。 + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +运行程序: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +你应该会在控制台看到成功提示,打开 `output.tiff` 时会看到每个 SVG 根元素对应一页(如果 SVG 只有一个画布,则只有单页)。 + +## 常见陷阱与专业技巧 + +| 问题 | 产生原因 | 解决办法 | +|-------|----------------|---------------| +| **缺少字体** | SVG 引用了服务器上未安装的系统字体。 | 在 SVG 中嵌入字体,或使用 Aspose.HTML 的 `FontSettings` 提供自定义字体文件夹。 | +| **文件体积过大** | 高分辨率光栅化会导致 TIFF 文件膨胀。 | 通过 `tiffOptions.setResolution(150)` 降低 DPI,或在调试时使用 `Compression.NONE`。 | +| **未生成多页** | SVG 只包含一个 `` 元素。 | 将源文件拆分为多个 SVG,或在转换前将每个逻辑页面包装在单独的 `` 标签中。 | +| **不支持的 SVG 特性** | 某些滤镜或动画未被渲染。 | 简化 SVG,或使用 Inkscape 等工具预处理以扁平化滤镜。 | + +**专业技巧:** 若需要特定的页面顺序,可将 SVG 文件命名为 `page1.svg`、`page2.svg` 等,并在循环中逐个转换,每次使用 `tiffOptions.setMultipage(true)` 将结果追加到同一个 TIFF 中。 + +## 完整可运行示例 + +下面是完整的、可自行复制粘贴到名为 `SvgToMultipageTiff.java` 的文件中的 Java 类。它包含了 import 语句、注释以及面向生产环境的错误处理。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +运行该代码后会生成一个 TIFF, 每个 SVG 根元素都会成为单独的一页——这正是你在需要为打印或归档**创建多页 TIFF**时所期待的效果。 + +## 结论 + +我们已经演示了如何使用 Java 和 Aspose.HTML **从 SVG 创建多页 TIFF**。本教程涵盖了加载 SVG(`load svg document java`)、配置转换选项、执行转换(`how to convert svg to tiff`)以及验证输出。拥有完整源码后,你可以将该方案扩展为批量处理大量 SVG、调整 DPI 设置,或将逻辑集成到更大的文档生成流水线中。 + +准备好迎接下一个挑战了吗?尝试将整个文件夹的 SVG 转换为单个多页 TIFF,实验不同的压缩方案,或通过将 `TiffConversionOptions` 替换为 `PdfConversionOptions` 来生成 PDF。原理相同,你完全可以将此模式扩展到其他格式。 + +有问题或遇到奇怪的 SVG 边缘案例?在下方留言吧,祝编码愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/html5-canvas-rendering/_index.md b/html/chinese/java/html5-canvas-rendering/_index.md index 2ce9fa2b9..d563286d9 100644 --- a/html/chinese/java/html5-canvas-rendering/_index.md +++ b/html/chinese/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ url: /zh/java/html5-canvas-rendering/ 使用 Aspose.HTML for Java 创建和渲染 HTML5 Canvas。逐步了解如何使用这个强大的 Java 库进行绘制、设置样式和导出为 PDF。 ### [使用 Aspose.HTML for Java 掌握 HTML5 Canvas](./html5-canvas/) 了解如何使用 Aspose.HTML for Java 创建 HTML5 Canvas 并将其转换为 PDF。本指南非常适合希望增强其 Web 项目的开发人员。 +### [如何模拟 iPhone – 使用 Aspose.HTML 的完整指南](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +本教程详细介绍如何使用 Aspose.HTML 在 Java 中模拟 iPhone 环境,实现跨平台网页渲染。 + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/chinese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/chinese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..890fa2c06 --- /dev/null +++ b/html/chinese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: 学习如何在 Java 中使用 Aspose.HTML 模拟 iPhone。包括设置自定义用户代理和设置设备像素比以实现准确的移动端渲染的步骤。 +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: zh +og_description: 如何在 Java 中模拟 iPhone?本教程展示了如何使用 Aspose.HTML 设置自定义用户代理和设备像素比,实现像素完美的移动页面。 +og_title: 如何模拟 iPhone – Aspose.HTML 步骤指南 +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: 如何模拟 iPhone – 使用 Aspose.HTML 的完整指南 +url: /zh/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何模拟 iPhone – 使用 Aspose.HTML 的完整指南 + +是否曾想过 **如何模拟 iPhone** 在本地测试网页?也许你在调试响应式布局,而桌面浏览器根本无法满足需求。好消息是,你不需要实体设备——Aspose.HTML 的 `DocumentSandbox` 只需几行 Java 代码,就能模拟 iPhone 的屏幕、User‑Agent 和设备像素比(DPR)。 + +在本教程中,我们将逐步演示如何设置 **自定义 User Agent**、配置 **设备像素比**,并验证一切是否如预期工作。完成后,你将拥有一个可复用的 sandbox,能够像 iPhone 8 一样渲染页面,并且了解每个设置背后的意义。 + +## 你将实现的目标 + +- 创建一个 `Screen` 对象,映射 iPhone 的尺寸和 DPR。 +- 应用 **自定义 User Agent** 字符串,使服务器认为请求来自 iOS 上的 Safari。 +- 构建一个将屏幕和 User‑Agent 绑定在一起的 `DocumentSandbox`。 +- 在 sandbox 中运行 `HTMLDocument`,并在控制台输出中确认配置。 + +无需除 Aspose.HTML 之外的任何外部库,代码可在任意 Java 17+ 环境下运行。 + +--- + +![如何模拟 iPhone 截图](https://example.com/images/iphone-emulation.png "使用 Aspose.HTML sandbox 模拟 iPhone") + +## 如何使用 Aspose.HTML Sandbox 模拟 iPhone + +我们首先需要一个能够反映 iPhone **物理尺寸** *以及* 像素密度的 `Screen`。这正是 **如何准确模拟 iPhone** 的核心。 + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**为什么这很重要:** +- 宽度 = 375 px、高度 = 667 px 是在 Chrome DevTools 中选择 iPhone 8 时看到的 CSS 像素尺寸。 +- 将 DPR 设置为 2 告诉渲染引擎将每个 CSS 像素视为两个物理像素,从而得到清晰的文字和图像——这正是真实设备的表现。 + +> *小贴士:* 如果需要模拟更新的 iPhone(如 iPhone 13),只需将数值改为 390 × 844 并将 DPR = 3。 + +## 设置自定义用户代理 (set custom user agent) + +接下来,我们需要 **设置自定义用户代理**,让服务器返回移动端专用的 HTML/CSS。若不这样做,许多站点仍会认为你使用的是桌面浏览器。 + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**工作原理:** +- `User-Agent` 头是浏览器向服务器自我声明的握手信息。 +- 提供 iOS 16 上 Safari 实际发送的完整字符串,可确保服务器返回移动端优化的资源(如响应式图片、适配脚本等)。 + +如果你需要 **为其他设备设置 User-Agent**,只需将字符串替换为相应的值——无论是 Google Chrome、Firefox,甚至是自定义机器人。 + +## 配置设备像素比 (set device pixel ratio) + +现在我们在 sandbox 中 **设置设备像素比**。这一步直接回答了 “**如何设置 DPR**” 的问题。 + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**解释:** +- `Builder` 模式让你流畅地同时附加屏幕(携带 DPR)和用户代理。 +- 当 sandbox 渲染 `HTMLDocument` 时,它会假装运行在具有该像素密度的设备上。 + +> *为何在意:* 某些 CSS 媒体查询会使用 `device-pixel-ratio`(例如 `@media (-webkit-min-device-pixel-ratio: 2)`)。如果不设置 DPR,这些规则永远不会触发,你也会错过高分辨率资源。 + +## 验证 Sandbox 配置 (how to set user-agent) + +让我们把 sandbox 投入实际使用。下面的代码片段创建一个 `HTMLDocument`,加载页面,并打印确认 sandbox 已激活的消息。 + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**预期的控制台输出** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +如果运行程序后看到上述行,说明你已经成功 **如何模拟 iPhone**,并且 DPR 与 User‑Agent 均已正确设置。打开同一页面于真实浏览器并检查视口尺寸,你会发现它们正好匹配我们设定的 iPhone 参数。 + +## 常见陷阱及正确设置 DPR 的方法 (how to set dpr) + +即使代码写得再正确,也可能遇到以下几个常见问题: + +| 问题 | 原因 | 解决方案 | +|------|------|----------| +| **DPR 仍为 1** | 你在创建 `Screen` 时遗漏了第三个参数(DPR)。 | 始终使用 `new Screen(width, height, dpr)`。 | +| **User‑Agent 被忽略** | sandbox 未与 `HTMLDocument` 关联。 | 将 `documentSandbox` 作为第二个参数传入 `HTMLDocument` 构造函数。 | +| **尺寸不正确** | 使用了设备像素而非 CSS 像素。 | 记住:宽度/高度是 **CSS 像素**,而非硬件像素。 | +| **服务器仍返回桌面 CSS** | 某些站点通过 JavaScript 检测设备,而不仅仅是 Header。 | 如有必要,考虑在页面中注入 viewport meta 标签。 | + +牢记这些要点,你几乎不会再遇到模拟失效的情况。 + +## 扩展 Sandbox – 后续步骤 + +既然已经掌握了 **如何设置自定义用户代理** 和 **如何设置 DPR**,你可以进一步实验: + +- **更改屏幕尺寸**,以模拟平板或更大的手机。 +- **切换用户代理**,测试 Android 上的 Chrome(`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`)。 +- **通过 sandbox 的 `setHeaders` 方法添加 Cookie 或其他 Header**,实现已登录状态的测试。 +- **使用 `HTMLDocument.renderToFile("output.png")` 捕获截图**,自动比较视觉差异。 + +这些扩展让你无需离开 IDE,就能构建功能完整的测试平台。 + +--- + +## 结论 + +本文展示了 **如何使用 Aspose.HTML 的 `DocumentSandbox` 模拟 iPhone**,并详细说明了 **如何设置自定义用户代理**、**如何设置设备像素比**,以及 “**如何设置 user-agent**” 与 “**如何设置 dpr**” 之间的细微差别。完整、可运行的示例将所有代码集中在一起,方便你复制、修改并立即开始移动端布局测试。 + +快去尝试吧——更改屏幕尺寸、切换不同的用户代理,观察页面的响应。当你熟练掌握这些设置后,调试响应式设计将轻而易举,省下无数在真实设备上排查 bug 的时间。 + +有问题或想分享自己的实现方式?欢迎在下方留言,祝你模拟愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/advanced-usage/_index.md b/html/czech/java/advanced-usage/_index.md index 97cd9a1bb..97ed70ebd 100644 --- a/html/czech/java/advanced-usage/_index.md +++ b/html/czech/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Naučte se upravit velikost PDF stránky s Aspose.HTML pro Java. Vytvářejte vy Naučte se upravit velikost XPS stránky s Aspose.HTML pro Java. Jednoduše kontrolujte výstupní rozměry vašich XPS dokumentů. ### [Jak spustit JavaScript v Javě – Kompletní průvodce](./how-to-run-javascript-in-java-complete-guide/) Naučte se, jak spouštět JavaScript kód v Javě pomocí Aspose.HTML, včetně integrace, nastavení a praktických příkladů. +### [Příklad top‑level await – Použití await delay v JavaScriptu](./top-level-await-example-using-await-delay-in-javascript/) +Naučte se, jak použít top‑level await a funkci delay v JavaScriptu pro asynchronní operace. --- diff --git a/html/czech/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/czech/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..3e35fd8d5 --- /dev/null +++ b/html/czech/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Příklad top‑level await ukazující await delay v JavaScriptu, třídu pro + inkrementaci čítače a veřejná pole třídy v JavaScriptu v živé demonstraci. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: cs +og_description: Příklad top‑level await, který ukazuje await delay v JavaScriptu, + třídu pro inkrementaci čítače a veřejná pole třídy v JavaScriptu v stručném tutoriálu. +og_title: příklad top‑level await – Použití await delay v JavaScriptu +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Příklad top-level await – Použití await delay v JavaScriptu +url: /cs/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await example – Použití await delay v JavaScriptu + +Už jste se někdy zamýšleli, jak pozastavit provádění modulu, aniž byste museli vše zabalit do async IIFE? Přesně to vám umožní **top level await example**. V tomto tutoriálu projdeme malou webovou stránku, která používá `await delay javascript` k odložení práce, a poté vytvoří `increment counter class`, která využívá **public class fields javascript**. Na konci budete mít kompletní, připravený k zkopírování úryvek, který běží v každém moderním prohlížeči. + +Probereme vše od definice třídy s veřejným polem až po zapojení jednoduchého helperu pro zpoždění založeného na promise. Žádné externí knihovny, žádný build krok — jen čisté HTML, ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Očekávaný výstup do konzole + +``` +Counter class initialized +Final count: 1 +``` + +Pokud stránku otevřete v DevTools, měli byste vidět zprávu ze statického bloku **před** dokončením zpoždění, což potvrzuje, že třída byla vyhodnocena jako první. + +## Krok 5 – Proč použít veřejná pole třídy místo konstruktoru? + +Možná se ptáte, proč jsme nepsali: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Oba přístupy fungují, ale **public class fields javascript** vám poskytují čistší, deklarativnější syntaxi. Pole je definováno jednou, ne uvnitř každého volání konstruktoru, což může být přehlednější, když třída roste. Navíc statické bloky nelze umístit do konstruktoru, takže oddělení inicializační logiky je přirozenější. + +## Krok 6 – Přizpůsobení příkladu pro reálné aplikace + +V produkci často potřebujete více než jeden čítač. Zde je několik rychlých nápadů: + +- **Více čítačů:** Uložte je do `Map` s klíčem identifikátoru. +- **Persistovaný stav:** Nahraďte `console.log` zápisy do `localStorage`. +- **Async inicializace:** Použijte statický blok k načtení konfigurace ze serveru před vytvořením jakýchkoli instancí. + +Všechny tyto vzory stále těží z top‑level await, protože můžete načíst data jednou při načtení modulu a zajistit, že jsou připravena pro každého spotřebitele. + +## Často kladené otázky + +**Q: Blokuje top‑level await jiné moduly?** +A: Ne. Každý modul běží nezávisle. Pouze modul, který obsahuje await, je pozastaven; ostatní moduly se nadále načítají paralelně. + +**Q: Co když promise z zpoždění odmítne?** +A: Nezachycené odmítnutí přeruší vyhodnocení modulu a objeví se jako chyba v konzoli. Zabalte await do `try…catch`, pokud potřebujete elegantní fallback. + +**Q: Je klíčové slovo `static` povinné?** +A: Ne pro samotný čítač, ale statický blok je užitečný způsob, jak demonstrovat, že kód běží *jednou* při načtení — skvělé pro logování nebo detekci funkcí. + +## Závěr + +Právě jste vytvořili **top level await example**, který představuje `await delay javascript`, **increment counter class** a sílu **public class fields javascript**. Kompletní, spustitelný úryvek najdete výše a výstup do konzole dokazuje, že statický blok se spustí před kódem se zpožděním. + +Odtud můžete experimentovat s složitějšími async toky, nahradit zpoždění skutečným API voláním nebo rozšířit třídu o další metody. Pamatujte, moderní JavaScript vám umožňuje zacházet s moduly jako s prvotřídními async entitami — žádné další obaly nejsou potřeba. + +Šťastné kódování a klidně sdílejte své variace v komentářích. Pokud se vám tento průvodce hodil, pošlete ho kolegovi, který se stále potýká s async vzory! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/conversion-html-to-other-formats/_index.md b/html/czech/java/conversion-html-to-other-formats/_index.md index e722ab472..1f350edcb 100644 --- a/html/czech/java/conversion-html-to-other-formats/_index.md +++ b/html/czech/java/conversion-html-to-other-formats/_index.md @@ -90,6 +90,8 @@ Jednoduše převádějte HTML do MHTML pomocí Aspose.HTML for Java. Postupujte Naučte se snadno převádět HTML do XPS pomocí Aspose.HTML for Java. Vytvářejte multiplatformní dokumenty s lehkostí. ### [Převod Markdown do HTML](./convert-markdown-to-html/) Převádějte Markdown do HTML v Javě plynule s Aspose.HTML for Java. Postupujte podle našeho krok‑za‑krokem průvodce a zjednodušte své potřeby konverze dokumentů. +### [Převod HTML do Markdownu v Javě – Zachovat původní formátování](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Naučte se převést HTML na Markdown v Javě a zachovat původní strukturu a formátování dokumentu. ### [Převod SVG do obrázku](./convert-svg-to-image/) Naučte se převádět SVG na obrázky v Javě s Aspose.HTML. Kompletní průvodce pro výstup vysoké kvality. ### [Převod SVG do PDF](./convert-svg-to-pdf/) @@ -98,6 +100,10 @@ Převádějte SVG do PDF v Javě s Aspose.HTML. Bezproblémové řešení pro vy Naučte se převádět SVG do XPS s Aspose.HTML for Java. Jednoduchý, krok‑za‑krokem průvodce pro plynulé konverze. ### [Převod HTML do PDF v Javě – krok‑za‑krokem s nastavením velikosti stránky](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Naučte se převést HTML do PDF v Javě s podrobným nastavením velikosti stránky a dalšími možnostmi. +### [Vytvoření PDF vlastní velikosti – Převod HTML do PDF pomocí Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Naučte se nastavit vlastní velikost stránky při převodu HTML do PDF pomocí Aspose.HTML. +### [Vytvoření PDF z HTML v Javě – Průvodce paralelní dávkovou konverzí](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Naučte se, jak pomocí Aspose.HTML provádět paralelní dávkovou konverzi HTML do PDF v Javě pro zvýšení výkonu. ## Často kladené otázky diff --git a/html/czech/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/czech/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..375e83046 --- /dev/null +++ b/html/czech/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Převést HTML na Markdown a vygenerovat soubor Markdown při zachování + původního formátování pomocí konverze Aspose HTML v Javě. Naučte se krok za krokem. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: cs +og_description: Rychle převádějte HTML na markdown, generujte soubor markdown a zachovejte + původní formátování pomocí Aspose HTML konverze pro Javu. +og_title: Převod HTML na Markdown v Javě – Zachovat formátování +tags: +- Aspose +- Java +- Markdown +title: Převod HTML na Markdown v Javě – Zachovat původní formátování +url: /cs/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Převod HTML na Markdown v Javě – Zachování původního formátování + +Už jste někdy potřebovali **převést HTML na markdown**, ale obávali jste se, že ztratíte odsazení, tabulky nebo inline značky? Nejste v tom sami. Mnoho vývojářů narazí na tento problém, když se snaží přesunout obsah z webové stránky do čistého, verzovacímu systému přátelského formátu. Dobrá zpráva? S několika řádky Javy a Aspose HTML můžete **vytvořit markdown soubor**, který vypadá přesně jako zdroj, včetně mezer. + +V tomto průvodci projdeme celý proces: načtení složitého HTML souboru, nastavení konverze tak, aby **zachovávala původní formátování**, a nakonec zápis výstupu do `preserved.md`. Na konci budete mít připravený úryvek k spuštění, pochopíte *proč* každé nastavení má význam, a budete vědět, jak přizpůsobit kód pro okrajové případy jako vlastní CSS nebo vložené skripty. + +## Co budete potřebovat + +- Java 17 (nebo jakýkoli aktuální JDK) – API funguje s Java 8+, ale novější verze poskytují lepší výkon. +- Knihovna Aspose HTML pro Java (verze 23.11 nebo novější). Můžete ji získat z Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Ukázkový HTML soubor (`complex.html`), který obsahuje nadpisy, tabulky, bloky kódu a možná i nějaké inline `` styly. +- Trochu trpělivosti a ochoty experimentovat. + +To je vše. Žádné externí nástroje, žádné hacky v příkazové řádce – jen čistý Java kód. + +## Krok 1: Načtení zdrojového HTML dokumentu + +Prvním krokem je vytvořit instanci `HTMLDocument`, která ukazuje na váš zdrojový soubor. Aspose HTML zachází se souborem jako s DOM, což znamená, že jej můžete před konverzí prohlížet nebo upravovat, pokud to bude potřeba. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Proč je to důležité:** Načtení dokumentu tímto způsobem zajišťuje, že všechny propojené zdroje (stylesheety, obrázky) jsou řešeny relativně k umístění souboru. Pokud tento krok přeskočíte a předáte surový řetězec, můžete ztratit externí CSS, které ovlivňuje odsazení – přesně to, co chcete **zachovat původní formátování**. + +## Krok 2: Nastavení možností konverze do Markdown + +Aspose HTML poskytuje třídu `MarkdownConversionOptions`. Klíčovou vlastností pro nás je `setPreserveOriginalFormatting(true)`. Když je povolena, konvertor zachovává zalomení řádků, odsazení a dokonce i surové HTML úryvky, které markdown nemůže nativně reprezentovat. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Tip:** Pokud později zjistíte, že některé inline styly jsou odstraňovány, můžete také zavolat `markdownOptions.setIncludeHtml(true)`, aby se surové HTML bloky vynutily do výstupu markdown. + +## Krok 3: Provedení konverze + +Nyní předáme `HTMLDocument`, cílovou cestu k souboru a naše možnosti statické metodě `Converter.convertHTML`. Metoda provede veškerou těžkou práci na pozadí. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Po dokončení volání najdete `preserved.md` vedle vašeho zdrojového souboru. Otevřete jej v libovolném editoru – všimněte si, že původní zalomení řádků a zarovnání tabulky jsou zachovány. + +## Krok 4: Ověření výsledku (volitelné, ale doporučené) + +Rychlá kontrola vám ušetří pozdější jemné chyby. Můžete soubor načíst zpět do Javy a vytisknout prvních několik řádků, nebo jej jednoduše otevřít ve VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Měli byste vidět něco jako: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Tag `` je stále přítomen, protože nativní syntaxe tabulek v markdownu nedokázala zachytit přesné stylování – díky `preserve original formatting`. + +## Krok 5: Zabalit vše dohromady – kompletní spustitelný příklad + +Níže je kompletní, připravená ke spuštění třída. Nahraďte `YOUR_DIRECTORY` skutečnou cestou na vašem počítači. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Spusťte program pomocí `mvn exec:java` nebo ve vašem oblíbeném IDE a získáte **vygenerovaný markdown soubor**, který odráží původní rozložení HTML. + +## Časté otázky a okrajové případy + +### Funguje to s externími CSS soubory? + +Ano. Dokud jsou CSS soubory dostupné pomocí relativních cest, Aspose HTML je načte automaticky. Pokud získáváte HTML ze vzdálené URL, možná budete muset nastavit vlastní objekt `ResourceLoadingOptions`, aby bylo povoleno síťové připojení. + +### Co když nechci žádné surové HTML v markdownu? + +Jednoduše přepněte možnost: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Konvertor se pak pokusí vše přeložit do čisté markdown syntaxe, což může vést ke ztrátě některých detailů rozložení. + +### Můžu převést řetězec místo souboru? + +Rozhodně. Použijte konstruktor, který přijímá `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Pak předáte `doc` metodě `Converter.convertHTML` jako dříve. + +### Jak se to liší od ostatních knihoven jako Flexmark nebo pandoc? + +Většina open‑source nástrojů zachází s HTML jako s prostým textem a agresivně odstraňuje mezery. Příznak `preserveOriginalFormatting` v Aspose HTML je **proprietární funkce**, která respektuje mezery, zalomení řádků a dokonce zachovává nepodporované značky jako surové HTML bloky. Proto tento tutoriál zdůrazňuje **aspose html conversion** pro Java vývojáře, kteří potřebují naprostou věrnost. + +## Tipy pro produkční použití + +- **Dávkové zpracování:** Zabalte logiku konverze do smyčky, aby bylo možné zpracovat více HTML souborů najednou. +- **Zpracování chyb:** Zachyťte `IOException` a `com.aspose.html.exceptions.AssertionFailedException`, abyste odhalili chybějící zdroje. +- **Výkon:** Znovu použijte jedinou instanci `HTMLDocument` při konverzi fragmentů velké stránky; knihovna kešuje parsované CSS. + +## Závěr + +Právě jsme vám ukázali, jak **převést HTML na markdown** v Javě a zároveň zajistit, aby výstup **zachovával původní formátování**. Krátký, samostatný úryvek demonstruje celý workflow – od načtení HTML dokumentu po nastavení `MarkdownConversionOptions`, provedení konverze a ověření výsledku. S robustním API Aspose HTML můžete nyní programově **vygenerovat markdown soubor**, ať už budujete generátor statických stránek, pipeline dokumentace nebo nástroj pro migraci obsahu. + +Dále můžete zkoumat: + +- Použití **html to markdown java** pro hromadné migrace napříč webem. +- Ladění možností konverze pro výstup GitHub‑flavored markdown tabulek. +- Kombinování tohoto přístupu s CI/CD krokem, který automaticky aktualizuje vaši dokumentaci při každé změně zdrojového HTML. + +Neváhejte experimentovat a zanechte komentář, pokud narazíte na problémy. Šťastné kódování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/czech/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..06deabd06 --- /dev/null +++ b/html/czech/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,195 @@ +--- +category: general +date: 2026-03-26 +description: Vytvořte PDF vlastní velikosti z HTML pomocí Aspose.HTML pro Java. Naučte + se, jak převést HTML do PDF a nastavit velikost stránky PDF během několika kroků. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: cs +og_description: Vytvořte PDF vlastní velikosti z HTML pomocí Aspose. Tento průvodce + vám ukáže, jak převést HTML do PDF, změnit velikost stránky PDF a nastavit velikost + stránky PDF snadno. +og_title: Vytvořte PDF vlastní velikosti – rychlý průvodce převodem HTML do PDF +tags: +- aspose +- java +- pdf +- html +title: Vytvořte PDF vlastní velikosti – Převod HTML do PDF pomocí Aspose +url: /cs/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření PDF vlastní velikosti – převod HTML na PDF pomocí Aspose + +Už jste někdy potřebovali **vytvořit PDF vlastní velikosti** z HTML souboru? V tomto tutoriálu vám ukážeme, jak **převést HTML na PDF** a nastavit velikost stránky PDF pomocí Aspose.HTML pro Java. + +Pokud vytváříte faktury, zprávy nebo e‑knihy, získání přesných rozměrů stránky je důležité – jinak bude váš rozvrh nesprávně vycentrovaný nebo oříznutý. + +Provedeme vás každým krokem, od načtení zdrojového HTML po úpravu okrajů, a skončíme připraveným PDF. Žádné vágní odkazy, jen kompletní, spustitelný příklad, který můžete dnes zkopírovat a vložit. + +## Co budete potřebovat + +- **Java 17** (nebo jakýkoli aktuální JDK). +- **Aspose.HTML for Java** JAR soubory – můžete získat nejnovější verzi z Maven repozitáře nebo webu Aspose. +- Jednoduchý soubor `input.html` umístěný ve složce, kterou ovládáte. +- IDE nebo textový editor dle vašeho výběru; obvykle programuji v IntelliJ IDEA, ale Eclipse také dobře funguje. + +Mít tyto předpoklady znamená, že se během práce nesetkáte s chybami „class not found“. + +Nyní se ponořme. + +![Create PDF custom size example](/images/create-pdf-custom-size.png "Screenshot showing a PDF generated with custom page size and margins – create pdf custom size") + +## Vytvoření PDF vlastní velikosti – Hlavní kroky + +Níže je celý Java program, který získáte. Klidně jej zkopírujte do souboru s názvem `ConvertHtmlToPdfCustomPage.java` a spusťte po přidání Aspose závislostí do vašeho projektu. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Krok 1 – Převod HTML na PDF: Načtení dokumentu + +První věc, kterou uděláme, je **načíst HTML**, které chceme převést na PDF. +`HTMLDocument` načte soubor, vyřeší relativní odkazy a vytvoří DOM, který Aspose může vykreslit. + +> **Proč je to důležité:** Pokud HTML odkazuje na CSS nebo obrázky, Aspose je načte relativně k cestě souboru. Použití absolutní cesty (`YOUR_DIRECTORY/input.html`) zabraňuje překvapením typu „file not found“. + +### Krok 2 – Změna velikosti stránky PDF: Konfigurace možností + +Zde vytvoříme objekt `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` říká Aspose použít standardní rozměry A4 (210 × 297 mm). +- `setPageOrientation(...)` otočí stránku, pokud potřebujete orientaci na šířku. +- `setMargins(new Margin(20, 20, 20, 20))` nastaví okraj 20 bodů na každé straně. + +Můžete nahradit `PageSize.A4` za `PageSize.LETTER` nebo dokonce **vlastní velikost** předáním objektu `SizeF`, např.: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Tip:** Jeden bod odpovídá 1/72 palce. Pokud počítáte v milimetrech, vynásobte 2.83465 pro získání bodů. + +### Krok 3 – Generování PDF z HTML: Spuštění konverze + +`Converter.convertHTML` provádí těžkou práci. Přijímá načtený `HTMLDocument`, výstupní cestu a možnosti, které jsme právě nakonfigurovali. + +Pokud chcete **nastavit velikost stránky PDF** dynamicky na základě obsahu, můžete před tímto krokem vypočítat požadované rozměry a podle toho upravit `pdfOptions`. + +### Krok 4 – Ověření výsledku + +Řádek `System.out.println` je volitelný, ale poskytuje rychlou zpětnou vazbu při spuštění programu z konzole. Po dokončení otevřete `custom_page.pdf` – měli byste vidět PDF formátu A4 na výšku s jednotnými okraji 20 bodů, přesně tak, jak jsme zadali. + +## Převod HTML na PDF – Běžné varianty + +### Použití streamu místo cesty k souboru + +Někdy nemáte fyzický soubor; HTML může pocházet z databáze nebo API. V takovém případě zabalte řetězec do `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Druhý argument je základní URL pro řešení relativních zdrojů. + +### Změna orientace stránky + +Pokud je vaše zpráva široká, přepněte na orientaci na šířku: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Jemné doladění okrajů + +Okraje přijímají hodnoty s plovoucí desetinnou čárkou, takže můžete nastavit 0,5 pt pro velmi tenký okraj: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Zpracování velkých HTML souborů + +U velkých dokumentů zvažte povolení **paměťově úsporného streamování**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Tím se Aspose řekne, aby zapisoval mezilehlá data do dočasných souborů místo toho, aby vše drželo v RAM. + +## Nastavení velikosti stránky PDF – Okrajové případy a úskalí + +- **Missing Fonts:** Pokud vaše HTML používá vlastní font, který není nainstalován na serveru, PDF se vrátí k výchozímu. Vložte font pomocí `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Image Scaling:** Vysoce rozlišené obrázky mohou PDF nafouknout. Použijte `pdfOptions.setImageResolution(150);` pro zmenšení při zachování kvality. +- **CSS Compatibility:** Ne všechny CSS vlastnosti jsou plně podporovány. Držte se standardních technik rozvržení (flexbox funguje, ale grid může mít nedostatky). +- **Path Permissions:** Ujistěte se, že proces má právo zápisu do `YOUR_DIRECTORY`. Jinak bude vyhozena `IOException`. + +## Očekávaný výstup + +Spuštěním programu se vytvoří PDF, které vypadá takto (konceptuální ilustrace): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Velikost stránky: **A4** (210 × 297 mm). +- Orientace: **Portrait**. +- Okraje: **20 pt** na každé straně. + +Otevřete soubor v libovolném PDF prohlížeči (Adobe Reader, Chrome atd.) pro ověření. + +## Závěr + +Nyní víte, jak **vytvořit PDF vlastní velikosti** ze zdroje HTML pomocí Aspose.HTML pro Java. Tutoriál pokryl celý proces: **převod HTML na PDF**, **změnu velikosti stránky PDF**, **nastavení velikosti stránky PDF** a **generování PDF z HTML** s vlastními okraji. + +Klidně experimentujte – vyměňte `PageSize.LETTER` za právnický formát, upravte okraje nebo vložte vlastní fonty. Dále můžete zkoumat **přidávání vodoznaků**, **šifrování PDF** nebo **hromadné zpracování více HTML souborů**. Všechny tyto témata staví na stejných základních konceptech, které jsme právě probrali. + +Máte otázku ohledně konkrétního okrajového případu? Zanechte komentář níže a já vám pomohu s řešením. Šťastné kódování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/czech/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..da6257c36 --- /dev/null +++ b/html/czech/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Rychle vytvořte PDF z HTML pomocí pevného poolu vláken. Naučte se hromadně + převádět HTML na PDF a spouštět paralelní úlohy v Javě. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: cs +og_description: Vytvořte PDF z HTML rychle pomocí pevného poolu vláken. Naučte se, + jak dávkovat HTML do PDF a spouštět paralelní úlohy v Javě. +og_title: Vytvořte PDF z HTML v Javě – Průvodce paralelní dávkovou konverzí +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Vytvořte PDF z HTML v Javě – Průvodce paralelním hromadným převodem +url: /cs/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření PDF z HTML v Javě – Průvodce paralelní dávkovou konverzí + +Už jste někdy potřebovali **vytvořit PDF z HTML**, ale uvízli jste při sledování, jak jednovláknová konverze táhne věčnost? Nejste v tom sami. V mnoha reálných projektech dostáváme desítky HTML zpráv, které musí být do konce dne převedeny na PDF, a dělat to po jednom prostě není praktické. + +Proto vám tento tutoriál ukáže **jak převést HTML na PDF** pomocí **pevného thread poolu**, což vám umožní **dávkově převádět HTML na PDF** a **spouštět paralelní úlohy** bez potíží. Na konci budete mít kompletní, připravený program, který během zlomku času převádí složku HTML souborů na PDF. + +## Co se naučíte + +V následujících sekcích pokryjeme vše, co potřebujete vědět: + +* Přesná Maven/Gradle závislost pro Aspose.HTML (knihovna, která dělá těžkou práci). +* Proč je **pevný thread pool** ideální pro CPU‑intenzivní konverzi. +* Jak vypsat zdrojové soubory, aby proces mohl škálovat na stovky dokumentů. +* Přesný kód, který vložíte do svého IDE – žádné chybějící importy, žádné „TODO“ komentáře. +* Tipy pro zpracování chyb, ladění velikosti poolu a ověřování výstupu. + +Předchozí znalost Aspose.HTML není vyžadována, stačí základní nastavení Javy a chuť experimentovat. Pojďme na to. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Image alt text: create pdf from html – parallel conversion diagram* + +## Krok 1: Připravte svůj projekt a přidejte Aspose.HTML + +Nejprve – váš projekt potřebuje knihovnu Aspose.HTML. Pokud používáte Maven, vložte toto do svého `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Pro Gradle stačí: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Proč Aspose.HTML? Je to komerční knihovna, ale nabízí **convert html to pdf** API, které zajišťuje CSS, JavaScript a složité rozvržení přímo z krabice. Pokud dáváte přednost open‑source alternativě, můžete později vyměnit volání `Converter.convertHTML`, ale logika vláken zůstane stejná. + +> **Pro tip:** Udržujte číslo verze v souladu s oficiálními poznámkami k vydání; novější verze často zlepšují rychlost renderování, což se hodí, když spouštíte mnoho úloh paralelně. + +## Krok 2: Vytvořte pevný thread pool pro paralelní konverzi + +Když máte dávku souborů, nechcete vytvářet neomezený počet vláken – operační systém začne thrashovat. **Pevný thread pool** vám poskytne předvídatelný počet souběžných úloh a zároveň udrží spotřebu paměti pod kontrolou. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Proč čtyři? Na typickém 8‑jádrovém stroji může polovina jader zůstat volná pro I/O a OS. Můžete experimentovat: `Runtime.getRuntime().availableProcessors()` vrací počet jader a obecné pravidlo je `cores / 2`. Pamatujte, že každá konverze je CPU‑intenzivní, takže více vláken než jader obvykle snižuje výkon. + +## Krok 3: Shromážděte HTML soubory, které chcete převést + +Další část skládačky je **batch html to pdf** seznam. Můžete zakódovat pole (jako v příkladu) nebo prohledat adresář. Zde je flexibilní verze, která načte každý `.html` soubor ze složky: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Tento přístup znamená, že můžete do složky přidávat nové soubory a program je automaticky zachytí – ideální pro noční dávkovou úlohu. + +## Krok 4: Odeslat úlohu konverze pro každý soubor (spustit paralelní úlohy) + +Teď ta zábavná část: každý soubor se stane **Runnable** (nebo `Callable`), který pool vykoná. Kód níže odráží původní příklad, ale přidává zpracování chyb a malou logovací zprávu. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Proč zabalit konverzi do try‑catch?** Když **run parallel tasks**, jediný špatně formátovaný HTML soubor by jinak mohl zničit celý executor. Zachycením výjimek lokálně zajistíme, že zbytek dávky bude pokračovat. + +## Krok 5: Ukončete executor a počkejte na dokončení + +Po odeslání všech úloh musíte pool informovat, aby nepřijímal nové úkoly, a pak počkat, až vše skončí. Tím zajistíte, že JVM neopustí proces předčasně. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Pokud máte obrovskou složku (tisíce souborů), můžete zvýšit timeout nebo implementovat monitor postupu. Klíčové je **graciézně ukončit** – to je znak kódu připraveného do produkce. + +## Kompletní funkční příklad + +Sestavením všeho dohromady získáte samostatnou třídu, kterou můžete zkopírovat do `src/main/java` a spustit: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Očekávaný výstup** (ukázka): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Pokud otevřete vygenerované soubory `.pdf`, uvidíte zachovanou původní HTML strukturu – písma, tabulky a dokonce i základní JavaScript‑řízený obsah je správně vykreslen. + +## Často kladené otázky a okrajové případy + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/conversion-html-to-various-image-formats/_index.md b/html/czech/java/conversion-html-to-various-image-formats/_index.md index c7993f5b3..1e3872a2e 100644 --- a/html/czech/java/conversion-html-to-various-image-formats/_index.md +++ b/html/czech/java/conversion-html-to-various-image-formats/_index.md @@ -94,6 +94,10 @@ Naučte se převést HTML na PNG obrázky v Javě pomocí Aspose.HTML. Komplexn Naučte se snadno převést HTML do TIFF pomocí Aspose.HTML for Java. Krok‑za‑krokem průvodce pro efektivní zpracování dokumentů. ### [Převod HTML do WebP](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Naučte se převést HTML do formátu WebP v Javě pomocí Aspose.HTML. Kompletní krok‑za‑krokem průvodce. +### [Převod HTML do WebP – Kompletní průvodce pro Javu](./convert-html-to-webp-complete-java-guide/) +Kompletní návod, jak převést HTML do WebP v Javě pomocí Aspose.HTML, krok za krokem. +### [Vytvoření vícestránkového TIFF z SVG v Javě – krok za krokem](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Naučte se, jak pomocí Aspose.HTML for Java převést SVG do vícestránkového TIFF souboru pomocí podrobného průvodce. ## Často kladené otázky diff --git a/html/czech/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/czech/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..f255505dd --- /dev/null +++ b/html/czech/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-26 +description: Převádějte HTML na WebP rychle s Aspose.HTML. Naučte se, jak uložit HTML + jako WebP, vykreslit HTML jako WebP a generovat WebP z HTML během několika kroků. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: cs +og_description: Převádějte HTML na WebP rychle pomocí Aspose.HTML. Tento tutoriál + ukazuje, jak vykreslit HTML jako WebP a generovat WebP z HTML v Javě. +og_title: Převod HTML na WebP – Kompletní Java průvodce +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Převod HTML na WebP – Kompletní průvodce v Javě +url: /cs/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Převod HTML na WebP – Kompletní průvodce pro Javu + +Už jste někdy potřebovali **převést HTML na WebP**, ale nebyli jste si jisti, která knihovna to zvládne bez problémů? Nejste v tom sami. Mnoho vývojářů narazí na tento problém, když se snaží naservírovat lehké obrázky generované z dynamických stránek. Dobrá zpráva? S Aspose.HTML pro Javu můžete *uložit HTML jako WebP* jedním voláním metody a celý proces je hladký jako máslo. + +V tomto tutoriálu projdeme vše, co potřebujete vědět: od nastavení závislosti Aspose.HTML, přes ladění nastavení komprese, až po vykreslení HTML dokumentu jako souboru WebP, který můžete nasadit na web. Na konci budete schopni **vykreslit HTML jako WebP**, **generovat WebP z HTML** a pochopit „proč“ za každou konfigurační volbou. Žádné externí skripty, žádné příkazy v terminálu – jen čistý Java kód. + +## Požadavky + +- Java 8 nebo novější nainstalovaná (knihovna podporuje JDK 8+). +- Maven nebo Gradle pro správu závislostí (ukážeme Maven snippet). +- Jednoduchý HTML soubor (`input.html`), který chcete převést na obrázek WebP. +- IDE nebo textový editor podle vašho výběru – IntelliJ IDEA funguje skvěle, ale stačí jakýkoli. + +Máte vše připravené? Skvělé, pojďme na to. + +## Krok 1: Přidejte Aspose.HTML do svého projektu + +Nejprve potřebujete knihovnu Aspose.HTML na classpath. Pokud používáte Maven, vložte toto do svého `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Pro Gradle to vypadá takto: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Proč je tento krok tak důležitý? Bez JAR souboru neexistují třídy `HTMLDocument`, `Converter` ani `WebpConversionOptions` a kompilátor vyhodí `ClassNotFoundException`. Přidání závislosti také stáhne nativní binárky potřebné pro kódování WebP, takže nemusíte hledat externí DLL nebo `.so` soubory. + +> **Pro tip:** Udržujte své závislosti aktuální. Novější verze Aspose často vylepšují algoritmy komprese WebP a přidávají podporu pro novější funkce HTML5. + +## Krok 2: Načtěte zdrojový HTML dokument + +Nyní, když je knihovna připravena, můžeme načíst HTML, které chcete převést. Třída `HTMLDocument` soubor parsuje a vytvoří DOM, který konvertor později vykreslí. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Všimněte si komentáře „Load the source HTML document“ – připomíná, že můžete také před konverzí vložit CSS nebo JavaScript, pokud vaše stránka závisí na dynamickém stylování. Pokud tento krok přeskočíte, konvertor nebude mít co vykreslit a výsledkem bude prázdný obrázek. + +## Krok 3: Nakonfigurujte možnosti konverze WebP + +Aspose.HTML vám dává detailní kontrolu nad výstupem. Ve většině případů **ztrátová** WebP s nastavením kvality kolem 85 poskytuje dobrý kompromis mezi vizuální věrností a velikostí souboru. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Proč zvolit ztrátový režim? Ztrátový mód WebP používá prediktivní kódování, které může soubory zmenšit o 30‑50 % oproti PNG při zachování většiny vizuálních detailů. Pokud potřebujete pixel‑perfektní výsledek (např. pro loga), přepněte `CompressionMode` na `Lossless` a nastavte `quality` na 100. + +## Krok 4: Převod a uložení WebP obrázku + +S připraveným dokumentem a nastavením je samotná konverze jedním řádkem. Statická metoda `Converter.convertHTML` udělá vše: vykreslí DOM na bitmapu, zakóduje ji jako WebP a zapíše soubor na disk. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +A to je vše! Po dokončení programu najdete `output.webp` vedle vašeho zdrojového HTML. Nyní jej můžete přímo nasadit na webový server, vložit do elementu `` nebo použít v jakémkoli kontextu, který podporuje WebP. + +## Krok 5: Ověřte výsledek (volitelné, ale doporučené) + +Vždy je dobré zkontrolovat, že konverze proběhla úspěšně a obrázek vypadá podle očekávání. Můžete otevřít soubor WebP v Chrome, Firefoxu nebo v jakémkoli prohlížeči, který formát podporuje. Pro rychlou programovou kontrolu můžete přečíst velikost souboru a rozměry: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Pokud je soubor nečekaně velký nebo jsou rozměry špatné, vraťte se k **Kroku 3** a upravte `quality` nebo nastavení viewportu ve zdrojovém HTML. Pamatujte, že WebP respektuje CSS `width`/`height` kořenového elementu, takže chybějící tag `` může způsobit překvapivé výsledky. + +## Kompletní funkční příklad + +Spojením všech částí získáte kompletní, připravenou Java třídu: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Uložte tento soubor jako `HtmlToWebp.java`, nahraďte `YOUR_DIRECTORY` skutečnou cestou ke složce, zkompilujte pomocí `javac` a spusťte pomocí `java HtmlToWebp`. V konzoli by se měly zobrazit informace o velikosti a rozměrech souboru, následované závěrečnou zprávou o úspěchu. + +![příklad převodu html na webp](/images/convert-html-to-webp.png "Snímek obrazovky WebP obrázku vygenerovaného z HTML – převod html na webp") + +## Časté otázky a okrajové případy + +### Co když můj HTML odkazuje na externí zdroje (CSS, obrázky)? + +Aspose.HTML automaticky řeší relativní URL na základě umístění `input.html`. Jen se ujistěte, že jsou zdroje dostupné buď v souborovém systému, nebo na webovém serveru. Pokud potřebujete vložit vlastní základní URL, použijte přetížený konstruktor `HTMLDocument`, který přijímá `URI` základ. + +### Můžu generovat více WebP obrázků ze stejného HTML (např. pro různé velikosti viewportu)? + +Ano. Zabalte logiku konverze do smyčky, před každým voláním upravte `webpOptions.setWidth()` a `setHeight()` a každému výstupu dejte unikátní název souboru. To se hodí pro responzivní design, kde chcete servírovat různé velikosti obrázků pro mobil a desktop. + +### Jak přepnout na bezztrátovou kompresi? + +Nahraďte řádek: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +tímto: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Bezztrátová komprese zaručuje pixel‑perfektní věrnost, ale vytváří větší soubory – používejte ji jen tehdy, když je to nezbytné. + +### Funguje to na Linuxu/macOS? + +Ano. JAR soubor Aspose.HTML obsahuje nativní binárky pro Windows, Linux i macOS, takže stejný Java kód běží všude. Jen se ujistěte, že máte nainstalovanou odpovídající JRE. + +## Závěr + +Právě jste se naučili **jak převést HTML na WebP** pomocí Aspose.HTML pro Javu, od nastavení závislosti až po jemné ladění komprese a ověření výsledku. S těmito znalostmi můžete **uložit HTML jako WebP**, **vykreslit HTML jako WebP** a **generovat WebP z HTML** za běhu – ideální pro dynamické image pipeline, e‑mailové newslettery nebo jakýkoli scénář, kde záleží na lehkém vizuálu. + +Co dál? Vyzkoušejte různé hodnoty `quality`, prozkoumejte režim `Lossless` nebo integrujte tento konvertor do Spring Boot REST endpointu, aby váš webový servis mohl na požádání vracet WebP obrázky. Můžete také zpracovat dávkově složku HTML souborů, nebo kombinovat s headless Chrome pro konverzi SVG na WebP. + +Máte další otázky ohledně **převodu HTML** v jiných jazycích, nebo potřebujete pomoc s konkrétním okrajovým případem? Zanechte komentář níže a šťastné kódování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/czech/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..c84551ea5 --- /dev/null +++ b/html/czech/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Vytvořte vícestránkový TIFF ze SVG v Javě pomocí Aspose.HTML. Naučte + se, jak převést SVG na TIFF, načíst SVG dokument v Javě a vytvořit vícestránkové + TIFF soubory. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: cs +og_description: Vytvořte vícestránkový TIFF ze SVG v Javě. Tento tutoriál ukazuje, + jak načíst SVG dokument, nakonfigurovat možnosti TIFF a vygenerovat bezztrátový + vícestránkový TIFF. +og_title: Vytvořte multipage TIFF z SVG v Javě – kompletní průvodce +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Vytvořte vícestránkový TIFF ze SVG v Javě – krok za krokem průvodce +url: /cs/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Vytvoření více‑stránkového TIFF ze SVG v Javě – krok za krokem + +Už jste někdy potřebovali **vytvořit více‑stránkový tiff** ze SVG, ale nevedeli jste, kde začít? Nejste v tom sami — mnoho vývojářů narazí na stejný problém, když potřebují tisknutelný, bezztrátový dokument, který se rozkládá na několik stránek. V tomto průvodci vás provedeme kompletním, připraveným řešením, které ukazuje **jak převést SVG na TIFF**, načíst SVG dokument v Javě a nakonfigurovat výstup, abyste mohli **vytvořit více‑stránkové tiff** soubory s LZW kompresí. + +Probereme vše od nastavení knihovny Aspose.HTML po zpracování okrajových případů, jako jsou velké SVG soubory. Na konci tutoriálu budete mít jedinou třídu v Javě, kterou můžete vložit do libovolného projektu a okamžitě začít generovat více‑stránkové TIFFy. + +## Co budete potřebovat + +- **Java Development Kit (JDK) 8+** – kód používá standardní Java API. +- **Aspose.HTML for Java** (verze 23.5 nebo novější) – jedná se o jedinou externí závislost. +- **Ukázkový SVG soubor** (libovolná vektorová grafika; budeme ho nazývat `input.svg`). +- Váš oblíbený IDE nebo jednoduchý textový editor a terminál. + +Žádné další nástroje pro sestavení nejsou vyžadovány; příklad se kompiluje pomocí `javac` a spouští pomocí `java`. Pokud dáváte přednost Maven nebo Gradle, stačí přidat Aspose.HTML JAR do classpath vašeho projektu. + +![Příklad vytvoření více‑stránkového tiff](create-multipage-tiff.png){alt="vytvoření více‑stránkového tiff výstup"} + +## Krok 1 – Načtení SVG dokumentu (load svg document java) + +Prvním krokem, který musíme udělat, je načíst SVG do objektu `HTMLDocument`. Aspose.HTML zachází se soubory SVG jako s HTML dokumenty, což nám poskytuje jednotné API pro konverzi. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Proč je to důležité:** Načtení SVG jako `HTMLDocument` nám poskytuje přístup k plnému renderovacímu enginu, což zajišťuje, že všechny styly, fonty a vložené obrázky jsou před konverzí správně interpretovány. Přeskočení tohoto kroku a pokus o předání surových bajtů přímo do konvertoru často vede k chybějícím prvkům nebo nesprávným barvám. + +## Krok 2 – Nastavení TIFF možností (how to create multipage tiff) + +Dále nastavíme `TiffConversionOptions`. Tento objekt řídí vše od rozvržení stránky po kompresi. Pro skutečný více‑stránkový výstup povolíme `setMultipage(true)` a zvolíme kompresi **LZW**, protože je bezztrátová a široce podporovaná. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Proč je to důležité:** Pokud vynecháte `setMultipage(true)`, knihovna vygeneruje jednostránkový TIFF a zahodí všechny další stránky, které by mohly být odvozeny ze SVG (například když SVG obsahuje více kořenových elementů ``). LZW udržuje velikost souboru rozumnou, aniž by obětovala kvalitu obrazu — ideální pro archivaci nebo tiskové řetězce. + +## Krok 3 – Provedení konverze (how to convert svg to tiff) + +Nyní se provádí těžká část. Statická metoda `Converter.convertSVG` přijímá načtený dokument, cílovou cestu a možnosti, které jsme právě definovali. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Proč je to důležité:** Použití statického volání `convertSVG` je nejužitečnější způsob, jak spustit konverzi. Pod kapotou Aspose.HTML rasterizuje vektorová data při výchozím 96 dpi; pokud je vyžadována vyšší kvalita, můžete DPI upravit pomocí `tiffOptions.setResolution(...)`. + +## Krok 4 – Ověření výsledku + +Po dokončení konverze je dobré ověřit, že soubor existuje a obsahuje očekávaný počet stránek. Rychlou kontrolu můžete provést pomocí libovolného prohlížeče obrázků, který podporuje více‑stránkové TIFF (např. IrfanView, XnView nebo dokonce Java `ImageIO`). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Spusťte program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Měli byste vidět zprávu v konzoli potvrzující úspěch a otevření `output.tiff` odhalí jednu stránku na každý kořenový element SVG (nebo jedinou stránku, pokud SVG má jen jedno plátno). + +## Časté problémy a tipy + +| Problém | Proč k tomu dochází | Jak to opravit | +|-------|----------------|---------------| +| **Chybějící fonty** | SVG odkazuje na systémové fonty, které nejsou na serveru nainstalovány. | Vložte fonty do SVG nebo použijte `FontSettings` v Aspose.HTML k poskytnutí vlastní složky s fonty. | +| **Velká velikost souboru** | Vysoké rozlišení rasterizace může zvětšit velikost TIFF. | Snižte DPI pomocí `tiffOptions.setResolution(150)` nebo přepněte na `Compression.NONE` pouze pro ladění. | +| **Nevygenerovány více stránek** | SVG obsahuje jen jeden element ``. | Rozdělte zdroj do samostatných SVG souborů nebo obalte každou logickou stránku tagem `` před konverzí. | +| **Nes podporované funkce SVG** | Některé filtry nebo animace nejsou vykresleny. | Zjednodušte SVG nebo jej předzpracujte nástrojem jako Inkscape k vyrovnání filtrů. | + +**Tip:** Pokud potřebujete konkrétní pořadí stránek, přejmenujte své SVG soubory na `page1.svg`, `page2.svg` atd. a projděte je v cyklu, přičemž každému výsledku konverze přidáte do stejného TIFF pomocí `tiffOptions.setMultipage(true)` pokaždé. + +## Kompletní funkční příklad + +Níže je kompletní, samostatná třída v Javě, kterou můžete zkopírovat a vložit do souboru pojmenovaného `SvgToMultipageTiff.java`. Obsahuje importy, komentáře a ošetření chyb pro produkční použití. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Spuštěním kódu vznikne TIFF, kde každý kořen SVG se stane samostatnou stránkou — právě to, co potřebujete, když chcete **vytvořit více‑stránkový tiff** soubor pro tisk nebo archivaci. + +## Závěr + +Právě jsme vám ukázali, jak **vytvořit více‑stránkový tiff** ze SVG pomocí Javy a Aspose.HTML. Tutoriál pokryl načtení SVG (`load svg document java`), nastavení možností konverze, provedení konverze (`how to convert svg to tiff`) a ověření výstupu. S kompletním zdrojovým kódem můžete řešení přizpůsobit pro dávkové zpracování desítek SVG, upravit nastavení DPI nebo integrovat logiku do většího pipeline pro generování dokumentů. + +Jste připraveni na další výzvu? Zkuste převést složku SVG do jediného více‑stránkového TIFF, experimentujte s různými schématy komprese nebo prozkoumejte výstup do PDF výměnou `TiffConversionOptions` za `PdfConversionOptions`. Stejné principy platí, takže budete pohodlně rozšiřovat tento vzor na další formáty. + +Máte otázky nebo jste narazili na podivný SVG okrajový případ? Zanechte komentář níže a šťastné programování! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/html5-canvas-rendering/_index.md b/html/czech/java/html5-canvas-rendering/_index.md index a19406f75..7955f1d8b 100644 --- a/html/czech/java/html5-canvas-rendering/_index.md +++ b/html/czech/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Nejprve si promluvme o prvku HTML5 Canvas. Představte si to jako prázdné plá Vytvářejte a vykreslujte HTML5 Canvas pomocí Aspose.HTML pro Java. Naučte se krok za krokem kreslit, stylovat a exportovat do PDF pomocí této výkonné Java knihovny. ### [Zvládnutí HTML5 Canvas s Aspose.HTML pro Java](./html5-canvas/) Naučte se vytvářet a převádět HTML5 Canvas do PDF pomocí Aspose.HTML for Java. Tato příručka je ideální pro vývojáře, kteří chtějí vylepšit své webové projekty. +### [Jak emulovat iPhone – Kompletní průvodce s Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Naučte se, jak pomocí Aspose.HTML emulovat iPhone a testovat webové stránky v mobilním prostředí. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/czech/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/czech/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..db438b540 --- /dev/null +++ b/html/czech/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Naučte se, jak emulovat iPhone v Javě pomocí Aspose.HTML. Zahrnuje kroky + pro nastavení vlastního uživatelského agenta a nastavení poměru pixelů zařízení + pro přesné mobilní vykreslování. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: cs +og_description: Jak emulovat iPhone v Javě? Tento tutoriál ukazuje, jak nastavit vlastní + uživatelský agent a poměr pixelů zařízení pomocí Aspose.HTML, což umožňuje doručovat + mobilní stránky s dokonalou pixelovou přesností. +og_title: Jak emulovat iPhone – krok za krokem průvodce Aspose.HTML +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Jak emulovat iPhone – Kompletní průvodce s Aspose.HTML +url: /cs/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak emulovat iPhone – Kompletní průvodce s Aspose.HTML + +Už jste se někdy zamýšleli **jak emulovat iPhone** při lokálním testování webové stránky? Možná ladíte responzivní rozvržení a desktopový prohlížeč prostě nevyhovuje. Dobrá zpráva je, že nepotřebujete fyzické zařízení — `DocumentSandbox` z Aspose.HTML vám umožní napodobit obrazovku iPhone, user‑agent a device‑pixel‑ratio (DPR) pomocí několika řádků Javy. + +V tomto tutoriálu projdeme přesně kroky, jak nastavit **vlastní user agent**, nakonfigurovat **device pixel ratio** a ověřit, že vše funguje podle očekávání. Na konci budete mít znovupoužitelný sandbox, který vykresluje stránky přesně jako iPhone 8, a pochopíte, proč je každé nastavení důležité. + +## Co dosáhnete + +- Vytvoříte objekt `Screen`, který odráží rozměry iPhone a jeho DPR. +- Aplikujete **vlastní user agent** řetězec, aby servery myslely, že požadavek pochází ze Safari na iOS. +- Sestavíte `DocumentSandbox`, který spojuje obrazovku a user‑agent. +- Spustíte `HTMLDocument` uvnitř sandboxu a uvidíte výstup v konzoli potvrzující konfiguraci. + +Nejsou potřeba žádné externí knihovny kromě Aspose.HTML a kód běží v libovolném prostředí Java 17+. + +--- + +![jak emulovat iPhone screenshot](https://example.com/images/iphone-emulation.png "jak emulovat iPhone pomocí Aspose.HTML sandbox") + +## Jak emulovat iPhone s Aspose.HTML Sandbox + +Prvním krokem je vytvořit `Screen`, který odráží fyzické rozměry iPhone *a* jeho hustotu pixelů. To je jádro **jak emulovat iPhone** přesně. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Proč je to důležité:** +- Šířka = 375 px a výška = 667 px jsou CSS rozměry, které uvidíte v Chrome DevTools při výběru iPhone 8. +- Nastavení DPR na 2 říká vykreslovacímu enginu, aby každý CSS pixel považoval za dva fyzické pixely, což poskytuje ostrý text a obrázky — přesně tak, jak to dělá skutečné zařízení. + +> *Tip:* Pokud potřebujete emulovat novější iPhone (např. iPhone 13), stačí změnit čísla na 390 × 844 a DPR = 3. + +## Nastavení vlastního User Agent (set custom user agent) + +Dále potřebujeme **nastavit vlastní user agent**, aby server poskytl mobilní specifické HTML/CSS. Bez toho si mnoho stránek stále myslí, že jste na desktopu. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Jak to funguje:** +- Header `User-Agent` je „handshake“, který prohlížeče používají k představení sebe. +- Poskytnutím přesného řetězce, který posílá Safari na iOS 16, zajistíte, že server vrátí mobilně optimalizované assety (responsivní obrázky, adaptivní skripty atd.). + +Když budete potřebovat **jak nastavit user-agent** pro jiné zařízení, stačí řetězec nahradit odpovídající hodnotou — Google Chrome, Firefox nebo dokonce vlastní bot. + +## Konfigurace Device Pixel Ratio (set device pixel ratio) + +Nyní skutečně **nastavíme device pixel ratio** uvnitř sandboxu. Tento krok přímo odpovídá na otázku “**jak nastavit dpr**” pro simulované prostředí. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Vysvětlení:** +- Vzor `Builder` vám umožňuje plynule připojit jak obrazovku (která nese DPR), tak user‑agent. +- Když sandbox vykreslí `HTMLDocument`, bude se tvářit, že běží na zařízení s touto přesnou hustotou pixelů. + +> *Proč na tom záleží:* Některé CSS media queries používají `device-pixel-ratio` (např. `@media (-webkit-min-device-pixel-ratio: 2)`). Pokud DPR nenastavíte, tato pravidla se nikdy neaktivují a přijdete o vysoce rozlišené assety. + +## Ověření konfigurace sandboxu (how to set user-agent) + +Pojďme sandbox vyzkoušet. Následující úryvek vytvoří `HTMLDocument`, načte stránku a vytiskne potvrzení, že sandbox je aktivní. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Očekávaný výstup v konzoli** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Pokud spustíte program a uvidíte tento řádek, úspěšně jste **jak emulovat iPhone** s správným DPR a user‑agentem. Otevřete stránku v reálném prohlížeči a zkontrolujte rozměry viewportu — uvidíte, že odpovídají hodnotám iPhone, které jsme nastavili. + +## Časté problémy a jak správně nastavit DPR (how to set dpr) + +I při správném kódu se můžete setkat s několika úskalími: + +| Problém | Proč k tomu dochází | Řešení | +|---------|---------------------|--------| +| **DPR zůstává na 1** | Předali jste `Screen` bez třetího argumentu (DPR). | Vždy používejte `new Screen(width, height, dpr)`. | +| **User‑Agent je ignorován** | Sandbox nebyl připojen k `HTMLDocument`. | Předávejte `documentSandbox` jako druhý argument konstruktoru `HTMLDocument`. | +| **Špatné rozměry** | Používáte pixelové hodnoty zařízení místo CSS pixelů. | Pamatujte: šířka/výška jsou **CSS pixely**, ne hardwarové pixely. | +| **Server stále posílá desktop CSS** | Některé stránky detekují zařízení pomocí JavaScriptu, ne jen hlavičky. | Zvažte také injekci meta tagu viewport, pokud je potřeba. | + +Když budete mít tyto body na paměti, zřídka narazíte na situaci, kdy emulace nefunguje podle očekávání. + +## Rozšíření sandboxu – další kroky + +Nyní, když už víte **jak nastavit vlastní user agent** a **jak nastavit dpr**, můžete experimentovat dál: + +- **Změňte velikost obrazovky** a emulujte tablety nebo větší telefony. +- **Vyměňte user‑agent** a testujte Chrome na Androidu (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Přidejte cookies nebo další hlavičky** pomocí metody sandboxu `setHeaders` pro testování s autentifikací. +- **Pořiďte screenshot** pomocí `HTMLDocument.renderToFile("output.png")` a automaticky porovnávejte vizuální rozdíly. + +Tyto rozšíření vám umožní vytvořit plnohodnotný testovací rámec, aniž byste opustili své IDE. + +--- + +## Závěr + +Probrali jsme **jak emulovat iPhone** pomocí `DocumentSandbox` z Aspose.HTML, ukázali vám přesně **jak nastavit vlastní user agent**, **jak nastavit device pixel ratio** a dokonce i jemné rozdíly mezi “**jak nastavit user-agent**” a “**jak nastavit dpr**”. Kompletní, spustitelný příklad demonstruje všechny části na jednom místě, takže můžete kopírovat, upravovat a okamžitě začít testovat mobilní rozvržení. + +Vyzkoušejte to — změňte rozměry obrazovky, pohrávejte si s různými user‑agenty a sledujte, jak vaše stránky reagují. Jakmile ovládnete tato nastavení, ladění responzivních designů bude hračkou a ušetříte nespočet hodin strávených hledáním chyb na reálných zařízeních. + +Máte otázky nebo chcete sdílet vlastní variace? Zanechte komentář níže a šťastnou emulaci! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/advanced-usage/_index.md b/html/dutch/java/advanced-usage/_index.md index 2b06de8c1..68a38fce9 100644 --- a/html/dutch/java/advanced-usage/_index.md +++ b/html/dutch/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Leer hoe je PDF‑paginagrootte kunt aanpassen met Aspose.HTML for Java. Maak mo Leer hoe je XPS‑paginagrootte kunt aanpassen met Aspose.HTML for Java. Beheer eenvoudig de uitvoerafmetingen van je XPS‑documenten. ### [Hoe JavaScript in Java uit te voeren – Complete gids](./how-to-run-javascript-in-java-complete-guide/) Leer hoe je JavaScript kunt embedden en uitvoeren binnen Java‑applicaties met Aspose.HTML, stap voor stap. +### [Top‑level await‑voorbeeld – Await‑delay gebruiken in JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Leer hoe je top‑level await en een await‑delay kunt toepassen in JavaScript met Aspose.HTML. --- diff --git a/html/dutch/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/dutch/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..52cefde04 --- /dev/null +++ b/html/dutch/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,171 @@ +--- +category: general +date: 2026-03-26 +description: Top-level await‑voorbeeld dat await‑delay in JavaScript, een increment‑tellerklasse + en publieke klassevelden in JavaScript laat zien in een live‑demo. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: nl +og_description: Top‑level‑await‑voorbeeld dat wachtvertraging in JavaScript, een tellerklasse + met increment en openbare klassevelden in JavaScript demonstreert in een beknopte + tutorial. +og_title: top level await voorbeeld – Gebruik await delay in JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: top level await voorbeeld – Gebruik await delay in JavaScript +url: /nl/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top‑level await‑voorbeeld – Await delay gebruiken in JavaScript + +Heb je je ooit afgevraagd hoe je de uitvoering van een module kunt pauzeren zonder alles in een async IIFE te wikkelen? Dat is precies wat een **top‑level await‑voorbeeld** je laat doen. In deze tutorial lopen we een kleine webpagina door die `await delay javascript` gebruikt om werk uit te stellen, en vervolgens een `increment counter class` maakt die **public class fields javascript** benut. Aan het einde heb je een volledige copy‑and‑paste‑snippet die in elke moderne browser werkt. + +We behandelen alles, van het definiëren van een klasse met een publiek veld tot het aansluiten van een eenvoudige promise‑gebaseerde delay‑helper. Geen externe libraries, geen build‑stap—alleen platte HTML, een ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Verwachte console‑output + +``` +Counter class initialized +Final count: 1 +``` + +Als je de pagina opent in DevTools, zou je het statische‑blok‑bericht **vóór** het einde van de delay moeten zien, wat bevestigt dat de klasse eerst werd geëvalueerd. + +## Stap 5 – Waarom publieke klasse‑velden gebruiken in plaats van een constructor? + +Je vraagt je misschien af waarom we niet schreven: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Beide benaderingen werken, maar **public class fields javascript** geven je een schonere, meer declaratieve syntaxis. Het veld wordt één keer gedefinieerd, niet binnen elke constructor‑aanroep, wat makkelijker leesbaar kan zijn wanneer de klasse groter wordt. Bovendien kunnen statische blokken niet binnen een constructor worden geplaatst, waardoor het scheiden van initialisatielogica natuurlijker wordt. + +## Stap 6 – Het voorbeeld aanpassen voor real‑world apps + +In productie heb je vaak meer dan één teller nodig. Hier zijn een paar snelle ideeën: + +- **Meerdere tellers:** Bewaar ze in een `Map` met een identifier als sleutel. +- **Persistente staat:** Vervang `console.log` door writes naar `localStorage`. +- **Async initialisatie:** Gebruik het statische blok om configuratie van een server op te halen voordat er instanties worden gemaakt. + +Al deze patronen profiteren nog steeds van top‑level await, omdat je data één keer kunt ophalen bij het laden van de module en kunt garanderen dat het klaar is voor elke consument. + +## Veelgestelde vragen + +**V: Blokkeert top‑level await andere modules?** +A: Nee. Elke module draait onafhankelijk. Alleen de module die de await bevat wordt gepauzeerd; andere modules blijven parallel laden. + +**V: Wat als de delay‑promise wordt afgewezen?** +A: Een onbehandelde afwijzing stopt de evaluatie van de module en verschijnt als een fout in de console. Om een elegante fallback te bieden, wikkel je de await in een `try…catch`. + +**V: Is het `static`‑keyword vereist?** +A: Niet voor de teller zelf, maar het statische blok is een handige manier om te laten zien dat code *eenmalig* bij het laden wordt uitgevoerd—ideaal voor logging of feature‑detectie. + +## Conclusie + +Je hebt zojuist een **top‑level await‑voorbeeld** gebouwd dat `await delay javascript`, een **increment counter class**, en de kracht van **public class fields javascript** demonstreert. De volledige, uitvoerbare snippet staat hierboven, en de console‑output bewijst dat het statische blok vóór de vertraagde code wordt uitgevoerd. + +Vanaf hier kun je experimenteren met complexere async‑stromen, de delay vervangen door een echte API‑call, of de klasse uitbreiden met extra methoden. Onthoud dat modern JavaScript je toestaat modules te behandelen als eersteklas async‑entiteiten—geen extra wrappers nodig. + +Veel plezier met coderen, en deel gerust je variaties in de reacties. Als je deze gids nuttig vond, deel hem dan met een collega die nog worstelt met async‑patronen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/conversion-html-to-other-formats/_index.md b/html/dutch/java/conversion-html-to-other-formats/_index.md index 88aaf0247..52a98ae57 100644 --- a/html/dutch/java/conversion-html-to-other-formats/_index.md +++ b/html/dutch/java/conversion-html-to-other-formats/_index.md @@ -92,12 +92,17 @@ Converteer HTML moeiteloos naar MHTML met Aspose.HTML for Java. Volg onze stap Leer hoe u HTML moeiteloos naar XPS kunt converteren met Aspose.HTML for Java. Maak cross‑platform documenten met gemak. ### [Markdown naar HTML converteren](./convert-markdown-to-html/) Converteer Markdown naar HTML in Java naadloos met Aspose.HTML for Java. Volg onze stap‑voor‑stap gids om uw documentconversiebehoeften te stroomlijnen. +### [HTML naar Markdown converteren in Java – Originele opmaak behouden](./convert-html-to-markdown-in-java-preserve-original-formattin/) ### [SVG naar afbeelding converteren](./convert-svg-to-image/) Leer hoe u SVG naar afbeeldingen kunt converteren in Java met Aspose.HTML. Uitgebreide gids voor output van hoge kwaliteit. ### [SVG naar PDF converteren](./convert-svg-to-pdf/) Converteer SVG naar PDF in Java met Aspose.HTML. Een naadloze oplossing voor documentconversie van hoge kwaliteit. ### [SVG naar XPS converteren](./convert-svg-to-xps/) Leer hoe u SVG naar XPS kunt converteren met Aspose.HTML for Java. Eenvoudige, stap‑voor‑stap gids voor naadloze conversies. +### [PDF met aangepaste grootte maken – HTML naar PDF converteren met Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Leer hoe u PDF's met aangepaste paginagrootte genereert vanuit HTML met Aspose.HTML for Java. +### [PDF maken van HTML in Java – Parallelle batchconversiegids](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Leer hoe u met Aspose.HTML in Java meerdere HTML‑bestanden parallel naar PDF kunt converteren voor hoge doorvoersnelheid. ## Veelgestelde Vragen diff --git a/html/dutch/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/dutch/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..ecb039d85 --- /dev/null +++ b/html/dutch/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-26 +description: Converteer HTML naar markdown en genereer een markdown‑bestand terwijl + je de oorspronkelijke opmaak behoudt met behulp van Aspose HTML-conversie in Java. + Leer stap voor stap. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: nl +og_description: Converteer HTML snel naar markdown, genereer een markdown‑bestand + en behoud de oorspronkelijke opmaak met Aspose HTML‑conversie voor Java. +og_title: HTML naar Markdown converteren in Java – Opmaak behouden +tags: +- Aspose +- Java +- Markdown +title: HTML naar Markdown converteren in Java – Originele opmaak behouden +url: /nl/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML naar Markdown converteren in Java – Oorspronkelijke opmaak behouden + +Heb je ooit **HTML naar markdown moeten converteren** maar was je bang dat je de spaties, tabellen of inline‑tags zou verliezen? Je bent niet de enige. Veel ontwikkelaars lopen tegen dit probleem aan wanneer ze inhoud van een webpagina naar een schone, versie‑controle‑vriendelijke indeling willen verplaatsen. Het goede nieuws? Met een paar regels Java en Aspose HTML kun je **een markdown‑bestand genereren** dat er precies uitziet als de bron, inclusief alle witruimte. + +In deze gids lopen we het volledige proces door: een complex HTML‑bestand laden, de conversie configureren zodat deze **de oorspronkelijke opmaak behoudt**, en uiteindelijk de uitvoer naar `preserved.md` schrijven. Aan het einde heb je een kant‑klaar fragment, begrijp je *waarom* elke instelling belangrijk is, en weet je hoe je de code kunt aanpassen voor randgevallen zoals aangepaste CSS of ingesloten scripts. + +## Wat je nodig hebt + +- Java 17 (of een recente JDK) – de API werkt met Java 8+ maar nieuwere versies bieden betere prestaties. +- Aspose HTML for Java‑bibliotheek (versie 23.11 of later). Je kunt deze ophalen van Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Een voorbeeld‑HTML‑bestand (`complex.html`) dat koppen, tabellen, codeblokken en mogelijk wat inline ``‑styling bevat. +- Een beetje geduld en de bereidheid om te experimenteren. + +Dat is alles. Geen externe tools, geen command‑line hacks—alleen pure Java‑code. + +## Stap 1: Laad het bron‑HTML‑document + +Het eerste wat we doen is een `HTMLDocument`‑instantie maken die naar je bronbestand wijst. Aspose HTML behandelt het bestand als een DOM, wat betekent dat je het kunt inspecteren of aanpassen vóór de conversie als dat nodig is. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Waarom dit belangrijk is:** Het document op deze manier laden zorgt ervoor dat alle gekoppelde bronnen (stylesheets, afbeeldingen) relatief aan de bestandslocatie worden opgelost. Als je deze stap overslaat en een ruwe string invoert, kun je externe CSS verliezen die de spatiëring beïnvloedt—precies het soort dat je wilt **de oorspronkelijke opmaak behouden**. + +## Stap 2: Configureer Markdown‑conversie‑opties + +Aspose HTML biedt een `MarkdownConversionOptions`‑klasse. De belangrijkste eigenschap voor ons is `setPreserveOriginalFormatting(true)`. Wanneer ingeschakeld, behoudt de converter regeleinden, inspringingen en zelfs ruwe HTML‑fragmenten die markdown niet native kan weergeven. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro tip:** Als je later ontdekt dat sommige inline‑stijlen worden verwijderd, kun je ook `markdownOptions.setIncludeHtml(true)` aanroepen om ruwe HTML‑blokken in de markdown‑output te forceren. + +## Stap 3: Voer de conversie uit + +Nu geven we de `HTMLDocument`, het doel‑bestandspad en onze opties door aan de statische methode `Converter.convertHTML`. Deze methode doet al het zware werk op de achtergrond. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Wanneer de aanroep voltooid is, vind je `preserved.md` naast je bronbestand. Open het in een editor—let op hoe de oorspronkelijke regeleinden en tabeluitlijning behouden blijven. + +## Stap 4: Verifieer het resultaat (optioneel maar aanbevolen) + +Een snelle sanity‑check bespaart je later van subtiele bugs. Je kunt het bestand teruglezen in Java en de eerste paar regels afdrukken, of het gewoon openen in VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Je zou iets moeten zien als: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +De ``‑tag is nog steeds aanwezig omdat de native markdown‑tabelsyntaxis de exacte styling niet kon vastleggen—dankzij `preserve original formatting`. + +## Stap 5: Alles samenvoegen – Volledig uitvoerbaar voorbeeld + +Hieronder staat de volledige, kant‑klaar te draaien klasse. Vervang `YOUR_DIRECTORY` door het daadwerkelijke pad op jouw machine. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Voer het programma uit met `mvn exec:java` of je favoriete IDE, en je krijgt een **markdown‑bestand gegenereerd** dat de oorspronkelijke HTML‑lay-out weerspiegelt. + +## Veelgestelde vragen & randgevallen + +### Werkt dit met externe CSS‑bestanden? + +Ja. Zolang de CSS‑bestanden bereikbaar zijn via relatieve paden, laadt Aspose HTML ze automatisch. Als je HTML van een externe URL haalt, moet je mogelijk een aangepast `ResourceLoadingOptions`‑object instellen om netwerktoegang toe te staan. + +### Wat als ik geen ruwe HTML in de markdown wil? + +Simply switch the option: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +De converter zal dan proberen alles naar pure markdown‑syntaxis te vertalen, waardoor mogelijk enige lay‑out‑nauwkeurigheid verloren gaat. + +### Kan ik een string converteren in plaats van een bestand? + +Absolutely. Use the constructor that accepts a `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Geef vervolgens `doc` door aan `Converter.convertHTML` zoals eerder. + +### Hoe verschilt dit van andere bibliotheken zoals Flexmark of pandoc? + +De meeste open‑source tools behandelen HTML als platte tekst en verwijderen witruimte agressief. De `preserveOriginalFormatting`‑vlag van Aspose HTML is een **propriëtaire functie** die de witruimte, regeleinden en zelfs niet‑ondersteunde tags van de oorspronkelijke bron respecteert als ruwe HTML‑blokken. Daarom legt deze tutorial de nadruk op **aspose html conversion** voor Java‑ontwikkelaars die exacte nauwkeurigheid nodig hebben. + +## Tips voor productiegebruik + +- **Batchverwerking:** Plaats de conversielogica in een lus om meerdere HTML‑bestanden in één keer te verwerken. +- **Foutafhandeling:** Vang `IOException` en `com.aspose.html.exceptions.AssertionFailedException` op om ontbrekende bronnen zichtbaar te maken. +- **Prestaties:** Hergebruik een enkele `HTMLDocument`‑instantie bij het converteren van fragmenten van een grote site; de bibliotheek cachet geparseerde CSS. + +## Conclusie + +We hebben je net laten zien hoe je **HTML naar markdown kunt converteren** in Java terwijl je ervoor zorgt dat de output **de oorspronkelijke opmaak behoudt**. Het korte, zelfstandige fragment demonstreert de volledige workflow—van het laden van het HTML‑document tot het configureren van `MarkdownConversionOptions`, het uitvoeren van de conversie en het verifiëren van het resultaat. Met de robuuste API van Aspose HTML kun je nu **markdown‑bestanden genereren** via code, of je nu een static‑site‑generator, een documentatie‑pipeline of een content‑migratietool bouwt. + +Vervolgens kun je verkennen: + +- Het gebruik van **html to markdown java** voor bulk‑migraties over een website. +- Het aanpassen van de conversie‑opties om GitHub‑flavored markdown‑tabellen te genereren. +- Deze aanpak combineren met een CI/CD‑stap die automatisch je documentatie bijwerkt wanneer de bron‑HTML verandert. + +Voel je vrij om te experimenteren, en laat een reactie achter als je tegen problemen aanloopt. Veel plezier met coderen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/dutch/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..df1a7f8cd --- /dev/null +++ b/html/dutch/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-03-26 +description: Maak PDF met aangepaste grootte van HTML met Aspose.HTML voor Java. Leer + hoe je HTML naar PDF converteert en de PDF-paginagrootte instelt in slechts een + paar stappen. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: nl +og_description: Maak PDF met aangepaste afmetingen vanuit HTML met Aspose. Deze gids + laat zien hoe je HTML naar PDF converteert, de PDF-paginagrootte wijzigt en de paginagrootte + van PDF moeiteloos instelt. +og_title: PDF met aangepaste grootte maken – Snelle gids voor het converteren van + HTML naar PDF +tags: +- aspose +- java +- pdf +- html +title: PDF met aangepaste grootte maken – HTML naar PDF converteren met Aspose +url: /nl/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF met aangepaste afmetingen maken – HTML naar PDF converteren met Aspose + +Heb je ooit **PDF met aangepaste afmetingen** moeten maken vanuit een HTML‑bestand? In deze tutorial laten we je zien hoe je **HTML naar PDF** kunt **converteren** en de paginagrootte van de PDF kunt instellen met Aspose.HTML voor Java. + +Als je facturen, rapporten of e‑books maakt, zijn de exacte paginadimensies cruciaal—anders ziet je lay‑out er scheef uit of wordt er iets afgesneden. + +We lopen stap voor stap door het hele proces, van het laden van de bron‑HTML tot het aanpassen van marges, en eindigen met een kant‑klaar PDF‑bestand. Geen vage verwijzingen, alleen een compleet, direct uitvoerbaar voorbeeld dat je vandaag nog kunt kopiëren en plakken. + +## Wat je nodig hebt + +- **Java 17** (of een recente JDK). +- **Aspose.HTML for Java** JAR‑bestanden – haal de nieuwste versie op uit de Maven‑repository of van de Aspose‑website. +- Een simpel `input.html`‑bestand in een map die jij beheert. +- Een IDE of teksteditor naar keuze; ik programmeer meestal in IntelliJ IDEA, maar Eclipse werkt ook prima. + +Met deze voorwaarden kom je later geen “class not found”‑fouten tegen. + +Laten we beginnen. + +![Voorbeeld van PDF met aangepaste afmetingen](/images/create-pdf-custom-size.png "Schermafbeelding van een PDF gegenereerd met aangepaste paginagrootte en marges – create pdf custom size") + +## PDF met aangepaste afmetingen maken – Kernstappen + +Hieronder staat het volledige Java‑programma dat je uiteindelijk krijgt. Kopieer het gerust naar een bestand genaamd `ConvertHtmlToPdfCustomPage.java` en voer het uit nadat je de Aspose‑afhankelijkheden aan je project hebt toegevoegd. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Stap 1 – HTML naar PDF converteren: Document laden + +Het eerste wat we doen is de **HTML laden** die we willen omzetten naar een PDF. +`HTMLDocument` leest het bestand, lost relatieve koppelingen op en bouwt een DOM die Aspose kan renderen. + +> **Waarom dit belangrijk is:** Als de HTML CSS‑ of afbeeldingsbestanden verwijst, haalt Aspose deze op relatief ten opzichte van het bestandspad. Een absoluut pad (`YOUR_DIRECTORY/input.html`) voorkomt “file not found”‑verrassingen. + +### Stap 2 – PDF‑paginagrootte wijzigen: Opties configureren + +Hier maken we een `PdfConversionOptions`‑object. +- `setPageSize(PageSize.A4)` vertelt Aspose de standaard A4‑afmetingen te gebruiken (210 × 297 mm). +- `setPageOrientation(...)` draait de pagina als je landschapsmodus nodig hebt. +- `setMargins(new Margin(20, 20, 20, 20))` geeft aan elke kant een marge van 20 punt. + +Je kunt `PageSize.A4` vervangen door `PageSize.LETTER` of zelfs een **aangepaste grootte** door een `SizeF`‑object mee te geven, bijvoorbeeld: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Pro‑tip:** Eén punt is gelijk aan 1/72 inch. Als je in millimeters denkt, vermenigvuldig dan met 2,83465 om punten te krijgen. + +### Stap 3 – PDF genereren vanuit HTML: Conversie uitvoeren + +`Converter.convertHTML` doet het zware werk. Het neemt het geladen `HTMLDocument`, het uitvoerpad en de opties die we zojuist hebben ingesteld. + +Wil je de **PDF‑paginagrootte** dynamisch bepalen op basis van de inhoud, dan kun je de benodigde afmetingen berekenen vóór deze stap en `pdfOptions` dienovereenkomstig aanpassen. + +### Stap 4 – Resultaat verifiëren + +De `System.out.println`‑regel is optioneel, maar geeft snelle feedback wanneer je het programma vanuit een console uitvoert. Na uitvoering open je `custom_page.pdf` – je zou een A4‑portret‑PDF moeten zien met overal een uniforme marge van 20 punt, precies zoals we hebben opgegeven. + +## HTML naar PDF – Veelvoorkomende variaties + +### Een stream gebruiken in plaats van een bestandspad + +Soms heb je geen fysiek bestand; misschien komt de HTML uit een database of een API. In dat geval wikkel je de string in een `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Het tweede argument is de basis‑URL voor het oplossen van relatieve bronnen. + +### Pagina‑oriëntatie wijzigen + +Is je rapport breed, schakel dan over naar landschapsmodus: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Marges fijn afstellen + +Marges accepteren zwevende‑kommagetallen, dus je kunt 0,5 pt instellen voor een haar­dunne rand: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Grote HTML‑bestanden verwerken + +Voor enorme documenten kun je overwegen **geheugen‑efficiënte streaming** in te schakelen: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Dit vertelt Aspose om tussen­resultaten naar tijdelijke bestanden te schrijven in plaats van alles in RAM te houden. + +## PDF‑paginagrootte instellen – Randgevallen & valkuilen + +- **Ontbrekende lettertypen:** Als je HTML een aangepast lettertype gebruikt dat niet op de server is geïnstalleerd, valt de PDF terug op een standaardlettertype. Embed het lettertype met `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Afbeeldingsschaling:** Hoge‑resolutie‑afbeeldingen kunnen de PDF onnodig vergroten. Gebruik `pdfOptions.setImageResolution(150);` om te verkleinen terwijl je de kwaliteit behoudt. +- **CSS‑compatibiliteit:** Niet alle CSS‑eigenschappen worden volledig ondersteund. Houd je aan standaard‑layouttechnieken (flexbox werkt, maar grid kan eigenaardigheden vertonen). +- **Pad‑rechten:** Zorg dat het proces schrijfrechten heeft voor `YOUR_DIRECTORY`. Anders wordt een `IOException` gegooid. + +## Verwachte output + +Het uitvoeren van het programma levert een PDF op die er ongeveer zo uitziet (conceptuele illustratie): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Paginagrootte: **A4** (210 × 297 mm). +- Oriëntatie: **Portret**. +- Marges: **20 pt** aan elke zijde. + +Open het bestand met een PDF‑viewer (Adobe Reader, Chrome, enz.) om te bevestigen. + +## Afronding + +Je weet nu hoe je **PDF met aangepaste afmetingen** kunt maken vanuit een HTML‑bron met Aspose.HTML voor Java. De tutorial besloeg de volledige pijplijn: **HTML naar PDF converteren**, **PDF‑paginagrootte wijzigen**, **PDF‑paginagrootte instellen**, en **PDF genereren vanuit HTML** met aangepaste marges. + +Voel je vrij om te experimenteren—verwissel `PageSize.LETTER` voor legal size, pas de marges aan, of embed je eigen lettertypen. Als volgende stap kun je **watermerken toevoegen**, **de PDF versleutelen**, of **meerdere HTML‑bestanden batch‑verwerken**. Al die onderwerpen bouwen voort op dezelfde kernconcepten die we net hebben behandeld. + +Heb je een vraag over een specifiek randgeval? Laat een reactie achter, en ik help je graag verder. Veel programmeerplezier! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/dutch/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..66823238a --- /dev/null +++ b/html/dutch/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-26 +description: Maak snel PDF's van HTML met een vaste threadpool. Leer batch HTML naar + PDF en voer parallelle taken uit in Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: nl +og_description: Maak snel PDF's van HTML met een vaste threadpool. Leer hoe je HTML + naar PDF batcht en parallelle taken uitvoert in Java. +og_title: PDF maken van HTML in Java – Gids voor parallelle batchconversie +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: PDF maken vanuit HTML in Java – Gids voor parallelle batchconversie +url: /nl/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF maken van HTML in Java – Parallelle batchconversiegids + +Heb je ooit **PDF maken van HTML** moeten doen, maar zat je vast terwijl een single‑threaded conversie eeuwig kruipt? Je bent niet de enige. In veel real‑world projecten ontvangen we tientallen HTML‑rapporten die tegen het einde van de dag PDF’s moeten worden, en ze één voor één verwerken is gewoon niet praktisch. + +Daarom laat deze tutorial je **how to convert HTML to PDF** gebruiken een **fixed thread pool**, zodat je **batch HTML to PDF** en **run parallel tasks** kunt uitvoeren zonder enige moeite. Aan het einde heb je een compleet, kant‑klaar programma dat een map met HTML‑bestanden in PDF’s omzet in een fractie van de tijd. + +## Wat je zult leren + +* De exacte Maven/Gradle‑dependency voor Aspose.HTML (de bibliotheek die het zware werk doet). +* Waarom een **fixed thread pool** de ideale keuze is voor CPU‑gebonden conversiewerk. +* Hoe je je bronbestanden kunt opsommen zodat het proces kan opschalen naar honderden documenten. +* De exacte code die je in je IDE plakt — geen missende imports, geen “TODO”‑commentaren. +* Tips voor het afhandelen van fouten, het afstemmen van de pool‑grootte, en het verifiëren van de output. + +Er is geen voorafgaande kennis van Aspose.HTML vereist, alleen een basis Java‑opstelling en de bereidheid om te experimenteren. Laten we beginnen. + +--- + +![Diagram dat een fixed thread pool toont die meerdere HTML‑bestanden parallel naar PDF converteert – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Afbeeldings‑alt‑tekst: create pdf from html – parallel conversion diagram* + +## Stap 1: Bereid je project voor en voeg Aspose.HTML toe + +Allereerst heeft je project de Aspose.HTML‑bibliotheek nodig. Als je Maven gebruikt, voeg dit toe aan je `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Voor Gradle is het simpelweg: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Waarom Aspose.HTML? Het is een commerciële bibliotheek, maar biedt een **convert html to pdf** API die CSS, JavaScript en complexe lay-outs direct ondersteunt. Als je de voorkeur geeft aan een open‑source alternatief, kun je later de `Converter.convertHTML`‑aanroep vervangen, maar de threading‑logica blijft hetzelfde. + +> **Pro tip:** Houd het versienummer synchroon met de officiële release‑notes; nieuwere versies verbeteren vaak de render‑snelheid, wat belangrijk is wanneer je veel taken parallel uitvoert. + +## Stap 2: Bouw een Fixed Thread Pool voor Parallelle Conversie + +Wanneer je een batch bestanden hebt, wil je niet een onbeperkt aantal threads starten — je OS zal dan gaan thrashen. Een **fixed thread pool** geeft je een voorspelbare hoeveelheid gelijktijdigheid terwijl het geheugenverbruik onder controle blijft. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Waarom vier? Op een typische 8‑core machine kan de helft van de cores vrij blijven voor I/O en het OS. Je kunt experimenteren: `Runtime.getRuntime().availableProcessors()` geeft het aantal cores terug, en een vuistregel is `cores / 2`. Onthoud dat elke conversie CPU‑intensief is, dus meer threads dan cores schaadt meestal de prestaties. + +## Stap 3: Verzamel de HTML‑bestanden die je wilt converteren + +Het volgende puzzelstuk is de **batch html to pdf**‑lijst. Je kunt een array hard‑coderen (zoals in het voorbeeld) of een map scannen. Hier is een flexibele versie die elk `.html`‑bestand uit een map leest: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Deze aanpak betekent dat je nieuwe bestanden in de map kunt plaatsen en het programma ze automatisch oppikt — perfect voor een nachtelijke batch‑taak. + +## Stap 4: Dien een conversietaak in voor elk bestand (Run Parallel Tasks) + +Nu het leuke deel: elk bestand wordt een **Runnable** (of `Callable`) die de pool uitvoert. De code hieronder spiegelt het originele voorbeeld, maar voegt foutafhandeling en een klein log‑bericht toe. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Waarom de conversie in een try‑catch wikkelen?** Wanneer je **run parallel tasks**, kan een enkel misvormd HTML‑bestand anders de hele executor laten crashen. Door lokaal uitzonderingen af te vangen, zorgen we ervoor dat de rest van de batch doorgaat. + +## Stap 5: Sluit de Executor af en wacht op voltooiing + +Nadat alle taken zijn ingediend, moet je de pool vertellen geen nieuw werk meer te accepteren en vervolgens wachten tot alles is voltooid. Dit garandeert dat de JVM niet voortijdig afsluit. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Als je een enorme map hebt (duizenden bestanden) kun je de timeout verhogen of een voortgangsmonitor implementeren. Het belangrijkste is om **gracefully shut down** te doen — dit is het kenmerk van productie‑klare code. + +## Volledig Werkend Voorbeeld + +Alles bij elkaar genomen, hier is een zelfstandige klasse die je kunt copy‑pasten in `src/main/java` en uitvoeren: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Verwachte output** (voorbeeld): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Als je de gegenereerde `.pdf`‑bestanden opent, zie je dat de oorspronkelijke HTML‑lay-out behouden blijft — lettertypen, tabellen, en zelfs basis JavaScript‑gedreven inhoud correct gerenderd. + +## Veelgestelde Vragen & Randgevallen + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/conversion-html-to-various-image-formats/_index.md b/html/dutch/java/conversion-html-to-various-image-formats/_index.md index 396d43363..8e3d39a97 100644 --- a/html/dutch/java/conversion-html-to-various-image-formats/_index.md +++ b/html/dutch/java/conversion-html-to-various-image-formats/_index.md @@ -97,8 +97,12 @@ Leer HTML naar JPEG te converteren met Aspose.HTML for Java. Stap‑voor‑stap Leer hoe je HTML naar PNG‑afbeeldingen kunt converteren in Java met Aspose.HTML. Een uitgebreide gids met stap‑voor‑stap instructies. ### [HTML naar TIFF converteren](./convert-html-to-tiff/) Leer hoe je HTML eenvoudig naar TIFF kunt converteren met Aspose.HTML for Java. Stap‑voor‑stap gids voor efficiënte documentafhandeling. -### [HTML naar WebP – Complete Java-gids met Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [HTML naar WebP – Complete Java‑gids met Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Leer hoe je HTML naar WebP kunt converteren met Aspose.HTML for Java. Een stapsgewijze gids voor efficiënte WebP‑rendering. +### [HTML naar WebP – Complete Java‑gids](./convert-html-to-webp-complete-java-guide/) +Leer hoe je HTML naar WebP kunt converteren met Aspose.HTML for Java. Een volledige Java‑gids met stapsgewijze instructies. +### [Maak een meerpagina‑tiff van SVG in Java – Stapsgewijze gids](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Leer hoe je met Aspose.HTML for Java een meerpagina‑tiff maakt vanuit SVG‑bestanden, stap voor stap. ## Veelgestelde vragen diff --git a/html/dutch/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/dutch/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..da5397f69 --- /dev/null +++ b/html/dutch/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-03-26 +description: Converteer HTML snel naar WebP met Aspose.HTML. Leer hoe je HTML kunt + opslaan als WebP, HTML kunt renderen als WebP en WebP kunt genereren vanuit HTML + in slechts een paar stappen. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: nl +og_description: Converteer HTML snel naar WebP met Aspose.HTML. Deze tutorial laat + zien hoe je HTML rendert als WebP en WebP genereert vanuit HTML in Java. +og_title: HTML converteren naar WebP – Complete Java‑gids +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML converteren naar WebP – Complete Java-gids +url: /nl/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML naar WebP converteren – Complete Java‑gids + +Heb je ooit **HTML naar WebP moeten converteren** maar wist je niet welke bibliotheek het zonder gedoe aankan? Je bent niet de enige. Veel ontwikkelaars lopen tegen dit probleem aan wanneer ze lichte afbeeldingen willen serveren die uit dynamische pagina’s worden gegenereerd. Het goede nieuws? Met Aspose.HTML voor Java kun je *HTML opslaan als WebP* met één enkele methode‑aanroep, en het hele proces verloopt zo soepel als boter. + +In deze tutorial lopen we alles door wat je moet weten: van het instellen van de Aspose.HTML‑dependency, tot het afstemmen van compressie‑instellingen, en uiteindelijk het renderen van het HTML‑document als een WebP‑bestand dat je op het web kunt serveren. Aan het einde kun je **HTML renderen als WebP**, **WebP genereren vanuit HTML**, en begrijp je het “waarom” achter elke configuratie‑optie. Geen externe scripts, geen command‑line acrobatiek — alleen nette Java‑code. + +## Prerequisites + +Voordat we beginnen, zorg dat je het volgende hebt: + +- Java 8 of nieuwer geïnstalleerd (de bibliotheek ondersteunt JDK 8+). +- Maven of Gradle voor dependency‑beheer (we laten het Maven‑fragment zien). +- Een simpel HTML‑bestand (`input.html`) dat je wilt omzetten naar een WebP‑afbeelding. +- Een IDE of teksteditor naar keuze — IntelliJ IDEA werkt uitstekend, maar elke editor volstaat. + +Heb je alles? Geweldig, laten we beginnen. + +## Step 1: Add Aspose.HTML to Your Project + +Eerst moet je de Aspose.HTML‑bibliotheek op het classpath hebben. Als je Maven gebruikt, voeg dit toe aan je `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Voor Gradle ziet het er zo uit: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Waarom is deze stap cruciaal? Zonder de JAR bestaan de `HTMLDocument`, `Converter` of `WebpConversionOptions`‑klassen niet, en de compiler zal een `ClassNotFoundException` gooien. Het toevoegen van de dependency haalt ook de native binaries binnen die nodig zijn voor WebP‑codering, zodat je geen externe DLL‑ of `.so`‑bestanden meer hoeft te zoeken. + +> **Pro tip:** Houd je dependencies up‑to‑date. Nieuwere Aspose‑releases verbeteren vaak de WebP‑compressie‑algoritmes en voegen ondersteuning toe voor nieuwere HTML5‑features. + +## Step 2: Load the Source HTML Document + +Nu de bibliotheek klaar is, kunnen we de HTML die je wilt converteren laden. De `HTMLDocument`‑klasse parseert het bestand en bouwt een DOM, die later door de converter wordt gerenderd. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Let op de opmerking “Load the source HTML document” — dit herinnert je eraan dat je ook CSS of JavaScript kunt injecteren vóór de conversie als je pagina afhankelijk is van dynamische styling. Als je deze stap overslaat, heeft de converter niets om te renderen, wat resulteert in een lege afbeelding. + +## Step 3: Configure WebP Conversion Options + +Aspose.HTML geeft je fijnmazige controle over de output. Voor de meeste gevallen biedt een **lossy** WebP met een kwaliteitsinstelling rond 85 een goede balans tussen visuele getrouwheid en bestandsgrootte. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Waarom kiezen voor lossy? De lossy‑modus van WebP gebruikt predictieve codering, waardoor bestanden 30‑50 % kleiner kunnen worden dan PNG, terwijl het grootste deel van de visuele details behouden blijft. Als je pixel‑perfecte resultaten nodig hebt (bijvoorbeeld voor logo’s), schakel `CompressionMode` over naar `Lossless` en zet `quality` op 100. + +## Step 4: Convert and Save the WebP Image + +Met het document en de opties klaar, is de conversie zelf één regel code. De statische `Converter.convertHTML`‑methode doet al het zware werk: hij rendert de DOM op een bitmap, codeert deze als WebP, en schrijft het bestand naar schijf. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Dat is alles! Nadat het programma is afgerond, vind je `output.webp` naast je bron‑HTML. Je kunt het nu direct vanaf een webserver serveren, embedden in een ``‑element, of gebruiken in elke context die WebP ondersteunt. + +## Step 5: Verify the Result (Optional but Recommended) + +Het is altijd verstandig om te controleren of de conversie geslaagd is en of de afbeelding er naar verwachting uitziet. Je kunt het WebP‑bestand openen in Chrome, Firefox, of een andere viewer die het formaat ondersteunt. Voor een snelle programmatiche controle kun je de bestandsgrootte en afmetingen uitlezen: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Als het bestand onverwacht groot is of de afmetingen niet kloppen, ga dan terug naar **Step 3** en pas `quality` of de viewport‑instellingen van de bron‑HTML aan. Vergeet niet dat WebP de CSS `width`/`height` van het root‑element respecteert, dus een ontbrekende ``‑tag kan verrassende resultaten geven. + +## Full Working Example + +Alles bij elkaar, hier is de complete, kant‑klaar te draaien Java‑klasse: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Sla dit bestand op als `HtmlToWebp.java`, vervang `YOUR_DIRECTORY` door het daadwerkelijke mappad, compileer met `javac`, en voer uit met `java HtmlToWebp`. Je zou console‑output moeten zien die de bestandsgrootte en afmetingen bevestigt, gevolgd door een succes‑bericht. + +![convert html to webp example](/images/convert-html-to-webp.png "Schermafbeelding van een WebP‑afbeelding gegenereerd vanuit HTML – convert html to webp") + +## Common Questions & Edge Cases + +### What if my HTML references external resources (CSS, images)? + +Aspose.HTML lost automatisch relatieve URL’s op op basis van de locatie van `input.html`. Zorg er gewoon voor dat de resources bereikbaar zijn vanaf het bestandssysteem of een webserver. Als je een aangepaste basis‑URL moet injecteren, gebruik dan de overloaded `HTMLDocument`‑constructor die een `URI`‑basis accepteert. + +### Can I generate multiple WebP images from the same HTML (e.g., different viewport sizes)? + +Absoluut. Plaats de conversielogica in een lus, pas `webpOptions.setWidth()` en `setHeight()` aan vóór elke aanroep, en geef elke output een unieke bestandsnaam. Handig voor responsive design waarbij je verschillende afbeeldingsgroottes serveert voor mobiel en desktop. + +### How do I switch to lossless compression? + +Vervang de regel: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +door: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless garandeert pixel‑perfecte getrouwheid maar levert grotere bestanden op — gebruik het alleen wanneer nodig. + +### Does this work on Linux/macOS? + +Ja. De Aspose.HTML‑JAR bevat native binaries voor Windows, Linux en macOS, dus dezelfde Java‑code draait overal. Zorg er alleen voor dat je de juiste JRE geïnstalleerd hebt. + +## Conclusion + +Je hebt zojuist geleerd **hoe je HTML naar WebP kunt converteren** met Aspose.HTML voor Java, van dependency‑setup tot het fijn afstemmen van compressie en het verifiëren van het resultaat. Met deze kennis kun je **HTML opslaan als WebP**, **HTML renderen als WebP**, en **WebP genereren vanuit HTML** on‑the‑fly — perfect voor dynamische afbeeldings‑pipelines, e‑mail‑nieuwsbrieven, of elke situatie waarin lichte visuals belangrijk zijn. + +Wat nu? Experimenteer met verschillende `quality`‑waarden, verken de `Lossless`‑modus, of integreer deze converter in een Spring Boot REST‑endpoint zodat je webservice WebP‑afbeeldingen op aanvraag kan teruggeven. Je kunt ook een batch‑verwerking van een map met HTML‑bestanden opzetten, of dit combineren met headless Chrome voor SVG‑naar‑WebP‑conversies. + +Heb je meer vragen over **hoe je HTML kunt converteren** in andere talen, of heb je hulp nodig bij het oplossen van een specifiek edge‑case? Laat een reactie achter hieronder, en happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/dutch/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..c57566690 --- /dev/null +++ b/html/dutch/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Maak een multipage TIFF van SVG in Java met Aspose.HTML. Leer hoe je + SVG naar TIFF converteert, een SVG‑document in Java laadt en multipage TIFF‑bestanden + maakt. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: nl +og_description: Maak een multipagina‑tiff van SVG in Java. Deze tutorial laat zien + hoe je een SVG‑document laadt, TIFF‑opties configureert en een verliesvrije multipagina‑TIFF + genereert. +og_title: Maak een multipage-tiff van SVG in Java – Complete gids +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Maak een multipagina‑tiff van SVG in Java – Stapsgewijze handleiding +url: /nl/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Maak multipage tiff van SVG in Java – Stapsgewijze gids + +Heb je ooit moeten **create multipage tiff** van een SVG, maar wist je niet waar te beginnen? Je bent niet alleen—veel ontwikkelaars lopen tegen dit exacte obstakel aan wanneer ze een afdrukbaar, verliesloos document nodig hebben dat zich over meerdere pagina's uitstrekt. In deze gids lopen we een complete, kant‑klaar oplossing door die laat zien **how to convert SVG to TIFF**, laadt het SVG‑document in Java, en configureert de output zodat je **create multipage tiff** bestanden kunt maken met LZW‑compressie. + +We behandelen alles, van het instellen van de Aspose.HTML‑bibliotheek tot het afhandelen van randgevallen zoals grote SVG‑assets. Aan het einde van de tutorial heb je een enkele Java‑klasse die je in elk project kunt plaatsen en direct multi‑page TIFFs kunt genereren. + +## Wat je nodig hebt + +- **Java Development Kit (JDK) 8+** – de code gebruikt standaard Java‑API's. +- **Aspose.HTML for Java** (versie 23.5 of later) – dit is de enige third‑party afhankelijkheid. +- Een **sample SVG file** (elke vectorafbeelding volstaat; we noemen het `input.svg`). +- Je favoriete IDE of een eenvoudige teksteditor en een terminal. + +Er zijn geen extra build‑tools nodig; het voorbeeld compileert met `javac` en draait met `java`. Als je Maven of Gradle verkiest, voeg dan gewoon de Aspose.HTML‑JAR toe aan de classpath van je project. + +![Create multipage tiff example](create-multipage-tiff.png){alt="create multipage tiff output"} + +## Stap 1 – Laad het SVG‑document (load svg document java) + +Het eerste dat we moeten doen is de SVG lezen in een `HTMLDocument`‑object. Aspose.HTML behandelt SVG‑bestanden als HTML‑documenten, wat ons een eenduidige API voor conversie geeft. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Why this matters:** Het laden van de SVG als een `HTMLDocument` geeft ons toegang tot de volledige renderengine, waardoor alle stijlen, lettertypen en ingesloten afbeeldingen correct worden geïnterpreteerd vóór de conversie. Het overslaan van deze stap en proberen ruwe bytes direct aan de converter te voeren leidt vaak tot ontbrekende elementen of onjuiste kleuren. + +## Stap 2 – Configureer TIFF‑opties (how to create multipage tiff) + +Vervolgens stellen we `TiffConversionOptions` in. Dit object regelt alles van paginalay-out tot compressie. Voor een echte multipage‑output schakelen we `setMultipage(true)` in, en kiezen we **LZW**‑compressie omdat deze verliesloos en breed ondersteund is. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Why this matters:** Als je `setMultipage(true)` weglaat, genereert de bibliotheek een single‑page TIFF, waarbij eventuele extra pagina's die uit de SVG kunnen worden afgeleid (bijvoorbeeld wanneer de SVG meerdere ``‑root‑elementen bevat) worden weggegooid. LZW houdt de bestandsgrootte redelijk zonder in te boeten op beeldkwaliteit—perfect voor archiverings‑ of afdruk‑pijplijnen. + +## Stap 3 – Voer de conversie uit (how to convert svg to tiff) + +Nu gebeurt het zware werk. De statische `Converter.convertSVG`‑methode neemt het geladen document, het bestemmingspad, en de opties die we zojuist hebben gedefinieerd. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Why this matters:** Het gebruik van de statische `convertSVG`‑aanroep is de meest eenvoudige manier om de conversie te starten. Intern rasteriseert Aspose.HTML de vectordata met een standaard van 96 dpi; je kunt de DPI aanpassen via `tiffOptions.setResolution(...)` als hogere kwaliteit vereist is. + +## Stap 4 – Verifieer het resultaat + +Nadat de conversie is voltooid, is het een goed idee om te bevestigen dat het bestand bestaat en het verwachte aantal pagina's bevat. Een snelle controle kan worden gedaan met elke afbeeldingsviewer die multipage TIFF ondersteunt (bijv. IrfanView, XnView, of zelfs Java’s `ImageIO`). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Voer het programma uit: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Je zou het console‑bericht moeten zien dat succes bevestigt, en het openen van `output.tiff` zal één pagina per SVG‑root‑element tonen (of één pagina als de SVG slechts één canvas heeft). + +## Veelvoorkomende valkuilen & Pro‑tips + +| Issue | Why it Happens | How to Fix It | +|-------|----------------|---------------| +| **Missing fonts** | SVG verwijst naar systeemlettertypen die niet op de server geïnstalleerd zijn. | Embed fonts in de SVG of gebruik `FontSettings` in Aspose.HTML om een aangepaste lettertype‑map te leveren. | +| **Large file size** | Rasterisatie met hoge resolutie kan de TIFF‑grootte enorm doen toenemen. | Verlaag de DPI via `tiffOptions.setResolution(150)` of schakel over naar `Compression.NONE` alleen voor debugging. | +| **Multiple pages not generated** | SVG bevat slechts één ``‑element. | Splits je bron in afzonderlijke SVG‑bestanden of wikkel elke logische pagina in een ``‑tag vóór conversie. | +| **Unsupported SVG features** | Bepaalde filters of animaties worden niet gerenderd. | Vereenvoudig de SVG of pre‑process deze met een tool zoals Inkscape om filters te flatten. | + +**Pro tip:** Als je een specifieke paginavolgorde nodig hebt, hernoem je SVG‑bestanden naar `page1.svg`, `page2.svg`, enz., en loop je erover, waarbij je elk conversieresultaat aan dezelfde TIFF toevoegt met `tiffOptions.setMultipage(true)` elke keer. + +## Volledig werkend voorbeeld + +Hieronder staat de volledige, zelfstandige Java‑klasse die je kunt copy‑paste in een bestand genaamd `SvgToMultipageTiff.java`. Het bevat import‑statements, commentaren, en foutafhandeling voor productiegebruik. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Het uitvoeren van de code produceert een TIFF waarbij elke SVG‑root een aparte pagina wordt—precies wat je nodig hebt wanneer je **create multipage tiff** bestanden wilt voor afdrukken of archivering. + +## Conclusie + +We hebben je net laten zien hoe je **create multipage tiff** van een SVG kunt maken met Java en Aspose.HTML. De tutorial behandelde het laden van de SVG (`load svg document java`), het configureren van de conversie‑opties, het uitvoeren van de conversie (`how to convert svg to tiff`), en het verifiëren van de output. Met de volledige broncode kun je de oplossing aanpassen om tientallen SVG’s in batch te verwerken, DPI‑instellingen aan te passen, of de logica te integreren in een grotere document‑generatie‑pipeline. + +Klaar voor de volgende uitdaging? Probeer een map met SVG’s om te zetten naar één multipage TIFF, experimenteer met verschillende compressieschema's, of verken PDF‑output door `TiffConversionOptions` te vervangen door `PdfConversionOptions`. Dezelfde principes gelden, zodat je dit patroon gemakkelijk kunt uitbreiden naar andere formaten. + +Heb je vragen of ben je een vreemd SVG‑randgeval tegengekomen? Laat een reactie achter hieronder, en happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/html5-canvas-rendering/_index.md b/html/dutch/java/html5-canvas-rendering/_index.md index aec5f89fd..41f8e3c13 100644 --- a/html/dutch/java/html5-canvas-rendering/_index.md +++ b/html/dutch/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Laten we het eerst hebben over het HTML5 Canvas-element. Zie het als een leeg ca Maak en render HTML5 Canvas met Aspose.HTML voor Java. Leer stap voor stap hoe u kunt tekenen, stylen en exporteren naar PDF met behulp van deze krachtige Java-bibliotheek. ### [HTML5 Canvas onder de knie krijgen met Aspose.HTML voor Java](./html5-canvas/) Leer hoe u HTML5 Canvas naar PDF kunt maken en converteren met Aspose.HTML voor Java. Deze gids is perfect voor ontwikkelaars die hun webprojecten willen verbeteren. +### [Hoe iPhone Emuleren – Complete Gids met Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Leer hoe u een iPhone-omgeving kunt simuleren met Aspose.HTML en de rendering naar PDF exporteert. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/dutch/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/dutch/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..1e33e5a1d --- /dev/null +++ b/html/dutch/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Leer hoe je een iPhone kunt emuleren in Java met Aspose.HTML. Inclusief + stappen om een aangepaste user‑agent in te stellen en de device‑pixel‑ratio te configureren + voor nauwkeurige mobiele weergave. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: nl +og_description: Hoe een iPhone emuleren in Java? Deze tutorial laat zien hoe je een + aangepaste user agent en device pixel ratio instelt met Aspose.HTML, waardoor pixel‑perfecte + mobiele pagina’s worden geleverd. +og_title: Hoe een iPhone emuleren – Stapsgewijze Aspose.HTML‑gids +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Hoe een iPhone te emuleren – Complete gids met Aspose.HTML +url: /nl/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hoe een iPhone emuleren – Complete gids met Aspose.HTML + +Heb je je ooit afgevraagd **hoe je een iPhone kunt emuleren** bij het lokaal testen van een webpagina? Misschien ben je een responsieve lay-out aan het debuggen en voldoet de desktopbrowser gewoon niet. Het goede nieuws is dat je geen fysiek apparaat nodig hebt—Aspose.HTML’s `DocumentSandbox` laat je het scherm, de user‑agent en de device‑pixel‑ratio (DPR) van een iPhone nabootsen met een paar regels Java. + +In deze tutorial lopen we de exacte stappen door om een **aangepaste user agent** in te stellen, de **device pixel ratio** te configureren en te verifiëren dat alles naar verwachting werkt. Aan het einde heb je een herbruikbare sandbox die pagina's rendert alsof het een iPhone 8 is, en begrijp je waarom elke instelling belangrijk is. + +## Wat je zult bereiken + +- Maak een `Screen`‑object dat de afmetingen en DPR van een iPhone weerspiegelt. +- Pas een **aangepaste user agent**‑string toe zodat servers denken dat het verzoek afkomstig is van Safari op iOS. +- Bouw een `DocumentSandbox` die het scherm en de user‑agent met elkaar verbindt. +- Voer een `HTMLDocument` uit binnen de sandbox en zie de console‑output die de configuratie bevestigt. + +Er zijn geen externe bibliotheken nodig naast Aspose.HTML, en de code draait in elke Java 17+ omgeving. + +--- + +![screenshot van hoe iPhone te emuleren](https://example.com/images/iphone-emulation.png "hoe iPhone te emuleren met Aspose.HTML sandbox") + +## Hoe een iPhone te emuleren met Aspose.HTML Sandbox + +Het eerste wat we nodig hebben is een `Screen` die de fysieke afmetingen *en* de pixeldichtheid van de iPhone weergeeft. Dit is de kern van **hoe je een iPhone nauwkeurig kunt emuleren**. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Waarom dit belangrijk is:** +- De breedte = 375 px en hoogte = 667 px zijn de CSS‑pixelafmetingen die je in Chrome DevTools ziet wanneer je een iPhone 8 selecteert. +- Het instellen van de DPR op 2 vertelt de renderengine om elke CSS‑pixel als twee fysieke pixels te behandelen, waardoor je scherpe tekst en afbeeldingen krijgt—precies wat een echt apparaat doet. + +> *Pro tip:* Als je een nieuwere iPhone wilt emuleren (zoals de iPhone 13), wijzig dan gewoon de getallen naar 390 × 844 en DPR = 3. + +## Een aangepaste User Agent instellen (set custom user agent) + +Vervolgens moeten we een **aangepaste user agent** instellen zodat de server de mobiel‑specifieke HTML/CSS levert. Zonder dit denken veel sites nog steeds dat je op een desktop zit. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Hoe dit werkt:** +- De `User-Agent`‑header is de handshake die browsers gebruiken om zichzelf aan te kondigen. +- Door de exacte string te geven die Safari op iOS 16 verzendt, zorg je ervoor dat de server de mobiel‑geoptimaliseerde assets terugstuurt (denk aan responsieve afbeeldingen, adaptieve scripts, enz.). + +Als je ooit een **user-agent wilt instellen** voor een ander apparaat, vervang dan gewoon de string door de juiste waarde—Google Chrome, Firefox, of zelfs een aangepaste bot. + +## Device Pixel Ratio configureren (set device pixel ratio) + +Nu stellen we daadwerkelijk de **device pixel ratio** in binnen de sandbox. Dit is de stap die direct antwoord geeft op “**hoe je dpr instelt**” voor een gesimuleerde omgeving. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Uitleg:** +- Het `Builder`‑patroon stelt je in staat om zowel het scherm (dat de DPR bevat) als de user‑agent vloeiend toe te voegen. +- Wanneer de sandbox een `HTMLDocument` rendert, doet hij alsof hij draait op een apparaat met die exacte pixeldichtheid. + +> *Waarom dit belangrijk is:* Sommige CSS‑media‑queries gebruiken `device-pixel-ratio` (bijv. `@media (-webkit-min-device-pixel-ratio: 2)`). Als je de DPR niet instelt, worden die regels nooit geactiveerd en mis je assets met hoge resolutie. + +## De sandboxconfiguratie verifiëren (how to set user-agent) + +Laten we de sandbox aan het werk zetten. Het volgende fragment maakt een `HTMLDocument`, laadt een pagina, en print een bevestiging dat de sandbox actief is. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Verwachte console‑output** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Als je het programma uitvoert en die regel ziet, heb je succesvol **een iPhone geëmuleerd** met de juiste DPR en user‑agent. Open de pagina in een echte browser en inspecteer de viewport‑afmetingen—je zult merken dat ze overeenkomen met de iPhone‑waarden die we hebben ingesteld. + +## Veelvoorkomende valkuilen en hoe je DPR correct instelt (how to set dpr) + +Zelfs met de juiste code kunnen een paar valkuilen je laten struikelen: + +| Probleem | Waarom het gebeurt | Oplossing | +|----------|--------------------|-----------| +| **DPR blijft op 1** | Je hebt een `Screen` doorgegeven zonder het derde argument (DPR). | Gebruik altijd `new Screen(width, height, dpr)`. | +| **User‑Agent genegeerd** | De sandbox was niet gekoppeld aan het `HTMLDocument`. | Geef de `documentSandbox` door als tweede argument aan de `HTMLDocument`‑constructor. | +| **Verkeerde afmetingen** | Gebruik van apparaatpixels in plaats van CSS‑pixels. | Onthoud: breedte/hoogte zijn **CSS‑pixels**, niet hardware‑pixels. | +| **Server stuurt nog steeds desktop‑CSS** | Sommige sites gebruiken JavaScript om apparaten te detecteren, niet alleen de header. | Overweeg ook een viewport‑meta‑tag in te voegen indien nodig. | + +Als je deze in gedachten houdt, zul je zelden in een situatie terechtkomen waarin de emulatie niet naar verwachting werkt. + +## De sandbox uitbreiden – Volgende stappen + +Nu je weet **hoe je een aangepaste user agent instelt** en **hoe je dpr instelt**, kun je verder experimenteren: + +- **Verander de schermgrootte** om tablets of grotere telefoons te emuleren. +- **Vervang de user‑agent** om Chrome op Android te testen (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Voeg cookies of headers toe** via de `setHeaders`‑methode van de sandbox voor geauthenticeerde tests. +- **Maak een screenshot** met `HTMLDocument.renderToFile("output.png")` om visuele verschillen automatisch te vergelijken. + +Deze uitbreidingen stellen je in staat om een volledig uitgeruste testomgeving te bouwen zonder je IDE te verlaten. + +--- + +## Conclusie + +We hebben **hoe je een iPhone kunt emuleren** behandeld met behulp van Aspose.HTML’s `DocumentSandbox`, en laten precies zien **hoe je een aangepaste user agent instelt**, **hoe je de device pixel ratio instelt**, en zelfs de subtiele verschillen tussen “**hoe je user-agent instelt**” en “**hoe je dpr instelt**”. Het complete, uitvoerbare voorbeeld toont elk onderdeel op één plek, zodat je kunt copy‑pasten, aanpassen, en direct mobiele lay-outs kunt testen. + +Probeer het—wissel de schermafmetingen, speel met verschillende user‑agents, en zie hoe je pagina's reageren. Zodra je deze instellingen onder de knie hebt, wordt het debuggen van responsieve ontwerpen een eitje, en bespaar je talloze uren die je anders aan het jagen op bugs op echte apparaten zou besteden. + +Heb je vragen of wil je je eigen variaties delen? Laat een reactie achter hieronder, en veel plezier met emuleren! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/advanced-usage/_index.md b/html/english/java/advanced-usage/_index.md index 2dce9c9cf..f98278e7a 100644 --- a/html/english/java/advanced-usage/_index.md +++ b/html/english/java/advanced-usage/_index.md @@ -126,6 +126,8 @@ Learn how to adjust PDF page size with Aspose.HTML for Java. Create high-quality Learn how to adjust XPS page size with Aspose.HTML for Java. Control the output dimensions of your XPS documents easily. ### [How to Run JavaScript in Java – Complete Guide](./how-to-run-javascript-in-java-complete-guide/) Learn how to execute JavaScript code within Java applications using Aspose.HTML, covering setup, examples, and best practices. +### [top level await example – Using await delay in JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Learn how to use top‑level await with an await‑delay function in JavaScript, enabling asynchronous code without wrapping in an async function. --- diff --git a/html/english/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/english/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..dea209bbd --- /dev/null +++ b/html/english/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: top level await example showing await delay javascript, increment counter + class, and public class fields javascript in a live demo. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: en +og_description: top level await example that demonstrates await delay javascript, + increment counter class, and public class fields javascript in a concise tutorial. +og_title: top level await example – Using await delay in JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: top level await example – Using await delay in JavaScript +url: /java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await example – Using await delay in JavaScript + +Ever wondered how to pause module execution without wrapping everything in an async IIFE? That's exactly what a **top level await example** lets you do. In this tutorial we’ll walk through a tiny web page that uses `await delay javascript` to defer work, then creates an `increment counter class` that leverages **public class fields javascript**. By the end you’ll have a complete, copy‑and‑paste snippet that runs in any modern browser. + +We’ll cover everything from defining a class with a public field to wiring a simple promise‑based delay helper. No external libraries, no build step—just plain HTML, a ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Expected Console Output + +``` +Counter class initialized +Final count: 1 +``` + +If you open the page in DevTools, you should see the static‑block message appear **before** the delay finishes, confirming that the class was evaluated first. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +You might wonder why we didn’t write: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Both approaches work, but **public class fields javascript** give you a cleaner, more declarative syntax. The field is defined once, not inside every constructor call, which can be easier to read when the class grows larger. Additionally, static blocks can’t be placed inside a constructor, so separating initialization logic becomes more natural. + +## Step 6 – Adapting the Example for Real‑World Apps + +In production you’ll often need more than a single counter. Here are a few quick ideas: + +- **Multiple counters:** Store them in a `Map` keyed by identifier. +- **Persisted state:** Replace `console.log` with `localStorage` writes. +- **Async initialization:** Use the static block to fetch configuration from a server before any instances are created. + +All of these patterns still benefit from top‑level await, because you can fetch data once at module load time and guarantee it’s ready for every consumer. + +## Frequently Asked Questions + +**Q: Does top‑level await block other modules?** +A: No. Each module runs independently. Only the module that contains the await is paused; other modules continue loading in parallel. + +**Q: What if the delay promise rejects?** +A: An unhandled rejection will abort the module evaluation and surface as an error in the console. Wrap the await in a `try…catch` if you need graceful fallback. + +**Q: Is the `static` keyword required?** +A: Not for the counter itself, but the static block is a handy way to demonstrate that code runs *once* at load time—great for logging or feature‑detection. + +## Conclusion + +You’ve just built a **top level await example** that showcases `await delay javascript`, an **increment counter class**, and the power of **public class fields javascript**. The complete, runnable snippet lives above, and the console output proves that the static block fires before the delayed code runs. + +From here you can experiment with more complex async flows, swap the delay for a real API call, or expand the class with additional methods. Remember, modern JavaScript lets you treat modules as first‑class async entities—no extra wrappers needed. + +Happy coding, and feel free to drop your variations in the comments. If you found this guide useful, share it with a teammate who’s still wrestling with async patterns! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-other-formats/_index.md b/html/english/java/conversion-html-to-other-formats/_index.md index f3a76a424..38df319d1 100644 --- a/html/english/java/conversion-html-to-other-formats/_index.md +++ b/html/english/java/conversion-html-to-other-formats/_index.md @@ -85,18 +85,24 @@ In conclusion, mastering **html to pdf java** and the broader set of conversions Learn how to convert HTML to PDF in Java using Aspose.HTML. Create high-quality PDFs from your HTML content effortlessly. ### [Convert HTML to PDF in Java – Step‑by‑Step Guide with Page Size Settings](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Step-by-step guide to convert HTML to PDF in Java, including how to set custom page sizes using Aspose.HTML. +### [Create PDF Custom Size – Convert HTML to PDF with Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Learn how to set custom page dimensions when converting HTML to PDF using Aspose.HTML for Java. ### [Converting HTML to MHTML](./convert-html-to-mhtml/) Effortlessly convert HTML to MHTML using Aspose.HTML for Java. Follow our step-by-step guide for efficient HTML-to-MHTML conversion. ### [Converting HTML to XPS](./convert-html-to-xps/) Learn how to effortlessly convert HTML to XPS using Aspose.HTML for Java. Create cross-platform documents with ease. ### [Converting Markdown to HTML](./convert-markdown-to-html/) Convert Markdown to HTML in Java seamlessly with Aspose.HTML for Java. Follow our step-by-step guide to streamline your document conversion needs. +### [Convert HTML to Markdown in Java – Preserve Original Formatting](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Convert HTML to Markdown in Java while preserving the original formatting using Aspose.HTML. ### [Converting SVG to Image](./convert-svg-to-image/) Learn how to convert SVG to images in Java with Aspose.HTML. Comprehensive guide for high-quality output. ### [Converting SVG to PDF](./convert-svg-to-pdf/) Convert SVG to PDF in Java with Aspose.HTML. A seamless solution for high-quality document conversion. ### [Converting SVG to XPS](./convert-svg-to-xps/) Learn how to convert SVG to XPS with Aspose.HTML for Java. Simple, step-by-step guide for seamless conversions. +### [Create PDF from HTML in Java – Parallel Batch Conversion Guide](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Learn how to convert multiple HTML files to PDF simultaneously in Java using Aspose.HTML for efficient parallel batch processing. ## Frequently Asked Questions diff --git a/html/english/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/english/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..943031494 --- /dev/null +++ b/html/english/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Convert HTML to markdown and generate markdown file while preserving + original formatting using Aspose HTML conversion in Java. Learn step‑by‑step. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: en +og_description: Convert HTML to markdown quickly, generate markdown file, and keep + original formatting using Aspose HTML conversion for Java. +og_title: Convert HTML to Markdown in Java – Preserve Formatting +tags: +- Aspose +- Java +- Markdown +title: Convert HTML to Markdown in Java – Preserve Original Formatting +url: /java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to Markdown in Java – Preserve Original Formatting + +Ever needed to **convert HTML to markdown** but worried you'd lose the spacing, tables, or inline tags? You're not the only one. Many developers hit this snag when they try to move content from a web page into a clean, version‑control‑friendly format. The good news? With a few lines of Java and Aspose HTML, you can **generate markdown file** that looks exactly like the source, whitespace and all. + +In this guide we’ll walk through the whole process: loading a complex HTML file, configuring the conversion so it **preserve original formatting**, and finally writing the output to `preserved.md`. By the end you’ll have a ready‑to‑run snippet, understand *why* each setting matters, and know how to adapt the code for edge cases like custom CSS or embedded scripts. + +## What You’ll Need + +- Java 17 (or any recent JDK) – the API works with Java 8+ but newer versions give you better performance. +- Aspose HTML for Java library (version 23.11 or later). You can grab it from Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- A sample HTML file (`complex.html`) that contains headings, tables, code blocks, and maybe some inline `` styling. +- A tiny bit of patience and a willingness to experiment. + +That’s it. No external tools, no command‑line hacks—just pure Java code. + +## Step 1: Load the Source HTML Document + +The first thing we do is create an `HTMLDocument` instance that points to your source file. Aspose HTML treats the file as a DOM, which means you can inspect or modify it before conversion if you ever need to. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Why this matters:** Loading the document this way ensures that all linked resources (stylesheets, images) are resolved relative to the file location. If you skip this step and feed a raw string, you might lose external CSS that influences spacing—exactly the kind of thing you want to **preserve original formatting** for. + +## Step 2: Configure Markdown Conversion Options + +Aspose HTML gives you a `MarkdownConversionOptions` class. The key property for us is `setPreserveOriginalFormatting(true)`. When enabled, the converter keeps line breaks, indentation, and even raw HTML snippets that markdown can’t represent natively. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro tip:** If you later discover that some inline styles are being stripped, you can also call `markdownOptions.setIncludeHtml(true)` to force raw HTML blocks into the markdown output. + +## Step 3: Perform the Conversion + +Now we hand the `HTMLDocument`, the target file path, and our options to the static `Converter.convertHTML` method. The method does all the heavy lifting behind the scenes. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +When the call finishes, you’ll find `preserved.md` next to your source file. Open it in any editor—notice how the original line breaks and table alignment are intact. + +## Step 4: Verify the Result (Optional but Recommended) + +A quick sanity check saves you from subtle bugs later. You can read the file back into Java and print the first few lines, or just open it in VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +You should see something like: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +The `` tag is still present because markdown’s native table syntax couldn’t capture the exact styling—thanks to `preserve original formatting`. + +## Step 5: Wrap It All Up – Full Runnable Example + +Below is the complete, ready‑to‑run class. Replace `YOUR_DIRECTORY` with the actual path on your machine. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Run the program with `mvn exec:java` or your favorite IDE, and you’ll have a **generate markdown file** that mirrors the original HTML layout. + +## Common Questions & Edge Cases + +### Does this work with external CSS files? + +Yes. As long as the CSS files are reachable via relative paths, Aspose HTML loads them automatically. If you’re pulling HTML from a remote URL, you may need to set a custom `ResourceLoadingOptions` object to allow network access. + +### What if I don’t want any raw HTML in the markdown? + +Simply switch the option: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +The converter will then try to translate everything into pure markdown syntax, potentially losing some layout fidelity. + +### Can I convert a string instead of a file? + +Absolutely. Use the constructor that accepts a `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Then pass `doc` to `Converter.convertHTML` as before. + +### How does this differ from other libraries like Flexmark or pandoc? + +Most open‑source tools treat HTML as plain text and strip whitespace aggressively. Aspose HTML’s `preserveOriginalFormatting` flag is a **proprietary feature** that respects the original source’s whitespace, line breaks, and even keeps unsupported tags as raw HTML blocks. That’s why this tutorial emphasizes **aspose html conversion** for Java developers who need exact fidelity. + +## Tips for Production Use + +- **Batch processing:** Wrap the conversion logic in a loop to handle multiple HTML files in one go. +- **Error handling:** Catch `IOException` and `com.aspose.html.exceptions.AssertionFailedException` to surface missing resources. +- **Performance:** Reuse a single `HTMLDocument` instance when converting fragments of a large site; the library caches parsed CSS. + +## Conclusion + +We’ve just shown you how to **convert HTML to markdown** in Java while ensuring the output **preserve original formatting**. The short, self‑contained snippet demonstrates the entire workflow—from loading the HTML document to configuring `MarkdownConversionOptions`, performing the conversion, and verifying the result. With Aspose HTML’s robust API, you can now **generate markdown file** programmatically, whether you’re building a static‑site generator, a documentation pipeline, or a content‑migration tool. + +Next, you might explore: + +- Using **html to markdown java** for bulk migrations across a website. +- Tweaking the conversion options to output GitHub‑flavored markdown tables. +- Combining this approach with a CI/CD step that automatically updates your docs whenever the source HTML changes. + +Feel free to experiment, and drop a comment if you hit any snags. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/english/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..2e44aa34e --- /dev/null +++ b/html/english/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,194 @@ +--- +category: general +date: 2026-03-26 +description: Create PDF custom size from HTML using Aspose.HTML for Java. Learn how + to convert HTML to PDF and set PDF page size in just a few steps. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: en +og_description: Create PDF custom size from HTML with Aspose. This guide shows you + how to convert HTML to PDF, change PDF page size, and set PDF page size effortlessly. +og_title: Create PDF Custom Size – Quick Guide to Convert HTML to PDF +tags: +- aspose +- java +- pdf +- html +title: Create PDF Custom Size – Convert HTML to PDF with Aspose +url: /java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create PDF Custom Size – Convert HTML to PDF with Aspose + +Ever needed to **create PDF custom size** from an HTML file? In this tutorial we'll show you how to **convert HTML to PDF** and set the PDF page size using Aspose.HTML for Java. + +If you’re building invoices, reports, or e‑books, getting the exact page dimensions matters—otherwise your layout looks off‑center or gets cut off. + +We'll walk through every step, from loading the source HTML to tweaking margins, and finish with a ready‑to‑use PDF. No vague references, just a complete, runnable example you can copy‑paste today. + +## What You’ll Need + +- **Java 17** (or any recent JDK). +- **Aspose.HTML for Java** JARs – you can grab the latest version from the Maven repository or the Aspose website. +- A simple `input.html` file placed in a folder you control. +- An IDE or text editor of your choice; I usually code in IntelliJ IDEA, but Eclipse works just fine. + +Having these prerequisites means you won’t hit “class not found” errors halfway through. + +Now, let’s dive in. + +![Create PDF custom size example](/images/create-pdf-custom-size.png "Screenshot showing a PDF generated with custom page size and margins – create pdf custom size") + +## Create PDF Custom Size – Core Steps + +Below is the full Java program you’ll end up with. Feel free to copy it into a file called `ConvertHtmlToPdfCustomPage.java` and run it after you’ve added the Aspose dependencies to your project. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Step 1 – Convert HTML to PDF: Loading the Document + +The first thing we do is **load the HTML** we want to turn into a PDF. +`HTMLDocument` reads the file, resolves relative links, and builds a DOM that Aspose can render. + +> **Why this matters:** If the HTML references CSS or images, Aspose will fetch them relative to the file path. Using an absolute path (`YOUR_DIRECTORY/input.html`) avoids “file not found” surprises. + +### Step 2 – Change PDF Page Size: Configuring Options + +Here we create a `PdfConversionOptions` object. +- `setPageSize(PageSize.A4)` tells Aspose to use the standard A4 dimensions (210 × 297 mm). +- `setPageOrientation(...)` flips the page if you need landscape. +- `setMargins(new Margin(20, 20, 20, 20))` gives a 20‑point margin on every side. + +You can replace `PageSize.A4` with `PageSize.LETTER` or even a **custom size** by passing a `SizeF` object, e.g.: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Pro tip:** One point equals 1/72 inch. If you think in millimeters, multiply by 2.83465 to get points. + +### Step 3 – Generate PDF from HTML: Running the Conversion + +`Converter.convertHTML` does the heavy lifting. It takes the loaded `HTMLDocument`, the output path, and the options we just configured. + +If you want to **set PDF page size** dynamically based on content, you could calculate the required dimensions before this step and adjust `pdfOptions` accordingly. + +### Step 4 – Verify the Result + +The `System.out.println` line is optional, but it gives quick feedback when you run the program from a console. After execution, open `custom_page.pdf` – you should see an A4 portrait PDF with uniform 20‑point margins, exactly as we specified. + +## Convert HTML to PDF – Common Variations + +### Using a Stream Instead of a File Path + +Sometimes you don’t have a physical file; maybe the HTML comes from a database or an API. In that case, wrap the string in a `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +The second argument is the base URL for resolving relative resources. + +### Changing the Page Orientation + +If your report is wide, switch to landscape: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Fine‑Tuning Margins + +Margins accept floating‑point values, so you can set 0.5 pt for a hair‑thin border: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Handling Large HTML Files + +For massive documents, consider enabling **memory‑efficient streaming**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +This tells Aspose to write intermediate data to temporary files instead of keeping everything in RAM. + +## Set PDF Page Size – Edge Cases & Pitfalls + +- **Missing Fonts:** If your HTML uses a custom font not installed on the server, the PDF will fall back to a default. Embed the font with `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Image Scaling:** High‑resolution images can bloat the PDF. Use `pdfOptions.setImageResolution(150);` to downscale while preserving quality. +- **CSS Compatibility:** Not all CSS properties are fully supported. Stick to standard layout techniques (flexbox works, but grid may have quirks). +- **Path Permissions:** Ensure the process has write access to `YOUR_DIRECTORY`. Otherwise, `IOException` will be thrown. + +## Expected Output + +Running the program produces a PDF that looks like this (conceptual illustration): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Page size: **A4** (210 × 297 mm). +- Orientation: **Portrait**. +- Margins: **20 pt** on each side. + +Open the file with any PDF viewer (Adobe Reader, Chrome, etc.) to confirm. + +## Wrap‑Up + +You now know how to **create PDF custom size** from an HTML source using Aspose.HTML for Java. The tutorial covered the entire pipeline: **convert HTML to PDF**, **change PDF page size**, **set PDF page size**, and **generate PDF from HTML** with custom margins. + +Feel free to experiment—swap `PageSize.LETTER` for legal size, tweak margins, or embed your own fonts. Next, you might explore **adding watermarks**, **encrypting the PDF**, or **batch‑processing multiple HTML files**. All of those topics build on the same core concepts we just covered. + +Got a question about a specific edge case? Drop a comment below, and I’ll help you troubleshoot. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/english/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..00ded5b37 --- /dev/null +++ b/html/english/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Create PDF from HTML quickly with a fixed thread pool. Learn batch HTML + to PDF and run parallel tasks in Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: en +og_description: Create PDF from HTML quickly with a fixed thread pool. Learn how to + batch HTML to PDF and run parallel tasks in Java. +og_title: Create PDF from HTML in Java – Parallel Batch Conversion Guide +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Create PDF from HTML in Java – Parallel Batch Conversion Guide +url: /java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create PDF from HTML in Java – Parallel Batch Conversion Guide + +Ever needed to **create PDF from HTML** but felt stuck watching a single‑threaded conversion crawl forever? You're not the only one. In many real‑world projects we receive dozens of HTML reports that must become PDFs by the end of the day, and doing them one by one just isn’t practical. + +That’s why this tutorial shows you **how to convert HTML to PDF** using a **fixed thread pool**, letting you **batch HTML to PDF** and **run parallel tasks** without breaking a sweat. By the end you’ll have a complete, ready‑to‑run program that turns a folder of HTML files into PDFs in a fraction of the time. + +## What You’ll Learn + +In the next few sections we’ll cover everything you need to know: + +* The exact Maven/Gradle dependency for Aspose.HTML (the library that does the heavy lifting). +* Why a **fixed thread pool** is the sweet spot for CPU‑bound conversion work. +* How to list your source files so the process can scale to hundreds of documents. +* The exact code you paste into your IDE—no missing imports, no “TODO” comments. +* Tips for handling errors, tuning the pool size, and verifying the output. + +No prior knowledge of Aspose.HTML is required, just a basic Java setup and a willingness to experiment. Let’s get started. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Image alt text: create pdf from html – parallel conversion diagram* + +## Step 1: Prepare Your Project and Add Aspose.HTML + +First things first—your project needs the Aspose.HTML library. If you’re using Maven, drop this into your `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +For Gradle, it’s just: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Why Aspose.HTML? It’s a commercial library, but it offers a **convert html to pdf** API that handles CSS, JavaScript, and complex layouts out of the box. If you prefer an open‑source alternative you can swap the `Converter.convertHTML` call later, but the threading logic stays the same. + +> **Pro tip:** Keep the version number in sync with the official release notes; newer versions often improve rendering speed, which matters when you’re running many tasks in parallel. + +## Step 2: Build a Fixed Thread Pool for Parallel Conversion + +When you have a batch of files, you don’t want to spawn an unbounded number of threads—your OS will start thrashing. A **fixed thread pool** gives you a predictable amount of concurrency while keeping memory usage under control. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Why four? On a typical 8‑core machine, half the cores can stay free for I/O and the OS. You can experiment: `Runtime.getRuntime().availableProcessors()` returns the core count, and a rule‑of‑thumb is `cores / 2`. Remember, each conversion is CPU‑intensive, so more threads than cores usually hurts performance. + +## Step 3: Gather the HTML Files You Want to Convert + +The next piece of the puzzle is the **batch html to pdf** list. You can hard‑code an array (as in the example) or scan a directory. Here’s a flexible version that reads every `.html` file from a folder: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +This approach means you can drop new files into the folder and the program will pick them up automatically—perfect for a nightly batch job. + +## Step 4: Submit a Conversion Task for Each File (Run Parallel Tasks) + +Now the fun part: each file becomes a **Runnable** (or `Callable`) that the pool executes. The code below mirrors the original example but adds error handling and a small log message. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Why wrap the conversion in a try‑catch?** When you **run parallel tasks**, a single malformed HTML file could otherwise bring the whole executor down. By catching exceptions locally we ensure the rest of the batch keeps chugging along. + +## Step 5: Shut Down the Executor and Wait for Completion + +After all jobs are submitted, you must tell the pool to stop accepting new work and then wait until everything finishes. This guarantees that the JVM doesn’t exit prematurely. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +If you have a massive folder (thousands of files) you might increase the timeout or implement a progress monitor. The key is to **gracefully shut down**—this is the hallmark of production‑ready code. + +## Full Working Example + +Putting everything together, here’s a self‑contained class you can copy‑paste into `src/main/java` and run: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Expected output** (sample): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +If you open the generated `.pdf` files you’ll see the original HTML layout preserved—fonts, tables, and even basic JavaScript‑driven content rendered correctly. + +## Common Questions & Edge Cases + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-various-image-formats/_index.md b/html/english/java/conversion-html-to-various-image-formats/_index.md index 931d443cc..4f60001ae 100644 --- a/html/english/java/conversion-html-to-various-image-formats/_index.md +++ b/html/english/java/conversion-html-to-various-image-formats/_index.md @@ -98,6 +98,10 @@ Learn how to convert HTML to PNG images in Java with Aspose.HTML. A comprehensiv Learn how to easily convert HTML to TIFF using Aspose.HTML for Java. Step-by-step guide for efficient document handling. ### [Convert HTML to WebP – Complete Java Guide with Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Convert HTML to WebP using Aspose.HTML for Java. A comprehensive guide for efficient HTML‑to‑WebP image conversion. +### [Convert HTML to WebP – Complete Java Guide](./convert-html-to-webp-complete-java-guide/) +Convert HTML to WebP using Aspose.HTML for Java. A comprehensive guide for efficient HTML‑to‑WebP image conversion. +### [Create multipage tiff from SVG in Java – Step‑by‑Step Guide](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Learn how to generate a multipage TIFF from SVG files in Java using Aspose.HTML. Step-by-step instructions for efficient conversion. ## Frequently Asked Questions diff --git a/html/english/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/english/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..0e2a2131b --- /dev/null +++ b/html/english/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-26 +description: Convert HTML to WebP quickly with Aspose.HTML. Learn how to save HTML + as WebP, render HTML as WebP, and generate WebP from HTML in just a few steps. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: en +og_description: Convert HTML to WebP quickly with Aspose.HTML. This tutorial shows + how to render HTML as WebP and generate WebP from HTML in Java. +og_title: Convert HTML to WebP – Complete Java Guide +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Convert HTML to WebP – Complete Java Guide +url: /java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to WebP – Complete Java Guide + +Ever needed to **convert HTML to WebP** but weren’t sure which library could handle the job without a headache? You’re not alone. Many developers hit this snag when trying to serve lightweight images generated from dynamic pages. The good news? With Aspose.HTML for Java you can *save HTML as WebP* in a single method call, and the whole process is as smooth as butter. + +In this tutorial we’ll walk through everything you need to know: from setting up the Aspose.HTML dependency, to tweaking compression settings, and finally rendering the HTML document as a WebP file you can serve on the web. By the end you’ll be able to **render HTML as WebP**, **generate WebP from HTML**, and understand the “why” behind each configuration option. No external scripts, no command‑line gymnastics—just clean Java code. + +## Prerequisites + +Before we dive in, make sure you have: + +- Java 8 or newer installed (the library supports JDK 8+). +- Maven or Gradle for dependency management (we’ll show the Maven snippet). +- A simple HTML file (`input.html`) you want to turn into a WebP image. +- An IDE or text editor of your choice—IntelliJ IDEA works great, but any will do. + +Got all that? Great, let’s get started. + +## Step 1: Add Aspose.HTML to Your Project + +First up, you need the Aspose.HTML library on the classpath. If you’re using Maven, drop this into your `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +For Gradle, it looks like: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Why is this step crucial? Without the JAR, none of the `HTMLDocument`, `Converter`, or `WebpConversionOptions` classes exist, and the compiler will throw a `ClassNotFoundException`. Adding the dependency also pulls in the native binaries needed for WebP encoding, so you don’t have to hunt down external DLLs or `.so` files. + +> **Pro tip:** Keep your dependencies up‑to‑date. Newer Aspose releases often improve WebP compression algorithms and add support for newer HTML5 features. + +## Step 2: Load the Source HTML Document + +Now that the library is ready, we can load the HTML you want to convert. The `HTMLDocument` class parses the file and builds a DOM, which the converter later renders. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Notice the comment “Load the source HTML document” – it’s a reminder that you can also inject CSS or JavaScript before conversion if your page relies on dynamic styling. If you skip this step, the converter would have nothing to render, resulting in a blank image. + +## Step 3: Configure WebP Conversion Options + +Aspose.HTML gives you fine‑grained control over the output. For most cases, a **lossy** WebP with a quality setting around 85 strikes a good balance between visual fidelity and file size. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Why pick lossy? WebP’s lossy mode uses predictive coding, which can shrink files by 30‑50 % compared to PNG while preserving most visual detail. If you need pixel‑perfect results (e.g., for logos), switch `CompressionMode` to `Lossless` and bump `quality` to 100. + +## Step 4: Convert and Save the WebP Image + +With the document and options ready, the conversion itself is a one‑liner. The static `Converter.convertHTML` method does all the heavy lifting: it renders the DOM onto a bitmap, encodes it as WebP, and writes the file to disk. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +That’s it! After the program finishes, you’ll find `output.webp` sitting next to your source HTML. You can now serve it directly from a web server, embed it in a `` element, or use it in any context that supports WebP. + +## Step 5: Verify the Result (Optional but Recommended) + +It’s always a good idea to double‑check that the conversion succeeded and that the image looks as expected. You can open the WebP file in Chrome, Firefox, or any image viewer that supports the format. For a quick programmatic check, you might read the file size and dimensions: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +If the file is unexpectedly large or the dimensions are off, revisit **Step 3** and tweak `quality` or the source HTML’s viewport settings. Remember, WebP respects the CSS `width`/`height` of the root element, so a missing `` tag can cause surprising results. + +## Full Working Example + +Putting everything together, here’s the complete, ready‑to‑run Java class: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Save this file as `HtmlToWebp.java`, replace `YOUR_DIRECTORY` with the actual folder path, compile with `javac`, and run with `java HtmlToWebp`. You should see console output confirming the file size and dimensions, followed by the final success message. + +![convert html to webp example](/images/convert-html-to-webp.png "Screenshot of a WebP image generated from HTML – convert html to webp") + +## Common Questions & Edge Cases + +### What if my HTML references external resources (CSS, images)? + +Aspose.HTML automatically resolves relative URLs based on the location of `input.html`. Just make sure the resources are reachable from the file system or a web server. If you need to inject a custom base URL, use the overloaded `HTMLDocument` constructor that accepts a `URI` base. + +### Can I generate multiple WebP images from the same HTML (e.g., different viewport sizes)? + +Absolutely. Wrap the conversion logic in a loop, adjust `webpOptions.setWidth()` and `setHeight()` before each call, and give each output a unique filename. This is handy for responsive design where you serve different image sizes to mobile and desktop. + +### How do I switch to lossless compression? + +Replace the line: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +with: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless guarantees pixel‑perfect fidelity but yields larger files—use it only when necessary. + +### Does this work on Linux/macOS? + +Yes. The Aspose.HTML JAR bundles native binaries for Windows, Linux, and macOS, so the same Java code runs everywhere. Just ensure you have the appropriate JRE installed. + +## Conclusion + +You’ve just learned **how to convert HTML to WebP** using Aspose.HTML for Java, covering everything from dependency setup to fine‑tuning compression and verifying the result. With this knowledge you can **save HTML as WebP**, **render HTML as WebP**, and **generate WebP from HTML** on the fly—perfect for dynamic image pipelines, email newsletters, or any scenario where lightweight visuals matter. + +What’s next? Try experimenting with different `quality` values, explore the `Lossless` mode, or integrate this converter into a Spring Boot REST endpoint so your web service can return WebP images on demand. You might also look into batch‑processing a folder of HTML files, or combining this with headless Chrome for SVG‑to‑WebP conversions. + +Got more questions about **how to convert HTML** in other languages, or need help troubleshooting a specific edge case? Drop a comment below, and happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/english/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..d6f723099 --- /dev/null +++ b/html/english/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,167 @@ +--- +category: general +date: 2026-03-26 +description: Create multipage tiff from SVG in Java with Aspose.HTML. Learn how to + convert SVG to TIFF, load SVG document Java, and create multipage TIFF files. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: en +og_description: Create multipage tiff from SVG in Java. This tutorial shows how to + load an SVG document, configure TIFF options, and generate a lossless multipage + TIFF. +og_title: Create multipage tiff from SVG in Java – Complete Guide +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Create multipage tiff from SVG in Java – Step‑by‑Step Guide +url: /java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Create multipage tiff from SVG in Java – Step‑by‑Step Guide + +Ever needed to **create multipage tiff** from an SVG but weren't sure where to start? You're not alone—many developers hit this exact roadblock when they need a printable, loss‑less document that spans several pages. In this guide we’ll walk through a complete, ready‑to‑run solution that shows **how to convert SVG to TIFF**, load the SVG document in Java, and configure the output so you can **create multipage tiff** files with LZW compression. + +We'll cover everything from setting up the Aspose.HTML library to handling edge cases like large SVG assets. By the end of the tutorial you’ll have a single Java class that you can drop into any project and start generating multi‑page TIFFs instantly. + +## What You’ll Need + +- **Java Development Kit (JDK) 8+** – the code uses standard Java APIs. +- **Aspose.HTML for Java** (version 23.5 or later) – this is the only third‑party dependency. +- A **sample SVG file** (any vector graphic will do; we’ll call it `input.svg`). +- Your favorite IDE or a simple text editor and a terminal. + +No additional build tools are required; the example compiles with `javac` and runs with `java`. If you prefer Maven or Gradle, just add the Aspose.HTML JAR to your project’s classpath. + +![Create multipage tiff example](create-multipage-tiff.png){alt="create multipage tiff output"} + +## Step 1 – Load the SVG Document (load svg document java) + +The first thing we must do is read the SVG into an `HTMLDocument` object. Aspose.HTML treats SVG files as HTML documents, which gives us a unified API for conversion. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Why this matters:** Loading the SVG as an `HTMLDocument` gives us access to the full rendering engine, ensuring that all styles, fonts, and embedded images are interpreted correctly before conversion. Skipping this step and trying to feed raw bytes straight into the converter often results in missing elements or incorrect colors. + +## Step 2 – Configure TIFF Options (how to create multipage tiff) + +Next we set up `TiffConversionOptions`. This object controls everything from page layout to compression. For a true multipage output we enable `setMultipage(true)`, and we pick **LZW** compression because it’s lossless and widely supported. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Why this matters:** If you omit `setMultipage(true)`, the library will generate a single‑page TIFF, discarding any additional pages that might be inferred from the SVG (for example, when the SVG contains multiple `` root elements). LZW keeps the file size reasonable without sacrificing image fidelity—perfect for archival or printing pipelines. + +## Step 3 – Perform the Conversion (how to convert svg to tiff) + +Now the heavy lifting happens. The static `Converter.convertSVG` method takes the loaded document, the destination path, and the options we just defined. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Why this matters:** Using the static `convertSVG` call is the most straightforward way to trigger the conversion. Under the hood, Aspose.HTML rasterizes the vector data at a default 96 dpi; you can adjust DPI via `tiffOptions.setResolution(...)` if higher quality is required. + +## Step 4 – Verify the Result + +After the conversion finishes, it’s a good idea to confirm that the file exists and contains the expected number of pages. A quick check can be done with any image viewer that supports multipage TIFF (e.g., IrfanView, XnView, or even Java’s `ImageIO`). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Run the program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +You should see the console message confirming success, and opening `output.tiff` will reveal one page per SVG root element (or a single page if the SVG only has one canvas). + +## Common Pitfalls & Pro Tips + +| Issue | Why it Happens | How to Fix It | +|-------|----------------|---------------| +| **Missing fonts** | SVG references system fonts that aren’t installed on the server. | Embed fonts in the SVG or use `FontSettings` in Aspose.HTML to supply a custom font folder. | +| **Large file size** | High‑resolution rasterization can blow up TIFF size. | Lower the DPI via `tiffOptions.setResolution(150)` or switch to `Compression.NONE` only for debugging. | +| **Multiple pages not generated** | SVG contains only one `` element. | Split your source into separate SVG files or wrap each logical page in a `` tag before conversion. | +| **Unsupported SVG features** | Certain filters or animations aren’t rendered. | Simplify the SVG or pre‑process it with a tool like Inkscape to flatten filters. | + +**Pro tip:** If you need a specific page order, rename your SVG files to `page1.svg`, `page2.svg`, etc., and loop over them, appending each conversion result to the same TIFF using `tiffOptions.setMultipage(true)` each time. + +## Full Working Example + +Below is the complete, self‑contained Java class you can copy‑paste into a file named `SvgToMultipageTiff.java`. It includes import statements, comments, and error handling for production use. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Running the code produces a TIFF where each SVG root becomes a separate page—exactly what you need when you want to **create multipage tiff** files for printing or archival. + +## Conclusion + +We’ve just shown you how to **create multipage tiff** from an SVG using Java and Aspose.HTML. The tutorial covered loading the SVG (`load svg document java`), configuring the conversion options, performing the conversion (`how to convert svg to tiff`), and verifying the output. With the full source code in hand, you can adapt the solution to batch‑process dozens of SVGs, tweak DPI settings, or integrate the logic into a larger document‑generation pipeline. + +Ready for the next challenge? Try converting a folder of SVGs into a single multipage TIFF, experiment with different compression schemes, or explore PDF output by swapping `TiffConversionOptions` for `PdfConversionOptions`. The same principles apply, so you’ll be comfortable extending this pattern to other formats. + +Got questions or ran into an odd SVG edge case? Drop a comment below, and happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/html5-canvas-rendering/_index.md b/html/english/java/html5-canvas-rendering/_index.md index 1eae108a2..541261309 100644 --- a/html/english/java/html5-canvas-rendering/_index.md +++ b/html/english/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Ready to master the HTML5 Canvas? The guide [Mastering HTML5 Canvas with Aspose. Create and render HTML5 Canvas with Aspose.HTML for Java. Learn step-by-step how to draw, style, and export to PDF using this powerful Java library. ### [Mastering HTML5 Canvas with Aspose.HTML for Java](./html5-canvas/) Learn how to create and convert HTML5 Canvas to PDF using Aspose.HTML for Java. This guide is perfect for developers looking to enhance their web projects. +### [How to Emulate iPhone – Complete Guide with Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Learn how to emulate iPhone devices using Aspose.HTML, covering rendering, testing, and PDF conversion for accurate mobile simulation. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/english/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/english/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..2ae1e6e12 --- /dev/null +++ b/html/english/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,169 @@ +--- +category: general +date: 2026-03-26 +description: Learn how to emulate iPhone in Java using Aspose.HTML. Includes steps + to set custom user agent and set device pixel ratio for accurate mobile rendering. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: en +og_description: How to emulate iPhone in Java? This tutorial shows how to set custom + user agent and device pixel ratio using Aspose.HTML, delivering pixel‑perfect mobile + pages. +og_title: How to Emulate iPhone – Step‑by‑Step Aspose.HTML Guide +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: How to Emulate iPhone – Complete Guide with Aspose.HTML +url: /java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# How to Emulate iPhone – Complete Guide with Aspose.HTML + +Ever wondered **how to emulate iPhone** when testing a web page locally? Maybe you’re debugging a responsive layout and the desktop browser just won’t cut it. The good news is you don’t need a physical device—Aspose.HTML’s `DocumentSandbox` lets you mimic an iPhone’s screen, user‑agent, and device‑pixel‑ratio (DPR) with a few lines of Java. + +In this tutorial we’ll walk through the exact steps to set a **custom user agent**, configure the **device pixel ratio**, and verify that everything works as expected. By the end you’ll have a reusable sandbox that renders pages just like an iPhone 8, and you’ll understand why each setting matters. + +## What You’ll Achieve + +- Create a `Screen` object that mirrors an iPhone’s dimensions and DPR. +- Apply a **custom user agent** string so servers think the request comes from Safari on iOS. +- Build a `DocumentSandbox` that ties the screen and user‑agent together. +- Run an `HTMLDocument` inside the sandbox and see the console output confirming the configuration. + +No external libraries beyond Aspose.HTML are required, and the code runs on any Java 17+ environment. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## How to Emulate iPhone with Aspose.HTML Sandbox + +The first thing we need is a `Screen` that reflects the iPhone’s physical dimensions *and* its pixel density. This is the core of **how to emulate iPhone** accurately. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Why this matters:** +- The width = 375 px and height = 667 px are the CSS pixel dimensions you’ll see in Chrome DevTools when you select an iPhone 8. +- Setting the DPR to 2 tells the rendering engine to treat each CSS pixel as two physical pixels, giving you crisp text and images—exactly what a real device does. + +> *Pro tip:* If you need to emulate a newer iPhone (like the iPhone 13), just change the numbers to 390 × 844 and DPR = 3. + +## Setting a Custom User Agent (set custom user agent) + +Next up, we need to **set custom user agent** so the server serves the mobile‑specific HTML/CSS. Without it, many sites will still think you’re on a desktop. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**How this works:** +- The `User-Agent` header is the handshake browsers use to announce themselves. +- By providing the exact string Safari on iOS 16 sends, you ensure the server returns the mobile‑optimized assets (think responsive images, adaptive scripts, etc.). + +If you ever need to **how to set user-agent** for a different device, just replace the string with the appropriate value—Google Chrome, Firefox, or even a custom bot. + +## Configuring Device Pixel Ratio (set device pixel ratio) + +Now we actually **set device pixel ratio** inside the sandbox. This is the step that directly answers “**how to set dpr**” for a simulated environment. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Explanation:** +- The `Builder` pattern lets you fluently attach both the screen (which carries the DPR) and the user‑agent. +- When the sandbox renders an `HTMLDocument`, it will pretend it’s running on a device with that exact pixel density. + +> *Why you should care:* Some CSS media queries use `device-pixel-ratio` (e.g., `@media (-webkit-min-device-pixel-ratio: 2)`). If you don’t set the DPR, those rules never fire, and you’ll miss high‑resolution assets. + +## Verifying the Sandbox Configuration (how to set user-agent) + +Let’s put the sandbox to work. The following snippet creates an `HTMLDocument`, loads a page, and prints a confirmation that the sandbox is active. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Expected console output** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +If you run the program and see that line, you’ve successfully **how to emulate iPhone** with the correct DPR and user‑agent. Open the page in a real browser and inspect the viewport dimensions—you’ll notice they match the iPhone values we set. + +## Common Pitfalls and How to Set DPR Correctly (how to set dpr) + +Even with the right code, a few gotchas can trip you up: + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **DPR stays at 1** | You passed a `Screen` without the third argument (DPR). | Always use `new Screen(width, height, dpr)`. | +| **User‑Agent ignored** | The sandbox wasn’t attached to the `HTMLDocument`. | Pass the `documentSandbox` as the second argument to the `HTMLDocument` constructor. | +| **Wrong dimensions** | Using device pixels instead of CSS pixels. | Remember: width/height are **CSS pixels**, not hardware pixels. | +| **Server still sends desktop CSS** | Some sites use JavaScript to detect devices, not just the header. | Consider also injecting a viewport meta tag if needed. | + +By keeping these in mind, you’ll rarely run into a situation where the emulation doesn’t behave as expected. + +## Extending the Sandbox – Next Steps + +Now that you know **how to set custom user agent** and **how to set dpr**, you can experiment further: + +- **Change the screen size** to emulate tablets or larger phones. +- **Swap the user‑agent** to test Chrome on Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Add cookies or headers** via the sandbox’s `setHeaders` method for authenticated testing. +- **Capture a screenshot** using `HTMLDocument.renderToFile("output.png")` to compare visual differences automatically. + +These extensions let you build a full‑featured testing harness without ever leaving your IDE. + +--- + +## Conclusion + +We’ve covered **how to emulate iPhone** using Aspose.HTML’s `DocumentSandbox`, showing you exactly **how to set custom user agent**, **how to set device pixel ratio**, and even the subtle differences between “**how to set user-agent**” and “**how to set dpr**”. The complete, runnable example demonstrates every piece in one place, so you can copy‑paste, tweak, and start testing mobile layouts instantly. + +Give it a try—swap the screen dimensions, play with different user‑agents, and watch how your pages react. When you master these settings, debugging responsive designs becomes a piece of cake, and you’ll save countless hours chasing bugs on real devices. + +Got questions or want to share your own variations? Drop a comment below, and happy emulating! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/advanced-usage/_index.md b/html/french/java/advanced-usage/_index.md index f4b4874db..dc0c1727c 100644 --- a/html/french/java/advanced-usage/_index.md +++ b/html/french/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Apprenez à ajuster la taille de page PDF avec Aspose.HTML for Java. Créez des Apprenez à ajuster la taille de page XPS avec Aspose.HTML for Java. Contrôlez facilement les dimensions de sortie de vos documents XPS. ### [Comment exécuter du JavaScript en Java – Guide complet](./how-to-run-javascript-in-java-complete-guide/) Apprenez à exécuter du code JavaScript depuis Java en utilisant Aspose.HTML, avec des exemples complets et des meilleures pratiques. +### [Exemple de top‑level await – Utilisation d'await delay en JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Apprenez à utiliser top‑level await avec une fonction de délai await en JavaScript. --- diff --git a/html/french/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/french/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..75b352e5a --- /dev/null +++ b/html/french/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,172 @@ +--- +category: general +date: 2026-03-26 +description: Exemple d'await de niveau supérieur montrant await delay en JavaScript, + classe d'incrémentation de compteur et champs de classe publics en JavaScript dans + une démo en direct. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: fr +og_description: Exemple de top‑level await démontrant await delay en JavaScript, classe + de compteur incrémental et champs publics de classe en JavaScript dans un tutoriel + concis. +og_title: exemple d'await de niveau supérieur – Utilisation d'un délai await en JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: exemple d'await de niveau supérieur – Utilisation de await delay en JavaScript +url: /fr/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# exemple top level await – Utilisation de await delay en JavaScript + +Vous vous êtes déjà demandé comment mettre en pause l'exécution d'un module sans envelopper le tout dans une IIFE async ? C’est exactement ce qu’un **top level await example** vous permet de faire. Dans ce tutoriel, nous parcourrons une petite page web qui utilise `await delay javascript` pour différer le travail, puis crée une `increment counter class` qui exploite **public class fields javascript**. À la fin, vous disposerez d’un extrait complet, copiable‑collable, qui s’exécute dans n’importe quel navigateur moderne. + +Nous couvrirons tout, de la définition d’une classe avec un champ public à la mise en place d’un simple helper de délai basé sur les promesses. Aucun bibliothèque externe, aucune étape de build — juste du HTML simple, un ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Sortie console attendue + +``` +Counter class initialized +Final count: 1 +``` + +Si vous ouvrez la page dans les DevTools, vous devriez voir le message du bloc statique apparaître **avant** que le délai ne se termine, confirmant que la classe a été évaluée en premier. + +## Étape 5 – Pourquoi utiliser les champs de classe publics plutôt qu’un constructeur ? + +Vous pourriez vous demander pourquoi nous n’avons pas écrit : + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Les deux approches fonctionnent, mais **public class fields javascript** offrent une syntaxe plus propre et déclarative. Le champ est défini une seule fois, pas à l’intérieur de chaque appel de constructeur, ce qui peut être plus lisible lorsque la classe devient plus grande. De plus, les blocs statiques ne peuvent pas être placés dans un constructeur, donc séparer la logique d’initialisation devient plus naturel. + +## Étape 6 – Adapter l’exemple aux applications réelles + +En production, vous aurez souvent besoin de plus d’un simple compteur. Voici quelques idées rapides : + +- **Compteurs multiples :** Stockez‑les dans un `Map` indexé par identifiant. +- **État persistant :** Remplacez `console.log` par des écritures `localStorage`. +- **Initialisation async :** Utilisez le bloc statique pour récupérer une configuration depuis un serveur avant que des instances ne soient créées. + +Tous ces patterns bénéficient toujours du top‑level await, car vous pouvez récupérer les données une fois au chargement du module et garantir qu’elles sont prêtes pour chaque consommateur. + +## Questions fréquentes + +**Q : Le top‑level await bloque‑t‑il les autres modules ?** +R : Non. Chaque module s’exécute indépendamment. Seul le module contenant le await est mis en pause ; les autres modules continuent de se charger en parallèle. + +**Q : Que se passe‑t‑il si la promesse de délai est rejetée ?** +R : Un rejet non géré interrompra l’évaluation du module et apparaîtra comme une erreur dans la console. Enveloppez le await dans un `try…catch` si vous avez besoin d’un fallback élégant. + +**Q : Le mot‑clé `static` est‑il obligatoire ?** +R : Pas pour le compteur lui‑même, mais le bloc statique est un moyen pratique de démontrer que le code s’exécute *une fois* au chargement—idéal pour le logging ou la détection de fonctionnalités. + +## Conclusion + +Vous venez de créer un **top level await example** qui met en avant `await delay javascript`, une **increment counter class**, et la puissance des **public class fields javascript**. L’extrait complet et exécutable se trouve ci‑dessus, et la sortie console prouve que le bloc statique se déclenche avant que le code retardé ne s’exécute. + +À partir d’ici, vous pouvez expérimenter avec des flux async plus complexes, remplacer le délai par un appel API réel, ou étendre la classe avec des méthodes supplémentaires. Rappelez‑vous, le JavaScript moderne vous permet de traiter les modules comme des entités async de première classe—sans wrappers supplémentaires. + +Bon codage, et n’hésitez pas à partager vos variantes dans les commentaires. Si ce guide vous a été utile, partagez‑le avec un collègue qui lutte encore avec les patterns async ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/conversion-html-to-other-formats/_index.md b/html/french/java/conversion-html-to-other-formats/_index.md index c50968e02..7be903d11 100644 --- a/html/french/java/conversion-html-to-other-formats/_index.md +++ b/html/french/java/conversion-html-to-other-formats/_index.md @@ -112,6 +112,9 @@ Apprenez à convertir facilement HTML en XPS avec Aspose.HTML for Java. Créez d ### [Converting Markdown to HTML](./convert-markdown-to-html/) Convertissez Markdown en HTML en Java de manière fluide avec Aspose.HTML for Java. Suivez notre guide étape par étape pour rationaliser vos besoins de conversion de documents. +### [Convertir HTML en Markdown en Java – Conserver le formatage d'origine](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Apprenez à convertir du HTML en Markdown en Java tout en conservant le formatage original du contenu. + ### [Converting SVG to Image](./convert-svg-to-image/) Apprenez à convertir SVG en images en Java avec Aspose.HTML. Guide complet pour une sortie de haute qualité. @@ -121,6 +124,12 @@ Convertissez SVG en PDF en Java avec Aspose.HTML. Une solution fluide pour une c ### [Converting SVG to XPS](./convert-svg-to-xps/) Apprenez à convertir SVG en XPS avec Aspose.HTML for Java. Guide simple et étape par étape pour des conversions fluides. +### [Créer un PDF taille personnalisée – Convertir HTML en PDF avec Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Apprenez à générer des PDF de taille personnalisée à partir de HTML en Java avec Aspose.HTML, incluant les options de mise en page. + +### [Créer un PDF à partir de HTML en Java – Guide de conversion par lots parallèles](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Apprenez à convertir plusieurs fichiers HTML en PDF simultanément avec Aspose.HTML, optimisant les performances grâce au traitement parallèle. + ## Foire aux questions **Q : Puis-je utiliser Aspose.HTML for Java dans une application commerciale ?** diff --git a/html/french/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/french/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..0f4bcf71e --- /dev/null +++ b/html/french/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-03-26 +description: Convertir le HTML en markdown et générer un fichier markdown tout en + préservant le formatage original à l'aide de la conversion Aspose HTML en Java. + Apprenez étape par étape. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: fr +og_description: Convertissez le HTML en markdown rapidement, générez un fichier markdown + et conservez le formatage d'origine en utilisant la conversion HTML d'Aspose pour + Java. +og_title: Convertir le HTML en Markdown en Java – Conserver le formatage +tags: +- Aspose +- Java +- Markdown +title: Convertir le HTML en Markdown en Java – Conserver le formatage d'origine +url: /fr/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir le HTML en Markdown en Java – Conserver le formatage d'origine + +Vous avez déjà eu besoin de **convertir du HTML en markdown** mais vous craigniez de perdre les espaces, les tableaux ou les balises en ligne ? Vous n'êtes pas le seul. De nombreux développeurs rencontrent ce problème lorsqu'ils essaient de déplacer du contenu d'une page Web vers un format propre, compatible avec le contrôle de version. La bonne nouvelle ? En quelques lignes de Java et Aspose HTML, vous pouvez **générer un fichier markdown** qui ressemble exactement à la source, espaces blancs inclus. + +Dans ce guide, nous parcourrons l'ensemble du processus : charger un fichier HTML complexe, configurer la conversion afin qu'elle **préserve le formatage d'origine**, puis écrire le résultat dans `preserved.md`. À la fin, vous disposerez d'un extrait prêt à l'exécution, comprendrez *pourquoi* chaque paramètre est important, et saurez comment adapter le code aux cas particuliers comme le CSS personnalisé ou les scripts intégrés. + +## Ce dont vous avez besoin + +- Java 17 (ou tout JDK récent) – l'API fonctionne avec Java 8+ mais les versions plus récentes offrent de meilleures performances. +- Bibliothèque Aspose HTML for Java (version 23.11 ou ultérieure). Vous pouvez la récupérer depuis Maven Central : + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Un fichier HTML d'exemple (`complex.html`) contenant des titres, des tableaux, des blocs de code, et éventuellement du style en ligne ``. +- Un peu de patience et la volonté d'expérimenter. + +C'est tout. Aucun outil externe, aucun hack en ligne de commande—juste du code Java pur. + +## Étape 1 : Charger le document HTML source + +La première chose que nous faisons est de créer une instance `HTMLDocument` qui pointe vers votre fichier source. Aspose HTML traite le fichier comme un DOM, ce qui signifie que vous pouvez l'inspecter ou le modifier avant la conversion si nécessaire. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Pourquoi c'est important :** Charger le document de cette façon garantit que toutes les ressources liées (feuilles de style, images) sont résolues relativement à l'emplacement du fichier. Si vous sautez cette étape et fournissez une chaîne brute, vous pourriez perdre le CSS externe qui influence les espaces—exactement le type de chose que vous souhaitez **préserver le formatage d'origine**. + +## Étape 2 : Configurer les options de conversion Markdown + +Aspose HTML vous fournit une classe `MarkdownConversionOptions`. La propriété clé pour nous est `setPreserveOriginalFormatting(true)`. Lorsqu'elle est activée, le convertisseur conserve les sauts de ligne, l'indentation, et même les fragments HTML bruts que le markdown ne peut pas représenter nativement. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Astuce :** Si vous découvrez plus tard que certains styles en ligne sont supprimés, vous pouvez également appeler `markdownOptions.setIncludeHtml(true)` pour forcer l'inclusion de blocs HTML bruts dans la sortie markdown. + +## Étape 3 : Effectuer la conversion + +Nous transmettons maintenant le `HTMLDocument`, le chemin du fichier cible, et nos options à la méthode statique `Converter.convertHTML`. Cette méthode effectue tout le travail lourd en arrière-plan. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Lorsque l'appel se termine, vous trouverez `preserved.md` à côté de votre fichier source. Ouvrez-le dans n'importe quel éditeur—remarquez comment les sauts de ligne et l'alignement du tableau d'origine sont intacts. + +## Étape 4 : Vérifier le résultat (Optionnel mais recommandé) + +Une vérification rapide vous évite des bugs subtils plus tard. Vous pouvez lire le fichier à nouveau dans Java et afficher les premières lignes, ou simplement l'ouvrir dans VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Vous devriez voir quelque chose comme : + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +La balise `` est toujours présente parce que la syntaxe native des tableaux markdown ne pouvait pas capturer le style exact—grâce à `preserve original formatting`. + +## Étape 5 : Tout rassembler – Exemple complet exécutable + +Ci-dessous se trouve la classe complète, prête à être exécutée. Remplacez `YOUR_DIRECTORY` par le chemin réel sur votre machine. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Exécutez le programme avec `mvn exec:java` ou votre IDE préféré, et vous obtiendrez un **fichier markdown généré** qui reflète la mise en page HTML originale. + +## Questions fréquentes & cas particuliers + +### Cela fonctionne-t-il avec des fichiers CSS externes ? + +Oui. Tant que les fichiers CSS sont accessibles via des chemins relatifs, Aspose HTML les charge automatiquement. Si vous récupérez du HTML depuis une URL distante, vous devrez peut-être définir un objet `ResourceLoadingOptions` personnalisé pour autoriser l'accès réseau. + +### Et si je ne veux aucun HTML brut dans le markdown ? + +Simplement changer l'option : + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Le convertisseur essaiera alors de traduire tout en syntaxe markdown pure, ce qui pourrait entraîner une perte de fidélité de la mise en page. + +### Puis-je convertir une chaîne au lieu d'un fichier ? + +Absolument. Utilisez le constructeur qui accepte un `String` : + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Puis passez `doc` à `Converter.convertHTML` comme précédemment. + +### En quoi cela diffère-t-il d'autres bibliothèques comme Flexmark ou pandoc ? + +La plupart des outils open‑source traitent le HTML comme du texte brut et suppriment agressivement les espaces blancs. Le drapeau `preserveOriginalFormatting` d'Aspose HTML est une **fonction propriétaire** qui respecte les espaces blancs, les sauts de ligne du source original, et même conserve les balises non prises en charge sous forme de blocs HTML bruts. C’est pourquoi ce tutoriel met l’accent sur **aspose html conversion** pour les développeurs Java qui ont besoin d’une fidélité exacte. + +## Conseils pour l’utilisation en production + +- **Traitement par lots :** Enveloppez la logique de conversion dans une boucle pour gérer plusieurs fichiers HTML en une seule fois. +- **Gestion des erreurs :** Capturez `IOException` et `com.aspose.html.exceptions.AssertionFailedException` pour signaler les ressources manquantes. +- **Performance :** Réutilisez une seule instance `HTMLDocument` lors de la conversion de fragments d’un grand site ; la bibliothèque met en cache le CSS analysé. + +## Conclusion + +Nous venons de vous montrer comment **convertir du HTML en markdown** en Java tout en garantissant que la sortie **préserve le formatage d'origine**. L'extrait court et autonome démontre l'ensemble du flux de travail—de la charge du document HTML à la configuration de `MarkdownConversionOptions`, en passant par la conversion et la vérification du résultat. Avec l'API robuste d'Aspose HTML, vous pouvez désormais **générer un fichier markdown** de manière programmatique, que vous construisiez un générateur de site statique, un pipeline de documentation ou un outil de migration de contenu. + +Ensuite, vous pourriez explorer : + +- Utiliser **html to markdown java** pour des migrations massives sur un site web. +- Ajuster les options de conversion pour produire des tableaux markdown au style GitHub. +- Combiner cette approche avec une étape CI/CD qui met automatiquement à jour vos documents chaque fois que le HTML source change. + +N'hésitez pas à expérimenter, et laissez un commentaire si vous rencontrez des problèmes. Bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/french/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..b6d77fc44 --- /dev/null +++ b/html/french/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-03-26 +description: Créez un PDF de taille personnalisée à partir de HTML avec Aspose.HTML + pour Java. Apprenez comment convertir du HTML en PDF et définir la taille de la + page PDF en quelques étapes seulement. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: fr +og_description: Créez un PDF de taille personnalisée à partir de HTML avec Aspose. + Ce guide vous montre comment convertir du HTML en PDF, modifier la taille des pages + PDF et définir la taille des pages PDF facilement. +og_title: Créer un PDF taille personnalisée – Guide rapide pour convertir HTML en + PDF +tags: +- aspose +- java +- pdf +- html +title: Créer un PDF de taille personnalisée – Convertir HTML en PDF avec Aspose +url: /fr/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un PDF taille personnalisée – Convertir HTML en PDF avec Aspose + +Vous avez déjà eu besoin de **créer un PDF taille personnalisée** à partir d’un fichier HTML ? Dans ce tutoriel, nous vous montrons comment **convertir HTML en PDF** et définir la taille de page du PDF avec Aspose.HTML for Java. + +Si vous générez des factures, des rapports ou des e‑books, obtenir les dimensions exactes de la page est crucial—sinon votre mise en page sera décalée ou tronquée. + +Nous parcourrons chaque étape, du chargement du HTML source à l’ajustement des marges, pour finir avec un PDF prêt à l’emploi. Pas de références vagues, juste un exemple complet et exécutable que vous pouvez copier‑coller dès aujourd’hui. + +## Ce dont vous avez besoin + +- **Java 17** (ou tout JDK récent). +- **Aspose.HTML for Java** JARs – vous pouvez récupérer la dernière version depuis le dépôt Maven ou le site Aspose. +- Un fichier `input.html` simple placé dans un dossier que vous contrôlez. +- Un IDE ou éditeur de texte de votre choix ; j’utilise généralement IntelliJ IDEA, mais Eclipse fonctionne très bien. + +Disposer de ces prérequis évite les erreurs « class not found » à mi‑parcours. + +Passons maintenant à la pratique. + +![Créer un PDF taille personnalisée exemple](/images/create-pdf-custom-size.png "Capture d’écran montrant un PDF généré avec une taille de page et des marges personnalisées – créer pdf taille personnalisée") + +## Créer un PDF taille personnalisée – Étapes principales + +Voici le programme Java complet que vous obtiendrez. Copiez‑le dans un fichier nommé `ConvertHtmlToPdfCustomPage.java` et exécutez‑le après avoir ajouté les dépendances Aspose à votre projet. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Étape 1 – Convertir HTML en PDF : Chargement du document + +La première chose que nous faisons est de **charger le HTML** que nous voulons transformer en PDF. +`HTMLDocument` lit le fichier, résout les liens relatifs et construit un DOM qu’Aspose peut rendre. + +> **Pourquoi c’est important :** Si le HTML fait référence à du CSS ou des images, Aspose les récupérera relativement au chemin du fichier. Utiliser un chemin absolu (`YOUR_DIRECTORY/input.html`) évite les surprises « file not found ». + +### Étape 2 – Modifier la taille de page du PDF : Configuration des options + +Ici nous créons un objet `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` indique à Aspose d’utiliser les dimensions standard A4 (210 × 297 mm). +- `setPageOrientation(...)` fait pivoter la page si vous avez besoin du mode paysage. +- `setMargins(new Margin(20, 20, 20, 20))` applique une marge de 20 points de chaque côté. + +Vous pouvez remplacer `PageSize.A4` par `PageSize.LETTER` ou même une **taille personnalisée** en passant un objet `SizeF`, par exemple : + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Astuce :** Un point vaut 1/72 pouce. Si vous pensez en millimètres, multipliez par 2,83465 pour obtenir des points. + +### Étape 3 – Générer le PDF à partir du HTML : Lancer la conversion + +`Converter.convertHTML` fait le gros du travail. Il prend le `HTMLDocument` chargé, le chemin de sortie et les options que nous venons de configurer. + +Si vous souhaitez **définir la taille de page du PDF** dynamiquement en fonction du contenu, vous pouvez calculer les dimensions requises avant cette étape et ajuster `pdfOptions` en conséquence. + +### Étape 4 – Vérifier le résultat + +La ligne `System.out.println` est optionnelle, mais elle fournit un retour rapide lorsque vous exécutez le programme depuis la console. Après l’exécution, ouvrez `custom_page.pdf` — vous devriez voir un PDF A4 portrait avec des marges uniformes de 20 points, exactement comme spécifié. + +## Convertir HTML en PDF – Variantes courantes + +### Utiliser un flux au lieu d’un chemin de fichier + +Parfois vous n’avez pas de fichier physique ; le HTML provient peut‑être d’une base de données ou d’une API. Dans ce cas, encapsulez la chaîne dans un `ByteArrayInputStream` : + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Le deuxième argument représente l’URL de base pour la résolution des ressources relatives. + +### Modifier l’orientation de la page + +Si votre rapport est large, passez en paysage : + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Ajuster finement les marges + +Les marges acceptent des valeurs à virgule flottante, vous pouvez donc définir 0,5 pt pour une bordure ultra‑fine : + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Gérer de gros fichiers HTML + +Pour des documents très volumineux, envisagez d’activer le **streaming à faible consommation de mémoire** : + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Cela indique à Aspose d’écrire les données intermédiaires dans des fichiers temporaires au lieu de tout garder en RAM. + +## Définir la taille de page du PDF – Cas limites et pièges + +- **Polices manquantes :** Si votre HTML utilise une police personnalisée non installée sur le serveur, le PDF reviendra à une police par défaut. Intégrez la police avec `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Mise à l’échelle des images :** Les images haute résolution peuvent alourdir le PDF. Utilisez `pdfOptions.setImageResolution(150);` pour réduire la résolution tout en conservant la qualité. +- **Compatibilité CSS :** Toutes les propriétés CSS ne sont pas entièrement supportées. Restez sur des techniques de mise en page standard (flexbox fonctionne, mais grid peut présenter des particularités). +- **Permissions de chemin :** Assurez‑vous que le processus a les droits d’écriture sur `YOUR_DIRECTORY`. Sinon, une `IOException` sera levée. + +## Résultat attendu + +L’exécution du programme génère un PDF qui ressemble à ceci (illustration conceptuelle) : + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Taille de page : **A4** (210 × 297 mm). +- Orientation : **Portrait**. +- Marges : **20 pt** de chaque côté. + +Ouvrez le fichier avec n’importe quel lecteur PDF (Adobe Reader, Chrome, etc.) pour vérifier. + +## Conclusion + +Vous savez maintenant comment **créer un PDF taille personnalisée** à partir d’une source HTML avec Aspose.HTML for Java. Le tutoriel a couvert l’ensemble du pipeline : **convertir HTML en PDF**, **modifier la taille de page du PDF**, **définir la taille de page du PDF**, et **générer le PDF à partir du HTML** avec des marges personnalisées. + +N’hésitez pas à expérimenter — remplacez `PageSize.LETTER` par le format légal, ajustez les marges, ou intégrez vos propres polices. Ensuite, vous pourrez explorer **l’ajout de filigranes**, **le chiffrement du PDF**, ou **le traitement par lots de plusieurs fichiers HTML**. Tous ces sujets s’appuient sur les mêmes concepts de base que nous venons de voir. + +Vous avez une question sur un cas particulier ? Laissez un commentaire ci‑dessous, et je vous aiderai à résoudre le problème. Bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/french/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..4ae4fde2f --- /dev/null +++ b/html/french/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-26 +description: Créez un PDF à partir de HTML rapidement avec un pool de threads fixe. + Apprenez le traitement par lots de HTML en PDF et exécutez des tâches parallèles + en Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: fr +og_description: Créez des PDF à partir de HTML rapidement avec un pool de threads + fixe. Apprenez comment convertir des lots de HTML en PDF et exécuter des tâches + parallèles en Java. +og_title: Créer un PDF à partir de HTML en Java – Guide de conversion par lots en + parallèle +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Créer un PDF à partir de HTML en Java – Guide de conversion par lots parallèles +url: /fr/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un PDF à partir de HTML en Java – Guide de conversion par lots parallèles + +Vous avez déjà eu besoin de **créer un PDF à partir de HTML** mais vous êtes resté bloqué à regarder une conversion monothread avancer à la lenteur ? Vous n'êtes pas le seul. Dans de nombreux projets réels, nous recevons des dizaines de rapports HTML qui doivent devenir des PDF d'ici la fin de la journée, et les traiter un par un n'est tout simplement pas pratique. + +C’est pourquoi ce tutoriel vous montre **how to convert HTML to PDF** en utilisant un **fixed thread pool**, vous permettant de **batch HTML to PDF** et **run parallel tasks** sans effort. À la fin, vous disposerez d’un programme complet, prêt à l’emploi, qui transforme un dossier de fichiers HTML en PDF en une fraction du temps. + +## Ce que vous apprendrez + +Dans les sections suivantes, nous couvrirons tout ce que vous devez savoir : + +* La dépendance Maven/Gradle exacte pour Aspose.HTML (la bibliothèque qui fait le travail lourd). +* Pourquoi un **fixed thread pool** est le meilleur choix pour les conversions liées au CPU. +* Comment lister vos fichiers source afin que le processus puisse s’étendre à des centaines de documents. +* Le code exact à coller dans votre IDE — aucune importation manquante, aucun commentaire “TODO”. +* Conseils pour gérer les erreurs, ajuster la taille du pool et vérifier la sortie. + +Aucune connaissance préalable d'Aspose.HTML n'est requise, juste une configuration Java de base et la volonté d'expérimenter. Commençons. + +--- + +![Diagramme montrant un fixed thread pool convertissant plusieurs fichiers HTML en PDF en parallèle – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Texte alternatif de l'image : create pdf from html – diagramme de conversion parallèle* + +## Étape 1 : Préparer votre projet et ajouter Aspose.HTML + +Tout d'abord, votre projet a besoin de la bibliothèque Aspose.HTML. Si vous utilisez Maven, ajoutez ceci à votre `pom.xml` : + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Pour Gradle, c’est simplement : + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Pourquoi Aspose.HTML ? C’est une bibliothèque commerciale, mais elle propose une API **convert html to pdf** qui gère le CSS, le JavaScript et les mises en page complexes dès le départ. Si vous préférez une alternative open‑source, vous pouvez remplacer l’appel `Converter.convertHTML` plus tard, mais la logique de threading reste la même. + +> **Astuce pro :** Gardez le numéro de version synchronisé avec les notes de version officielles ; les versions plus récentes améliorent souvent la vitesse de rendu, ce qui est important lorsque vous exécutez de nombreuses tâches en parallèle. + +## Étape 2 : Construire un Fixed Thread Pool pour la conversion parallèle + +Lorsque vous avez un lot de fichiers, vous ne voulez pas créer un nombre illimité de threads — votre OS commencerait à thrash. Un **fixed thread pool** vous offre une quantité prévisible de concurrence tout en maintenant l’utilisation de la mémoire sous contrôle. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Pourquoi quatre ? Sur une machine typique à 8 cœurs, la moitié des cœurs peut rester libre pour les I/O et le système d’exploitation. Vous pouvez expérimenter : `Runtime.getRuntime().availableProcessors()` renvoie le nombre de cœurs, et une règle empirique est `cores / 2`. Rappelez‑vous que chaque conversion est intensive en CPU, donc plus de threads que de cœurs nuit généralement aux performances. + +## Étape 3 : Rassembler les fichiers HTML que vous souhaitez convertir + +La prochaine pièce du puzzle est la liste **batch html to pdf**. Vous pouvez coder en dur un tableau (comme dans l’exemple) ou scanner un répertoire. Voici une version flexible qui lit chaque fichier `.html` d’un dossier : + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Cette approche signifie que vous pouvez déposer de nouveaux fichiers dans le dossier et le programme les récupérera automatiquement — parfait pour un job batch nocturne. + +## Étape 4 : Soumettre une tâche de conversion pour chaque fichier (Run Parallel Tasks) + +Maintenant la partie amusante : chaque fichier devient un **Runnable** (ou `Callable`) que le pool exécute. Le code ci‑dessous reflète l’exemple original mais ajoute la gestion des erreurs et un petit message de journal. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Pourquoi envelopper la conversion dans un try‑catch ?** Lorsque vous **run parallel tasks**, un seul fichier HTML mal formé pourrait sinon faire tomber tout l’exécuteur. En capturant les exceptions localement, nous assurons que le reste du lot continue de fonctionner. + +## Étape 5 : Arrêter l’exécuteur et attendre la fin + +Après que tous les jobs soient soumis, vous devez indiquer au pool d’arrêter d’accepter de nouvelles tâches puis attendre que tout se termine. Cela garantit que la JVM ne se ferme pas prématurément. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Si vous avez un dossier massif (des milliers de fichiers), vous pouvez augmenter le délai d’attente ou implémenter un moniteur de progression. L’essentiel est de **gracefully shut down** — c’est la marque d’un code prêt pour la production. + +## Exemple complet fonctionnel + +En rassemblant tout, voici une classe autonome que vous pouvez copier‑coller dans `src/main/java` et exécuter : + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Sortie attendue** (exemple) : + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Si vous ouvrez les fichiers `.pdf` générés, vous verrez la mise en page HTML originale préservée — polices, tableaux, et même le contenu basique piloté par JavaScript rendu correctement. + +## Questions fréquentes & cas limites + +| Question | Réponse | +|----------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/conversion-html-to-various-image-formats/_index.md b/html/french/java/conversion-html-to-various-image-formats/_index.md index 0ebefa3bd..347cfc477 100644 --- a/html/french/java/conversion-html-to-various-image-formats/_index.md +++ b/html/french/java/conversion-html-to-various-image-formats/_index.md @@ -92,7 +92,9 @@ Apprenez à convertir HTML en JPEG avec Aspose.HTML for Java. Guide étape par Apprenez à convertir HTML en images PNG en Java avec Aspose.HTML. Un guide complet avec des instructions étape par étape. ### [Conversion d'HTML en TIFF](./convert-html-to-tiff/) Apprenez à convertir facilement HTML en TIFF avec Aspose.HTML for Java. Guide étape par étape pour une gestion efficace des documents. -### [Conversion d'HTML en WebP](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Créer un TIFF multipage à partir de SVG en Java – Guide étape par étape](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Apprenez à générer un fichier TIFF multipage à partir de SVG en Java avec Aspose.HTML. Guide complet pas à pas. +### [Conversion d'HTML en WebP](./convert-html-to-webp-complete-java-guide/) Apprenez à convertir HTML en WebP en Java avec Aspose.HTML. Guide complet étape par étape pour une conversion efficace et optimisée. ## Questions fréquemment posées diff --git a/html/french/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/french/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..9eb477eed --- /dev/null +++ b/html/french/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-03-26 +description: Convertissez rapidement le HTML en WebP avec Aspose.HTML. Découvrez comment + enregistrer le HTML au format WebP, rendre le HTML en WebP et générer du WebP à + partir du HTML en quelques étapes seulement. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: fr +og_description: Convertissez rapidement le HTML en WebP avec Aspose.HTML. Ce tutoriel + montre comment rendre le HTML en WebP et générer du WebP à partir du HTML en Java. +og_title: Convertir le HTML en WebP – Guide complet Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Convertir HTML en WebP – Guide complet Java +url: /fr/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML en WebP – Guide complet Java + +Vous avez déjà eu besoin de **convertir HTML en WebP** mais vous n'étiez pas sûr de quelle bibliothèque pouvait gérer la tâche sans prise de tête ? Vous n'êtes pas seul. De nombreux développeurs rencontrent ce problème lorsqu'ils essaient de servir des images légères générées à partir de pages dynamiques. La bonne nouvelle ? Avec Aspose.HTML for Java, vous pouvez *enregistrer du HTML en WebP* en un seul appel de méthode, et le processus complet est aussi fluide que du beurre. + +Dans ce tutoriel, nous passerons en revue tout ce que vous devez savoir : de la configuration de la dépendance Aspose.HTML, à l'ajustement des paramètres de compression, jusqu'à la génération du document HTML sous forme de fichier WebP que vous pourrez servir sur le web. À la fin, vous serez capable de **render HTML as WebP**, **generate WebP from HTML**, et comprendre le « pourquoi » de chaque option de configuration. Aucun script externe, aucune gymnastique en ligne de commande — juste du code Java propre. + +## Prérequis + +Avant de commencer, assurez‑vous d’avoir : + +- Java 8 ou une version plus récente installée (la bibliothèque prend en charge JDK 8+). +- Maven ou Gradle pour la gestion des dépendances (nous montrerons l’extrait Maven). +- Un fichier HTML simple (`input.html`) que vous souhaitez transformer en image WebP. +- Un IDE ou un éditeur de texte de votre choix — IntelliJ IDEA fonctionne très bien, mais n’importe quel outil fera l’affaire. + +Tout cela ? Parfait, commençons. + +## Étape 1 : Ajouter Aspose.HTML à votre projet + +Tout d’abord, vous devez placer la bibliothèque Aspose.HTML sur le classpath. Si vous utilisez Maven, ajoutez ceci à votre `pom.xml` : + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Pour Gradle, cela ressemble à : + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Pourquoi cette étape est‑elle cruciale ? Sans le JAR, les classes `HTMLDocument`, `Converter` ou `WebpConversionOptions` n’existent pas, et le compilateur lèvera une `ClassNotFoundException`. Ajouter la dépendance inclut également les binaires natifs nécessaires à l’encodage WebP, vous évitant ainsi de rechercher des DLL ou des fichiers `.so` externes. + +> **Pro tip :** Gardez vos dépendances à jour. Les nouvelles versions d’Aspose améliorent souvent les algorithmes de compression WebP et ajoutent la prise en charge des dernières fonctionnalités HTML5. + +## Étape 2 : Charger le document HTML source + +Maintenant que la bibliothèque est prête, nous pouvons charger le HTML que vous souhaitez convertir. La classe `HTMLDocument` analyse le fichier et construit un DOM, que le convertisseur rendra ensuite. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Notez le commentaire « Load the source HTML document » — c’est un rappel que vous pouvez également injecter du CSS ou du JavaScript avant la conversion si votre page dépend d’un style dynamique. Si vous sautez cette étape, le convertisseur n’aura rien à rendre, ce qui produira une image blanche. + +## Étape 3 : Configurer les options de conversion WebP + +Aspose.HTML vous offre un contrôle fin sur la sortie. Dans la plupart des cas, un WebP **lossy** avec un paramètre de qualité autour de 85 offre un bon compromis entre fidélité visuelle et taille de fichier. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Pourquoi choisir le mode lossy ? Le mode lossy de WebP utilise le codage prédictif, ce qui peut réduire les fichiers de 30‑50 % par rapport à PNG tout en conservant la plupart des détails visuels. Si vous avez besoin de résultats pixel‑perfect (par ex., pour des logos), passez `CompressionMode` à `Lossless` et montez `quality` à 100. + +## Étape 4 : Convertir et enregistrer l'image WebP + +Avec le document et les options prêts, la conversion elle‑même ne tient qu’en une ligne. La méthode statique `Converter.convertHTML` fait tout le travail lourd : elle rend le DOM sur un bitmap, l’encode en WebP, puis écrit le fichier sur le disque. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +C’est tout ! Une fois le programme terminé, vous trouverez `output.webp` à côté de votre HTML source. Vous pouvez maintenant le servir directement depuis un serveur web, l’intégrer dans un élément ``, ou l’utiliser dans tout contexte supportant le WebP. + +## Étape 5 : Vérifier le résultat (Optionnel mais recommandé) + +Il est toujours judicieux de revérifier que la conversion a réussi et que l’image apparaît comme prévu. Vous pouvez ouvrir le fichier WebP dans Chrome, Firefox ou tout visualiseur d’images compatible. Pour une vérification rapide programmatique, vous pouvez lire la taille du fichier et ses dimensions : + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Si le fichier est anormalement volumineux ou si les dimensions sont incorrectes, revenez à **Étape 3** et ajustez `quality` ou les paramètres de viewport du HTML source. Rappelez‑vous, WebP respecte les propriétés CSS `width`/`height` de l’élément racine, donc l’absence d’une balise `` peut entraîner des résultats surprenants. + +## Exemple complet fonctionnel + +En réunissant tous les éléments, voici la classe Java complète, prête à être exécutée : + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Enregistrez ce fichier sous le nom `HtmlToWebp.java`, remplacez `YOUR_DIRECTORY` par le chemin réel du dossier, compilez avec `javac`, puis exécutez avec `java HtmlToWebp`. Vous devriez voir s’afficher la taille du fichier et ses dimensions, suivies du message de succès final. + +![exemple de conversion html en webp](/images/convert-html-to-webp.png "Capture d'écran d'une image WebP générée à partir de HTML – convert html to webp") + +## Questions fréquentes & cas limites + +### Et si mon HTML référence des ressources externes (CSS, images) ? + +Aspose.HTML résout automatiquement les URL relatives en fonction de l’emplacement de `input.html`. Assurez‑vous simplement que les ressources sont accessibles depuis le système de fichiers ou un serveur web. Si vous devez injecter une URL de base personnalisée, utilisez le constructeur surchargé de `HTMLDocument` qui accepte une base `URI`. + +### Puis-je générer plusieurs images WebP à partir du même HTML (par ex., différentes tailles de viewport) ? + +Absolument. Enveloppez la logique de conversion dans une boucle, ajustez `webpOptions.setWidth()` et `setHeight()` avant chaque appel, et donnez à chaque sortie un nom de fichier unique. Cela est pratique pour le design réactif où vous servez différentes tailles d’image aux mobiles et aux desktops. + +### Comment passer à la compression sans perte ? + +Remplacez la ligne : + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +par : + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Le mode lossless garantit une fidélité pixel‑perfect mais génère des fichiers plus volumineux — utilisez‑le uniquement lorsque c’est indispensable. + +### Cela fonctionne-t-il sur Linux/macOS ? + +Oui. Le JAR Aspose.HTML inclut les binaires natifs pour Windows, Linux et macOS, de sorte que le même code Java s’exécute partout. Veillez simplement à disposer du JRE approprié installé. + +## Conclusion + +Vous venez d’apprendre **comment convertir HTML en WebP** avec Aspose.HTML pour Java, en couvrant tout, de la configuration de la dépendance à l’ajustement fin de la compression et à la vérification du résultat. Avec ces connaissances, vous pouvez **save HTML as WebP**, **render HTML as WebP**, et **generate WebP from HTML** à la volée — parfait pour les pipelines d’images dynamiques, les newsletters, ou tout scénario où la légèreté visuelle compte. + +Et après ? Essayez différents valeurs de `quality`, explorez le mode `Lossless`, ou intégrez ce convertisseur dans un endpoint REST Spring Boot afin que votre service web renvoie des images WebP à la demande. Vous pouvez également envisager le traitement par lots d’un dossier de fichiers HTML, ou combiner cela avec Chrome headless pour des conversions SVG‑to‑WebP. + +Vous avez d’autres questions sur **comment convertir HTML** dans d’autres langages, ou besoin d’aide pour dépanner un cas particulier ? Laissez un commentaire ci‑dessous, et bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/french/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..71ba534e7 --- /dev/null +++ b/html/french/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Créer un TIFF multipage à partir de SVG en Java avec Aspose.HTML. Apprenez + comment convertir SVG en TIFF, charger un document SVG en Java et créer des fichiers + TIFF multipages. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: fr +og_description: Créer un TIFF multipage à partir de SVG en Java. Ce tutoriel montre + comment charger un document SVG, configurer les options TIFF et générer un TIFF + multipage sans perte. +og_title: Créer un TIFF multipage à partir de SVG en Java – Guide complet +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Créer un TIFF multipage à partir de SVG en Java – Guide étape par étape +url: /fr/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Créer un TIFF multipage à partir de SVG en Java – Guide étape par étape + +Vous avez déjà eu besoin de **créer un TIFF multipage** à partir d’un SVG mais vous ne saviez pas par où commencer ? Vous n’êtes pas seul — de nombreux développeurs rencontrent ce même obstacle lorsqu’ils ont besoin d’un document imprimable, sans perte, qui s’étend sur plusieurs pages. Dans ce guide, nous parcourrons une solution complète, prête à l’emploi, qui montre **comment convertir SVG en TIFF**, charger le document SVG en Java, et configurer la sortie afin que vous puissiez **créer des TIFF multipages** avec compression LZW. + +Nous couvrirons tout, de l’installation de la bibliothèque Aspose.HTML à la gestion des cas particuliers comme les gros actifs SVG. À la fin du tutoriel, vous disposerez d’une classe Java unique que vous pourrez intégrer à n’importe quel projet et commencer à générer des TIFF multipages instantanément. + +## Ce dont vous avez besoin + +- **Java Development Kit (JDK) 8+** – le code utilise les API Java standard. +- **Aspose.HTML for Java** (version 23.5 ou ultérieure) – c’est la seule dépendance tierce. +- Un **fichier SVG d’exemple** (tout graphique vectoriel fera l’affaire ; nous l’appellerons `input.svg`). +- Votre IDE préféré ou un simple éditeur de texte et un terminal. + +Aucun outil de construction supplémentaire n’est requis ; l’exemple se compile avec `javac` et s’exécute avec `java`. Si vous préférez Maven ou Gradle, ajoutez simplement le JAR Aspose.HTML au classpath de votre projet. + +![Create multipage tiff example](create-multipage-tiff.png){alt="sortie tiff multipage"} + +## Étape 1 – Charger le document SVG (load svg document java) + +La première chose à faire est de lire le SVG dans un objet `HTMLDocument`. Aspose.HTML traite les fichiers SVG comme des documents HTML, ce qui nous donne une API unifiée pour la conversion. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Pourquoi c’est important :** Charger le SVG en tant qu’`HTMLDocument` nous donne accès au moteur de rendu complet, garantissant que tous les styles, polices et images intégrées sont interprétés correctement avant la conversion. Ignorer cette étape et essayer d’alimenter le convertisseur avec des octets bruts entraîne souvent des éléments manquants ou des couleurs incorrectes. + +## Étape 2 – Configurer les options TIFF (how to create multipage tiff) + +Ensuite, nous configurons `TiffConversionOptions`. Cet objet contrôle tout, de la mise en page à la compression. Pour obtenir une vraie sortie multipage, nous activons `setMultipage(true)`, et nous choisissons la compression **LZW** car elle est sans perte et largement supportée. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Pourquoi c’est important :** Si vous omettez `setMultipage(true)`, la bibliothèque générera un TIFF à page unique, en ignorant les pages supplémentaires qui pourraient être déduites du SVG (par exemple, lorsque le SVG contient plusieurs éléments racine ``). LZW maintient la taille du fichier raisonnable sans sacrifier la fidélité de l’image — idéal pour les archives ou les flux d’impression. + +## Étape 3 – Effectuer la conversion (how to convert svg to tiff) + +C’est maintenant que le travail lourd s’effectue. La méthode statique `Converter.convertSVG` prend le document chargé, le chemin de destination et les options que nous venons de définir. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Pourquoi c’est important :** Utiliser l’appel statique `convertSVG` est la façon la plus directe de déclencher la conversion. En interne, Aspose.HTML rasterise les données vectorielles à 96 dpi par défaut ; vous pouvez ajuster la résolution via `tiffOptions.setResolution(...)` si une qualité supérieure est requise. + +## Étape 4 – Vérifier le résultat + +Après la fin de la conversion, il est judicieux de confirmer que le fichier existe et contient le nombre de pages attendu. Une vérification rapide peut être faite avec n’importe quel visualiseur d’images supportant les TIFF multipages (par ex., IrfanView, XnView, ou même le `ImageIO` de Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Exécutez le programme : + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Vous devriez voir le message dans la console confirmant le succès, et l’ouverture de `output.tiff` révélera une page par élément racine SVG (ou une seule page si le SVG ne possède qu’un seul canevas). + +## Pièges courants & Astuces professionnelles + +| Problème | Pourquoi cela se produit | Comment le corriger | +|----------|--------------------------|---------------------| +| **Polices manquantes** | Le SVG fait référence à des polices système qui ne sont pas installées sur le serveur. | Intégrez les polices dans le SVG ou utilisez `FontSettings` dans Aspose.HTML pour fournir un dossier de polices personnalisé. | +| **Taille de fichier importante** | La rasterisation à haute résolution peut gonfler la taille du TIFF. | Réduisez le DPI via `tiffOptions.setResolution(150)` ou passez à `Compression.NONE` uniquement pour le débogage. | +| **Pages multiples non générées** | Le SVG ne contient qu’un seul élément ``. | Divisez votre source en fichiers SVG séparés ou encapsulez chaque page logique dans une balise `` avant la conversion. | +| **Fonctionnalités SVG non prises en charge** | Certains filtres ou animations ne sont pas rendus. | Simplifiez le SVG ou pré‑traitez‑le avec un outil comme Inkscape pour aplatir les filtres. | + +**Astuce pro :** Si vous avez besoin d’un ordre de pages spécifique, renommez vos fichiers SVG en `page1.svg`, `page2.svg`, etc., et bouclez dessus, en ajoutant chaque résultat de conversion au même TIFF grâce à `tiffOptions.setMultipage(true)` à chaque itération. + +## Exemple complet fonctionnel + +Voici la classe Java complète, autonome, que vous pouvez copier‑coller dans un fichier nommé `SvgToMultipageTiff.java`. Elle inclut les déclarations d’import, les commentaires et la gestion des erreurs pour une utilisation en production. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +L’exécution du code produit un TIFF où chaque racine SVG devient une page distincte — exactement ce qu’il faut lorsque vous voulez **créer un TIFF multipage** pour l’impression ou l’archivage. + +## Conclusion + +Nous venons de vous montrer comment **créer un TIFF multipage** à partir d’un SVG en utilisant Java et Aspose.HTML. Le tutoriel a couvert le chargement du SVG (`load svg document java`), la configuration des options de conversion, l’exécution de la conversion (`how to convert svg to tiff`) et la vérification du résultat. Avec le code source complet en main, vous pouvez adapter la solution pour traiter par lots des dizaines de SVG, ajuster les paramètres DPI, ou intégrer la logique dans une chaîne de génération de documents plus large. + +Prêt pour le prochain défi ? Essayez de convertir un dossier de SVG en un seul TIFF multipage, expérimentez avec différents schémas de compression, ou explorez la sortie PDF en remplaçant `TiffConversionOptions` par `PdfConversionOptions`. Les mêmes principes s’appliquent, vous serez donc à l’aise pour étendre ce modèle à d’autres formats. + +Des questions ou un cas SVG particulier qui pose problème ? Laissez un commentaire ci‑dessous, et bon codage ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/html5-canvas-rendering/_index.md b/html/french/java/html5-canvas-rendering/_index.md index 6decfac50..29785c96b 100644 --- a/html/french/java/html5-canvas-rendering/_index.md +++ b/html/french/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ Tout d'abord, parlons de l'élément HTML5 Canvas. Considérez-le comme une toil Créez et affichez des fichiers HTML5 Canvas avec Aspose.HTML pour Java. Apprenez étape par étape à dessiner, à styliser et à exporter au format PDF à l'aide de cette puissante bibliothèque Java. ### [Maîtriser HTML5 Canvas avec Aspose.HTML pour Java](./html5-canvas/) Découvrez comment créer et convertir du HTML5 Canvas en PDF à l'aide d'Aspose.HTML pour Java. Ce guide est parfait pour les développeurs qui cherchent à améliorer leurs projets Web. +### [Comment émuler iPhone – Guide complet avec Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Apprenez à émuler un iPhone lors du rendu HTML avec Aspose.HTML, étape par étape, pour tester vos pages web sur mobile. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/french/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/french/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..b93478e4c --- /dev/null +++ b/html/french/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Apprenez à émuler l’iPhone en Java avec Aspose.HTML. Comprend les étapes + pour définir un agent utilisateur personnalisé et régler le ratio de pixels de l’appareil + afin d’obtenir un rendu mobile précis. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: fr +og_description: Comment émuler un iPhone en Java ? Ce tutoriel montre comment définir + un agent utilisateur personnalisé et le ratio de pixels de l’appareil avec Aspose.HTML, + offrant des pages mobiles pixel‑parfaites. +og_title: Comment émuler l’iPhone – Guide Aspose.HTML étape par étape +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Comment émuler l'iPhone – Guide complet avec Aspose.HTML +url: /fr/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Comment émuler iPhone – Guide complet avec Aspose.HTML + +Vous vous êtes déjà demandé **comment émuler iPhone** lors du test d’une page web en local ? Peut‑être déboguez‑vous une mise en page responsive et le navigateur de bureau ne suffit pas. La bonne nouvelle, c’est que vous n’avez pas besoin d’un appareil physique—`DocumentSandbox` d’Aspose.HTML vous permet d’imiter l’écran, le user‑agent et le device‑pixel‑ratio (DPR) d’un iPhone avec quelques lignes de Java. + +Dans ce tutoriel, nous passerons en revue les étapes exactes pour définir un **user agent personnalisé**, configurer le **device pixel ratio**, et vérifier que tout fonctionne comme prévu. À la fin, vous disposerez d’un sandbox réutilisable qui rend les pages exactement comme un iPhone 8, et vous comprendrez pourquoi chaque paramètre est important. + +## Ce que vous allez accomplir + +- Créer un objet `Screen` qui reflète les dimensions et le DPR d’un iPhone. +- Appliquer une chaîne **custom user agent** afin que les serveurs pensent que la requête provient de Safari sur iOS. +- Construire un `DocumentSandbox` qui lie l’écran et le user‑agent ensemble. +- Exécuter un `HTMLDocument` à l’intérieur du sandbox et voir la sortie console confirmant la configuration. + +Aucune bibliothèque externe en dehors d’Aspose.HTML n’est requise, et le code s’exécute sur n’importe quel environnement Java 17+. + +--- + +![capture d'écran de l'émulation d'iPhone](https://example.com/images/iphone-emulation.png "comment émuler iPhone en utilisant le sandbox Aspose.HTML") + +## Comment émuler iPhone avec le sandbox Aspose.HTML + +La première chose dont nous avons besoin est un `Screen` qui reflète les dimensions physiques de l’iPhone *et* sa densité de pixels. C’est le cœur de **comment émuler iPhone** avec précision. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Pourquoi c’est important :** +- La largeur = 375 px et la hauteur = 667 px sont les dimensions en pixels CSS que vous verrez dans Chrome DevTools lorsque vous sélectionnez un iPhone 8. +- Définir le DPR à 2 indique au moteur de rendu de traiter chaque pixel CSS comme deux pixels physiques, vous offrant un texte et des images nets—exactement comme le fait un appareil réel. + +> *Astuce :* Si vous devez émuler un iPhone plus récent (comme l’iPhone 13), il suffit de changer les nombres à 390 × 844 et DPR = 3. + +## Définir un User Agent personnalisé (set custom user agent) + +Ensuite, nous devons **définir un custom user agent** afin que le serveur fournisse le HTML/CSS spécifique mobile. Sans cela, de nombreux sites penseront toujours que vous êtes sur un ordinateur de bureau. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Comment cela fonctionne :** +- L’en-tête `User-Agent` est la poignée de main que les navigateurs utilisent pour s’annoncer. +- En fournissant la chaîne exacte que Safari sur iOS 16 envoie, vous assurez que le serveur renvoie les ressources optimisées pour le mobile (par ex. images responsives, scripts adaptatifs, etc.). + +Si vous avez besoin de **définir le user-agent** pour un autre appareil, il suffit de remplacer la chaîne par la valeur appropriée—Google Chrome, Firefox, ou même un bot personnalisé. + +## Configurer le Device Pixel Ratio (set device pixel ratio) + +Nous allons maintenant réellement **définir le device pixel ratio** dans le sandbox. C’est l’étape qui répond directement à « **comment définir le dpr** » pour un environnement simulé. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Explication :** +- Le pattern `Builder` vous permet d’attacher de façon fluide à la fois l’écran (qui porte le DPR) et le user‑agent. +- Lorsque le sandbox rend un `HTMLDocument`, il fera comme s’il s’exécutait sur un appareil avec cette densité de pixels exacte. + +> *Pourquoi c’est important :* Certaines requêtes média CSS utilisent `device-pixel-ratio` (par ex., `@media (-webkit-min-device-pixel-ratio: 2)`). Si vous ne définissez pas le DPR, ces règles ne s’activent jamais, et vous manquerez les ressources haute résolution. + +## Vérifier la configuration du sandbox (how to set user-agent) + +Mettons le sandbox en action. Le fragment suivant crée un `HTMLDocument`, charge une page, et affiche une confirmation que le sandbox est actif. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Sortie console attendue** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Si vous exécutez le programme et voyez cette ligne, vous avez réussi à **émuler iPhone** avec le DPR et le user‑agent corrects. Ouvrez la page dans un vrai navigateur et inspectez les dimensions du viewport—vous remarquerez qu’elles correspondent aux valeurs iPhone que nous avons définies. + +## Pièges courants et comment définir correctement le DPR (how to set dpr) + +Même avec le bon code, quelques pièges peuvent vous surprendre : + +| Problème | Pourquoi cela se produit | Solution | +|----------|--------------------------|----------| +| **Le DPR reste à 1** | Vous avez passé un `Screen` sans le troisième argument (DPR). | Utilisez toujours `new Screen(width, height, dpr)`. | +| **User‑Agent ignoré** | Le sandbox n’était pas attaché au `HTMLDocument`. | Passez le `documentSandbox` comme deuxième argument au constructeur `HTMLDocument`. | +| **Dimensions incorrectes** | Utilisation de pixels d’appareil au lieu de pixels CSS. | Rappelez‑vous : la largeur/hauteur sont des **pixels CSS**, pas des pixels matériels. | +| **Le serveur envoie toujours du CSS desktop** | Certains sites utilisent JavaScript pour détecter les appareils, pas seulement l’en‑tête. | Envisagez également d’injecter une balise meta viewport si nécessaire. | + +En gardant cela à l’esprit, vous rencontrerez rarement une situation où l’émulation ne se comporte pas comme prévu. + +## Étendre le sandbox – Prochaines étapes + +Maintenant que vous savez **comment définir un user agent personnalisé** et **comment définir le dpr**, vous pouvez expérimenter davantage : + +- **Modifier la taille de l’écran** pour émuler des tablettes ou des téléphones plus grands. +- **Changer le user‑agent** pour tester Chrome sur Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Ajouter des cookies ou des en‑têtes** via la méthode `setHeaders` du sandbox pour des tests authentifiés. +- **Capturer une capture d’écran** en utilisant `HTMLDocument.renderToFile("output.png")` pour comparer automatiquement les différences visuelles. + +Ces extensions vous permettent de créer un harness de test complet sans jamais quitter votre IDE. + +## Conclusion + +Nous avons couvert **comment émuler iPhone** en utilisant le `DocumentSandbox` d’Aspose.HTML, vous montrant exactement **comment définir un user agent personnalisé**, **comment définir le device pixel ratio**, et même les différences subtiles entre « **comment définir le user-agent** » et « **comment définir le dpr** ». L’exemple complet et exécutable montre chaque élément en un seul endroit, afin que vous puissiez copier‑coller, ajuster, et commencer à tester les mises en page mobiles instantanément. + +Essayez‑le — changez les dimensions de l’écran, jouez avec différents user‑agents, et observez comment vos pages réagissent. Une fois que vous maîtrisez ces paramètres, le débogage des designs responsives devient un jeu d’enfant, et vous économiserez d’innombrables heures à traquer des bugs sur de vrais appareils. + +Des questions ou envie de partager vos propres variantes ? Laissez un commentaire ci‑dessous, et bon émulation ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/advanced-usage/_index.md b/html/german/java/advanced-usage/_index.md index 04e8224ec..60d00f701 100644 --- a/html/german/java/advanced-usage/_index.md +++ b/html/german/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Erfahren Sie, wie Sie die PDF‑Seitengröße mit Aspose.HTML für Java anpassen Erfahren Sie, wie Sie die XPS‑Seitengröße mit Aspose.HTML für Java anpassen. Steuern Sie die Ausgabedimensionen Ihrer XPS‑Dokumente einfach. ### [Wie man JavaScript in Java ausführt – Komplettanleitung](./how-to-run-javascript-in-java-complete-guide/) Erfahren Sie, wie Sie JavaScript-Code innerhalb von Java-Anwendungen ausführen und integrieren können. +### [Top‑Level‑Await‑Beispiel – Verwendung von await‑Delay in JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Erfahren Sie, wie Sie das Top‑Level‑Await‑Muster mit einer Verzögerungsfunktion in JavaScript einsetzen. --- diff --git a/html/german/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/german/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..6ce200305 --- /dev/null +++ b/html/german/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Top-Level‑Await‑Beispiel, das await‑Delay in JavaScript, eine Inkrement‑Zähler‑Klasse + und öffentliche Klassenfelder in JavaScript in einer Live‑Demo zeigt. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: de +og_description: Top-Level‑Await‑Beispiel, das await‑Delay in JavaScript, eine Inkrement‑Zähler‑Klasse + und öffentliche Klassenfelder in JavaScript in einem kurzen Tutorial demonstriert. +og_title: Top-Level‑Await‑Beispiel – Verwendung von await delay in JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Top-Level-Await-Beispiel – Verwendung von await delay in JavaScript +url: /de/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Top‑Level‑Await‑Beispiel – Verwendung von await delay in JavaScript + +Haben Sie sich jemals gefragt, wie man die Ausführung eines Moduls pausieren kann, ohne alles in eine async IIFE zu verpacken? Genau das ermöglicht ein **top level await example**. In diesem Tutorial gehen wir eine kleine Webseite durch, die `await delay javascript` verwendet, um Arbeit zu verzögern, und dann eine `increment counter class` erstellt, die **public class fields javascript** nutzt. Am Ende haben Sie ein komplettes Copy‑and‑Paste‑Snippet, das in jedem modernen Browser läuft. + +Wir behandeln alles, von der Definition einer Klasse mit einem öffentlichen Feld bis hin zur Verkabelung einer einfachen, versprechenbasierten Delay‑Hilfsfunktion. Keine externen Bibliotheken, kein Build‑Schritt – nur reines HTML, ein ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Erwartete Konsolenausgabe + +``` +Counter class initialized +Final count: 1 +``` + +Wenn Sie die Seite in den DevTools öffnen, sollten Sie die Meldung des statischen Blocks **vor** dem Abschluss des Delays sehen, was bestätigt, dass die Klasse zuerst ausgewertet wurde. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +Vielleicht fragen Sie sich, warum wir nicht geschrieben haben: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Beide Ansätze funktionieren, aber **public class fields javascript** bieten eine sauberere, deklarativere Syntax. Das Feld wird einmal definiert, nicht in jedem Konstruktoraufruf, was bei wachsenden Klassen leichter zu lesen ist. Außerdem können statische Blöcke nicht innerhalb eines Konstruktors platziert werden, sodass die Trennung von Initialisierungslogik natürlicher wird. + +## Step 6 – Adapting the Example for Real‑World Apps + +In der Produktion benötigen Sie oft mehr als einen einzigen Zähler. Hier ein paar schnelle Ideen: + +- **Mehrere Zähler:** In einer `Map` speichern, die nach Identifiern indiziert ist. +- **Persistenter Zustand:** `console.log` durch Schreibvorgänge in `localStorage` ersetzen. +- **Async‑Initialisierung:** Den statischen Block nutzen, um Konfigurationen vom Server zu holen, bevor Instanzen erstellt werden. + +All diese Muster profitieren weiterhin von Top‑Level‑Await, weil Sie Daten einmal beim Laden des Moduls abrufen und sicherstellen können, dass sie für jeden Verbraucher bereitstehen. + +## Frequently Asked Questions + +**Q: Blockiert Top‑Level‑Await andere Module?** +A: Nein. Jedes Modul läuft unabhängig. Nur das Modul, das das Await enthält, wird pausiert; andere Module laden parallel weiter. + +**Q: Was passiert, wenn das Delay‑Promise abgelehnt wird?** +A: Eine unbehandelte Ablehnung bricht die Modulauswertung ab und erscheint als Fehler in der Konsole. Wickeln Sie das Await in ein `try…catch`, wenn Sie eine sanfte Fallback‑Logik benötigen. + +**Q: Ist das Schlüsselwort `static` erforderlich?** +A: Nicht für den Zähler selbst, aber der statische Block ist eine praktische Möglichkeit zu zeigen, dass Code *einmal* zur Ladezeit läuft – ideal für Logging oder Feature‑Detection. + +## Conclusion + +Sie haben gerade ein **top level await example** gebaut, das `await delay javascript`, eine **increment counter class** und die Kraft von **public class fields javascript** demonstriert. Das komplette, ausführbare Snippet befindet sich oben, und die Konsolenausgabe beweist, dass der statische Block vor dem verzögerten Code ausgeführt wird. + +Ab hier können Sie mit komplexeren async‑Abläufen experimentieren, das Delay durch einen echten API‑Aufruf ersetzen oder die Klasse um weitere Methoden erweitern. Denken Sie daran: Modernes JavaScript lässt Sie Module als erstklassige async‑Entitäten behandeln – keine zusätzlichen Wrapper nötig. + +Viel Spaß beim Coden, und teilen Sie gern Ihre Varianten in den Kommentaren. Wenn Ihnen dieser Leitfaden geholfen hat, teilen Sie ihn mit einem Teamkollegen, der noch mit async‑Mustern kämpft! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/conversion-html-to-other-formats/_index.md b/html/german/java/conversion-html-to-other-formats/_index.md index 5645e79f7..589d72162 100644 --- a/html/german/java/conversion-html-to-other-formats/_index.md +++ b/html/german/java/conversion-html-to-other-formats/_index.md @@ -89,6 +89,9 @@ Erfahren Sie, wie Sie HTML in Java mit Aspose.HTML zu PDF konvertieren. Erstelle ### [HTML zu PDF in Java – Schritt‑für‑Schritt‑Anleitung mit Seitengrößeneinstellungen](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Erfahren Sie, wie Sie HTML in Java zu PDF konvertieren und dabei die Seitengröße präzise festlegen. +### [PDF mit benutzerdefinierter Größe erstellen – HTML zu PDF mit Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Erfahren Sie, wie Sie mit Aspose.HTML in Java PDFs mit benutzerdefinierten Seitenmaßen aus HTML erzeugen. + ### [Konvertierung von HTML zu MHTML](./convert-html-to-mhtml/) Konvertieren Sie HTML mühelos zu MHTML mit Aspose.HTML für Java. Folgen Sie unserer Schritt‑für‑Schritt‑Anleitung für eine effiziente HTML‑zu‑MHTML‑Konvertierung. @@ -98,6 +101,9 @@ Erfahren Sie, wie Sie HTML mühelos zu XPS mit Aspose.HTML für Java konvertiere ### [Konvertierung von Markdown zu HTML](./convert-markdown-to-html/) Konvertieren Sie Markdown in Java nahtlos zu HTML mit Aspose.HTML für Java. Folgen Sie unserer Schritt‑für‑Schritt‑Anleitung, um Ihre Dokumentenkonvertierungs‑Bedürfnisse zu optimieren. +### [HTML in Markdown konvertieren in Java – Originalformatierung beibehalten](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Erfahren Sie, wie Sie HTML mit Aspose.HTML in Java in Markdown umwandeln und dabei die ursprüngliche Formatierung erhalten. + ### [Konvertierung von SVG zu Bild](./convert-svg-to-image/) Erfahren Sie, wie Sie SVG in Java mit Aspose.HTML zu Bildern konvertieren. Umfassende Anleitung für hochwertige Ausgaben. @@ -107,6 +113,9 @@ Konvertieren Sie SVG in Java mit Aspose.HTML zu PDF. Eine nahtlose Lösung für ### [Konvertierung von SVG zu XPS](./convert-svg-to-xps/) Erfahren Sie, wie Sie SVG mit Aspose.HTML für Java zu XPS konvertieren. Einfache, Schritt‑für‑Schritt‑Anleitung für reibungslose Konvertierungen. +### [PDF aus HTML in Java erstellen – Parallel‑Batch‑Konvertierungs‑Leitfaden](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Erfahren Sie, wie Sie mehrere HTML‑Dateien gleichzeitig in PDFs konvertieren und dabei die Leistung mit paralleler Verarbeitung maximieren. + ## Häufig gestellte Fragen **Q: Kann ich Aspose.HTML für Java in einer kommerziellen Anwendung verwenden?** diff --git a/html/german/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/german/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..4f0d898b2 --- /dev/null +++ b/html/german/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-03-26 +description: Konvertieren Sie HTML in Markdown und erzeugen Sie eine Markdown‑Datei, + wobei das ursprüngliche Format mit der Aspose‑HTML‑Konvertierung in Java beibehalten + wird. Lernen Sie Schritt für Schritt. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: de +og_description: Konvertieren Sie HTML schnell in Markdown, erzeugen Sie eine Markdown-Datei + und behalten Sie die ursprüngliche Formatierung bei, indem Sie die Aspose HTML-Konvertierung + für Java verwenden. +og_title: HTML in Markdown in Java konvertieren – Formatierung beibehalten +tags: +- Aspose +- Java +- Markdown +title: HTML in Markdown in Java konvertieren – Originalformatierung beibehalten +url: /de/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML in Markdown konvertieren in Java – Originalformatierung beibehalten + +Haben Sie jemals **HTML in Markdown konvertieren** müssen, aber befürchtet, dass Sie die Abstände, Tabellen oder Inline‑Tags verlieren? Sie sind nicht allein. Viele Entwickler stoßen auf dieses Problem, wenn sie Inhalte von einer Webseite in ein sauberes, versionskontroll‑freundliches Format übertragen wollen. Die gute Nachricht? Mit ein paar Zeilen Java und Aspose HTML können Sie **eine Markdown‑Datei erzeugen**, die exakt wie die Quelle aussieht, inklusive aller Leerzeichen. + +In diesem Leitfaden gehen wir den gesamten Prozess durch: Laden einer komplexen HTML‑Datei, Konfigurieren der Konvertierung, sodass sie **die Originalformatierung beibehält**, und schließlich Schreiben der Ausgabe in `preserved.md`. Am Ende haben Sie ein sofort ausführbares Snippet, verstehen *warum* jede Einstellung wichtig ist und wissen, wie Sie den Code für Sonderfälle wie benutzerdefiniertes CSS oder eingebettete Skripte anpassen. + +## Was Sie benötigen + +- Java 17 (oder ein aktuelles JDK) – die API funktioniert mit Java 8+, aber neuere Versionen bieten bessere Leistung. +- Aspose HTML for Java Bibliothek (Version 23.11 oder später). Sie können sie von Maven Central beziehen: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Eine Beispiel‑HTML‑Datei (`complex.html`), die Überschriften, Tabellen, Codeblöcke und eventuell Inline‑``‑Styling enthält. +- Ein wenig Geduld und die Bereitschaft zu experimentieren. + +Das war’s. Keine externen Werkzeuge, keine Befehlszeilen‑Tricks – nur reiner Java‑Code. + +## Schritt 1: Laden des Quell‑HTML‑Dokuments + +Das erste, was wir tun, ist eine `HTMLDocument`‑Instanz zu erstellen, die auf Ihre Quelldatei verweist. Aspose HTML behandelt die Datei als DOM, was bedeutet, dass Sie sie vor der Konvertierung inspizieren oder ändern können, falls nötig. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Warum das wichtig ist:** Das Laden des Dokuments auf diese Weise stellt sicher, dass alle verknüpften Ressourcen (Stylesheets, Bilder) relativ zum Dateipfad aufgelöst werden. Wenn Sie diesen Schritt überspringen und einen rohen String übergeben, könnten Sie externes CSS verlieren, das die Abstände beeinflusst – genau das, was Sie **die Originalformatierung beibehalten** möchten. + +## Schritt 2: Konfigurieren der Markdown‑Konvertierungsoptionen + +Aspose HTML stellt Ihnen die Klasse `MarkdownConversionOptions` zur Verfügung. Die Schlüssel­eigenschaft für uns ist `setPreserveOriginalFormatting(true)`. Wenn aktiviert, behält der Konverter Zeilenumbrüche, Einrückungen und sogar rohe HTML‑Snippets bei, die Markdown nicht nativ darstellen kann. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro‑Tipp:** Wenn Sie später feststellen, dass einige Inline‑Styles entfernt werden, können Sie auch `markdownOptions.setIncludeHtml(true)` aufrufen, um rohe HTML‑Blöcke in die Markdown‑Ausgabe zu erzwingen. + +## Schritt 3: Durchführung der Konvertierung + +Jetzt übergeben wir das `HTMLDocument`, den Ziel‑Dateipfad und unsere Optionen an die statische Methode `Converter.convertHTML`. Die Methode erledigt im Hintergrund die gesamte schwere Arbeit. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Wenn der Aufruf abgeschlossen ist, finden Sie `preserved.md` neben Ihrer Quelldatei. Öffnen Sie sie in einem beliebigen Editor – Sie werden sehen, dass die ursprünglichen Zeilenumbrüche und die Tabellen­ausrichtung erhalten geblieben sind. + +## Schritt 4: Ergebnis überprüfen (optional, aber empfohlen) + +Ein kurzer Plausibilitäts‑Check bewahrt Sie später vor subtilen Fehlern. Sie können die Datei wieder in Java einlesen und die ersten Zeilen ausgeben, oder sie einfach in VS Code öffnen. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Sie sollten etwa Folgendes sehen: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Das ``‑Tag ist immer noch vorhanden, weil die native Markdown‑Tabellensyntax das genaue Styling nicht erfassen konnte – dank `preserve original formatting`. + +## Schritt 5: Alles zusammenfassen – vollständiges ausführbares Beispiel + +Unten finden Sie die komplette, sofort ausführbare Klasse. Ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Pfad auf Ihrem Rechner. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Führen Sie das Programm mit `mvn exec:java` oder Ihrer bevorzugten IDE aus, und Sie erhalten eine **generierte Markdown‑Datei**, die das ursprüngliche HTML‑Layout widerspiegelt. + +## Häufige Fragen & Sonderfälle + +### Funktioniert das mit externen CSS‑Dateien? + +Ja. Solange die CSS‑Dateien über relative Pfade erreichbar sind, lädt Aspose HTML sie automatisch. Wenn Sie HTML von einer entfernten URL abrufen, müssen Sie möglicherweise ein benutzerdefiniertes `ResourceLoadingOptions`‑Objekt setzen, um Netzwerkzugriff zu erlauben. + +### Was, wenn ich kein rohes HTML im Markdown haben möchte? + +Schalten Sie einfach die Option um: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Der Konverter wird dann versuchen, alles in reinen Markdown‑Syntax zu übersetzen, wobei möglicherweise etwas Layout‑Treue verloren geht. + +### Kann ich einen String anstelle einer Datei konvertieren? + +Absolut. Verwenden Sie den Konstruktor, der einen `String` akzeptiert: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Dann übergeben Sie `doc` wie zuvor an `Converter.convertHTML`. + +### Wie unterscheidet sich das von anderen Bibliotheken wie Flexmark oder pandoc? + +Die meisten Open‑Source‑Tools behandeln HTML als Klartext und entfernen Leerzeichen aggressiv. Das `preserveOriginalFormatting`‑Flag von Aspose HTML ist ein **proprietäres Feature**, das die Leerzeichen, Zeilenumbrüche des Originalsources respektiert und sogar nicht unterstützte Tags als rohe HTML‑Blöcke beibehält. Deshalb betont dieses Tutorial **aspose html conversion** für Java‑Entwickler, die eine exakte Treue benötigen. + +## Tipps für den Produktionseinsatz + +- **Batch‑Verarbeitung:** Packen Sie die Konvertierungslogik in eine Schleife, um mehrere HTML‑Dateien auf einmal zu verarbeiten. +- **Fehlerbehandlung:** Fangen Sie `IOException` und `com.aspose.html.exceptions.AssertionFailedException`, um fehlende Ressourcen sichtbar zu machen. +- **Performance:** Verwenden Sie eine einzelne `HTMLDocument`‑Instanz wieder, wenn Sie Fragmente einer großen Seite konvertieren; die Bibliothek cached das geparste CSS. + +## Fazit + +Wir haben Ihnen gerade gezeigt, wie Sie **HTML in Markdown** in Java konvertieren können, während Sie sicherstellen, dass die Ausgabe **die Originalformatierung beibehält**. Das kurze, eigenständige Snippet demonstriert den gesamten Arbeitsablauf – vom Laden des HTML‑Dokuments über das Konfigurieren von `MarkdownConversionOptions`, die Durchführung der Konvertierung bis hin zur Überprüfung des Ergebnisses. Mit der robusten API von Aspose HTML können Sie jetzt **eine Markdown‑Datei** programmgesteuert **generieren**, egal ob Sie einen Static‑Site‑Generator, eine Dokumentations‑Pipeline oder ein Content‑Migrations‑Tool bauen. + +Als Nächstes könnten Sie erkunden: + +- Verwendung von **html to markdown java** für Massenmigrationen über eine gesamte Website. +- Anpassen der Konvertierungsoptionen, um GitHub‑flavoured Markdown‑Tabellen auszugeben. +- Kombination dieses Ansatzes mit einem CI/CD‑Schritt, der Ihre Dokumentation automatisch aktualisiert, sobald sich das Quell‑HTML ändert. + +Fühlen Sie sich frei zu experimentieren und hinterlassen Sie einen Kommentar, falls Sie auf Probleme stoßen. Viel Spaß beim Coden! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/german/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..0de434c0b --- /dev/null +++ b/html/german/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-03-26 +description: Erstellen Sie PDFs mit benutzerdefinierter Größe aus HTML mit Aspose.HTML + für Java. Erfahren Sie, wie Sie HTML in PDF konvertieren und die PDF‑Seitengröße + in nur wenigen Schritten festlegen. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: de +og_description: Erstellen Sie PDFs in benutzerdefinierter Größe aus HTML mit Aspose. + Dieser Leitfaden zeigt Ihnen, wie Sie HTML in PDF konvertieren, die PDF‑Seitengröße + ändern und die PDF‑Seitengröße mühelos festlegen. +og_title: PDF mit benutzerdefinierter Größe erstellen – Schnellleitfaden zur Umwandlung + von HTML in PDF +tags: +- aspose +- java +- pdf +- html +title: PDF mit benutzerdefinierter Größe erstellen – HTML mit Aspose in PDF konvertieren +url: /de/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF mit benutzerdefinierter Größe erstellen – HTML zu PDF konvertieren mit Aspose + +Haben Sie schon einmal **PDF mit benutzerdefinierter Größe** aus einer HTML‑Datei erstellen müssen? In diesem Tutorial zeigen wir Ihnen, wie Sie **HTML zu PDF** konvertieren und die PDF‑Seitengröße mit Aspose.HTML für Java festlegen. + +Wenn Sie Rechnungen, Berichte oder E‑Books erstellen, sind die genauen Seitenmaße entscheidend – sonst wirkt das Layout verschoben oder wird abgeschnitten. + +Wir gehen Schritt für Schritt durch den gesamten Prozess, vom Laden des Quell‑HTML bis zum Anpassen der Ränder, und schließen mit einem einsatzbereiten PDF ab. Keine vagen Verweise, sondern ein vollständiges, ausführbares Beispiel, das Sie noch heute kopieren‑und‑einfügen können. + +## Was Sie benötigen + +- **Java 17** (oder ein aktuelles JDK). +- **Aspose.HTML for Java** JARs – Sie können die neueste Version aus dem Maven‑Repository oder von der Aspose‑Website beziehen. +- Eine einfache `input.html`‑Datei, die Sie in einem Ordner Ihrer Wahl ablegen. +- Eine IDE oder ein Text‑Editor Ihrer Wahl; ich programmiere meist mit IntelliJ IDEA, aber Eclipse funktioniert ebenfalls einwandfrei. + +Wenn diese Voraussetzungen erfüllt sind, stoßen Sie nicht mitten im Prozess auf „class not found“-Fehler. + +Jetzt legen wir los. + +![PDF mit benutzerdefinierter Größe Beispiel](/images/create-pdf-custom-size.png "Screenshot, der ein PDF mit benutzerdefinierter Seitengröße und Rändern zeigt – PDF mit benutzerdefinierter Größe erstellen") + +## PDF mit benutzerdefinierter Größe – Kernschritte + +Unten finden Sie das vollständige Java‑Programm, das Sie erhalten werden. Kopieren Sie es gern in eine Datei namens `ConvertHtmlToPdfCustomPage.java` und führen Sie es aus, nachdem Sie die Aspose‑Abhängigkeiten zu Ihrem Projekt hinzugefügt haben. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Schritt 1 – HTML zu PDF konvertieren: Dokument laden + +Zuerst **laden wir das HTML**, das wir in ein PDF umwandeln wollen. +`HTMLDocument` liest die Datei, löst relative Links auf und baut ein DOM, das Aspose rendern kann. + +> **Warum das wichtig ist:** Wenn das HTML CSS oder Bilder referenziert, holt Aspose diese relativ zum Dateipfad. Ein absoluter Pfad (`YOUR_DIRECTORY/input.html`) verhindert „file not found“-Überraschungen. + +### Schritt 2 – PDF‑Seitengröße ändern: Optionen konfigurieren + +Hier erstellen wir ein `PdfConversionOptions`‑Objekt. +- `setPageSize(PageSize.A4)` weist Aspose an, die Standard‑A4‑Abmessungen (210 × 297 mm) zu verwenden. +- `setPageOrientation(...)` dreht die Seite, falls Sie Querformat benötigen. +- `setMargins(new Margin(20, 20, 20, 20))` setzt an jeder Seite einen Rand von 20 Punkten. + +Sie können `PageSize.A4` durch `PageSize.LETTER` oder sogar eine **benutzerdefinierte Größe** ersetzen, indem Sie ein `SizeF`‑Objekt übergeben, z. B.: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Pro‑Tipp:** Ein Punkt entspricht 1/72 Zoll. Wenn Sie in Millimetern denken, multiplizieren Sie mit 2,83465, um Punkte zu erhalten. + +### Schritt 3 – PDF aus HTML erzeugen: Konvertierung ausführen + +`Converter.convertHTML` übernimmt die eigentliche Arbeit. Es nimmt das geladene `HTMLDocument`, den Ausgabepfad und die zuvor konfigurierten Optionen. + +Wenn Sie die **PDF‑Seitengröße** dynamisch anhand des Inhalts festlegen möchten, können Sie die erforderlichen Abmessungen vor diesem Schritt berechnen und `pdfOptions` entsprechend anpassen. + +### Schritt 4 – Ergebnis überprüfen + +Die Zeile `System.out.println` ist optional, liefert aber sofortiges Feedback, wenn Sie das Programm in einer Konsole ausführen. Nach der Ausführung öffnen Sie `custom_page.pdf` – Sie sollten ein A4‑Portrait‑PDF mit einheitlichen 20‑Punkt‑Rändern sehen, genau wie angegeben. + +## HTML zu PDF – Häufige Varianten + +### Einen Stream anstelle eines Dateipfads verwenden + +Manchmal liegt keine physische Datei vor; das HTML kommt vielleicht aus einer Datenbank oder einer API. In diesem Fall wickeln Sie den String in einen `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Das zweite Argument ist die Basis‑URL zum Auflösen relativer Ressourcen. + +### Seitenorientierung ändern + +Wenn Ihr Bericht breit ist, wechseln Sie zu Querformat: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Ränder feinjustieren + +Ränder akzeptieren Gleitkommawerte, sodass Sie z. B. 0,5 pt für einen hauchdünnen Rand setzen können: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Große HTML‑Dateien verarbeiten + +Bei sehr umfangreichen Dokumenten sollten Sie **speichereffizientes Streaming** aktivieren: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Damit schreibt Aspose Zwischendaten in temporäre Dateien, anstatt alles im RAM zu halten. + +## PDF‑Seitengröße festlegen – Sonderfälle & Fallstricke + +- **Fehlende Schriftarten:** Wenn Ihr HTML eine benutzerdefinierte Schrift verwendet, die nicht auf dem Server installiert ist, greift das PDF auf eine Standardschrift zurück. Betten Sie die Schrift mit `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` ein. +- **Bildskalierung:** Hochauflösende Bilder können das PDF aufblähen. Nutzen Sie `pdfOptions.setImageResolution(150);`, um die Auflösung zu reduzieren und dennoch gute Qualität zu erhalten. +- **CSS‑Kompatibilität:** Nicht alle CSS‑Eigenschaften werden vollständig unterstützt. Halten Sie sich an gängige Layout‑Techniken (Flexbox funktioniert, Grid kann quirlig sein). +- **Pfad‑Berechtigungen:** Stellen Sie sicher, dass der Prozess Schreibzugriff auf `YOUR_DIRECTORY` hat. Andernfalls wird eine `IOException` ausgelöst. + +## Erwartete Ausgabe + +Das Ausführen des Programms erzeugt ein PDF, das etwa so aussieht (schematische Darstellung): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Seitengröße: **A4** (210 × 297 mm). +- Orientierung: **Portrait**. +- Ränder: **20 pt** an jeder Seite. + +Öffnen Sie die Datei mit einem beliebigen PDF‑Betrachter (Adobe Reader, Chrome usw.), um das Ergebnis zu prüfen. + +## Fazit + +Sie wissen jetzt, wie Sie **PDF mit benutzerdefinierter Größe** aus einer HTML‑Quelle mit Aspose.HTML für Java erstellen. Das Tutorial hat die gesamte Pipeline abgedeckt: **HTML zu PDF konvertieren**, **PDF‑Seitengröße ändern**, **PDF‑Seitengröße festlegen** und **PDF aus HTML mit benutzerdefinierten Rändern generieren**. + +Experimentieren Sie gern – tauschen Sie `PageSize.LETTER` gegen Legal‑Größe aus, passen Sie die Ränder an oder betten Sie eigene Schriftarten ein. Als Nächstes könnten Sie **Wasserzeichen hinzufügen**, **das PDF verschlüsseln** oder **mehrere HTML‑Dateien stapelweise verarbeiten**. All diese Themen bauen auf den hier vorgestellten Kernkonzepten auf. + +Haben Sie eine Frage zu einem speziellen Sonderfall? Hinterlassen Sie einen Kommentar unten, und ich helfe Ihnen gern beim Troubleshooting. Viel Spaß beim Coden! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/german/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..18d271425 --- /dev/null +++ b/html/german/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,244 @@ +--- +category: general +date: 2026-03-26 +description: Erstelle PDFs aus HTML schnell mit einem festen Thread‑Pool. Lerne Batch‑HTML‑zu‑PDF + und führe parallele Aufgaben in Java aus. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: de +og_description: Erstelle PDFs schnell aus HTML mit einem festen Thread‑Pool. Erfahre, + wie du HTML zu PDF stapelst und parallele Aufgaben in Java ausführst. +og_title: PDF aus HTML in Java erstellen – Leitfaden für parallele Batch‑Konvertierung +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: PDF aus HTML in Java erstellen – Leitfaden für parallele Batch‑Konvertierung +url: /de/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF aus HTML in Java erstellen – Leitfaden für parallele Stapelkonvertierung + +Haben Sie schon einmal **PDF aus HTML erstellen** müssen, aber waren frustriert, weil die ein‑Thread‑Konvertierung ewig dauerte? Sie sind nicht allein. In vielen realen Projekten erhalten wir Dutzende von HTML‑Berichten, die bis zum Tagesende in PDFs umgewandelt werden müssen, und das einzeln zu erledigen ist einfach nicht praktikabel. + +Deshalb zeigt dieses Tutorial, **wie man HTML zu PDF** mit einem **fixed thread pool** konvertiert, sodass Sie **HTML zu PDF stapeln** und **parallel Aufgaben ausführen** können, ohne ins Schwitzen zu geraten. Am Ende haben Sie ein vollständiges, sofort ausführbares Programm, das einen Ordner mit HTML‑Dateien in PDFs in einem Bruchteil der Zeit verwandelt. + +## Was Sie lernen werden + +In den nächsten Abschnitten behandeln wir alles, was Sie wissen müssen: + +* Die exakte Maven/Gradle‑Abhängigkeit für Aspose.HTML (die Bibliothek, die die schwere Arbeit übernimmt). +* Warum ein **fixed thread pool** der optimale Ansatz für CPU‑intensive Konvertierungen ist. +* Wie Sie Ihre Quelldateien auflisten, sodass der Prozess auf Hunderte von Dokumenten skalieren kann. +* Der genaue Code, den Sie in Ihre IDE einfügen – ohne fehlende Importe, ohne „TODO“-Kommentare. +* Tipps zum Umgang mit Fehlern, zur Feinabstimmung der Pool‑Größe und zur Überprüfung der Ausgabe. + +Vorkenntnisse zu Aspose.HTML sind nicht nötig, nur ein grundlegendes Java‑Setup und die Bereitschaft zu experimentieren. Los geht’s. + +--- + +![Diagramm, das einen fixed thread pool zeigt, der mehrere HTML‑Dateien parallel zu PDF konvertiert – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Bildunterschrift: create pdf from html – Diagramm für parallele Konvertierung* + +## Schritt 1: Projekt vorbereiten und Aspose.HTML hinzufügen + +Zuerst muss Ihr Projekt die Aspose.HTML‑Bibliothek enthalten. Wenn Sie Maven verwenden, fügen Sie das Folgende in Ihre `pom.xml` ein: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Für Gradle genügt: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Warum Aspose.HTML? Es ist eine kommerzielle Bibliothek, bietet aber eine **convert html to pdf**‑API, die CSS, JavaScript und komplexe Layouts out of the box verarbeitet. Wenn Sie eine Open‑Source‑Alternative bevorzugen, können Sie später den Aufruf `Converter.convertHTML` austauschen, die Thread‑Logik bleibt jedoch unverändert. + +> **Pro‑Tipp:** Halten Sie die Versionsnummer mit den offiziellen Release‑Notes synchron; neuere Versionen verbessern häufig die Render‑Geschwindigkeit, was bei vielen parallelen Aufgaben wichtig ist. + +## Schritt 2: Einen Fixed Thread Pool für parallele Konvertierung erstellen + +Wenn Sie einen Stapel von Dateien haben, wollen Sie nicht eine unbeschränkte Anzahl von Threads starten – Ihr OS würde sonst thrashen. Ein **fixed thread pool** liefert eine vorhersehbare Parallelität und hält den Speicherverbrauch im Griff. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Warum vier? Auf einer typischen 8‑Kern‑Maschine können die Hälfte der Kerne für I/O und das OS frei bleiben. Sie können experimentieren: `Runtime.getRuntime().availableProcessors()` liefert die Kernanzahl, und eine Faustregel ist `cores / 2`. Denken Sie daran, dass jede Konvertierung CPU‑intensiv ist, sodass mehr Threads als Kerne meist die Leistung mindern. + +## Schritt 3: Die HTML‑Dateien sammeln, die Sie konvertieren möchten + +Der nächste Baustein ist die **batch html to pdf**‑Liste. Sie können ein Array fest codieren (wie im Beispiel) oder ein Verzeichnis scannen. Hier eine flexible Variante, die jede `.html`‑Datei aus einem Ordner liest: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Dieser Ansatz bedeutet, dass Sie neue Dateien einfach in den Ordner legen können und das Programm sie automatisch erkennt – ideal für einen nächtlichen Batch‑Job. + +## Schritt 4: Für jede Datei eine Konvertierungs‑Aufgabe einreichen (Parallel Tasks ausführen) + +Jetzt wird es spannend: Jede Datei wird zu einem **Runnable** (oder `Callable`) und vom Pool ausgeführt. Der untenstehende Code spiegelt das Originalbeispiel wider, fügt aber Fehlerbehandlung und eine kleine Log‑Nachricht hinzu. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Warum die Konvertierung in ein try‑catch einbetten?** Wenn Sie **parallel tasks ausführen**, könnte eine einzige fehlerhafte HTML‑Datei sonst den gesamten Executor zum Absturz bringen. Durch lokales Abfangen von Ausnahmen stellen wir sicher, dass der Rest des Stapels weiterläuft. + +## Schritt 5: Executor herunterfahren und auf Abschluss warten + +Nachdem alle Jobs eingereicht wurden, müssen Sie dem Pool mitteilen, dass er keine neuen Aufgaben mehr annimmt, und dann warten, bis alles fertig ist. Das garantiert, dass die JVM nicht zu früh beendet wird. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Bei einem riesigen Ordner (tausende Dateien) können Sie das Timeout erhöhen oder einen Fortschrittsmonitor implementieren. Wichtig ist ein **graceful shutdown** – das ist das Markenzeichen produktionsreifer Software. + +## Vollständiges funktionierendes Beispiel + +Alles zusammengefügt, hier eine eigenständige Klasse, die Sie in `src/main/java` kopieren und ausführen können: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Erwartete Ausgabe** (Beispiel): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Öffnen Sie die erzeugten `.pdf`‑Dateien, Sie werden sehen, dass das ursprüngliche HTML‑Layout erhalten bleibt – Schriftarten, Tabellen und sogar einfacher JavaScript‑gesteuerter Inhalt werden korrekt gerendert. + +## Häufige Fragen & Sonderfälle + +| Frage | Antwort | +|-------|----------| +| | | +| | | +| | | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/conversion-html-to-various-image-formats/_index.md b/html/german/java/conversion-html-to-various-image-formats/_index.md index f78c48517..c643e2307 100644 --- a/html/german/java/conversion-html-to-various-image-formats/_index.md +++ b/html/german/java/conversion-html-to-various-image-formats/_index.md @@ -94,6 +94,10 @@ Erfahren Sie, wie Sie HTML in PNG‑Bilder mit Java und Aspose.HTML konvertieren Erfahren Sie, wie Sie HTML einfach mit Aspose.HTML for Java in TIFF konvertieren. Schritt‑für‑Schritt‑Leitfaden für effiziente Dokumentenverarbeitung. ### [HTML in WebP konvertieren](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Erfahren Sie, wie Sie HTML mit Aspose.HTML for Java in das moderne WebP‑Format konvertieren – Schritt‑für‑Schritt‑Anleitung für optimale Bildqualität. +### [HTML in WebP konvertieren – Vollständiger Java-Leitfaden](./convert-html-to-webp-complete-java-guide/) +Erfahren Sie, wie Sie HTML mit Aspose.HTML for Java in das WebP‑Format konvertieren – vollständige Schritt‑für‑Schritt‑Anleitung. +### [Mehrseitiges TIFF aus SVG in Java erstellen – Schritt‑für‑Schritt‑Anleitung](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Erfahren Sie, wie Sie mit Aspose.HTML for Java ein mehrseitiges TIFF aus SVG-Dateien erstellen – umfassende Schritt‑für‑Step‑Anleitung. ## Häufig gestellte Fragen diff --git a/html/german/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/german/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..472548cd4 --- /dev/null +++ b/html/german/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-03-26 +description: Konvertieren Sie HTML schnell in WebP mit Aspose.HTML. Erfahren Sie, + wie Sie HTML als WebP speichern, HTML als WebP rendern und WebP aus HTML in nur + wenigen Schritten erzeugen. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: de +og_description: Konvertieren Sie HTML schnell in WebP mit Aspose.HTML. Dieses Tutorial + zeigt, wie man HTML als WebP rendert und WebP aus HTML in Java erzeugt. +og_title: HTML in WebP konvertieren – Vollständiger Java-Leitfaden +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML in WebP konvertieren – Vollständiger Java‑Leitfaden +url: /de/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML in WebP konvertieren – Vollständiger Java‑Leitfaden + +Haben Sie jemals **HTML in WebP konvertieren** müssen, waren sich aber nicht sicher, welche Bibliothek die Aufgabe ohne Kopfschmerzen erledigen kann? Sie sind nicht allein. Viele Entwickler stoßen auf dieses Problem, wenn sie leichte Bilder aus dynamischen Seiten bereitstellen wollen. Die gute Nachricht? Mit Aspose.HTML für Java können Sie *HTML als WebP speichern* mit einem einzigen Methodenaufruf, und der gesamte Prozess verläuft so geschmeidig wie Butter. + +In diesem Tutorial führen wir Sie durch alles, was Sie wissen müssen: vom Einrichten der Aspose.HTML‑Abhängigkeit über das Anpassen der Komprimierungseinstellungen bis hin zum Rendern des HTML‑Dokuments als WebP‑Datei, die Sie im Web bereitstellen können. Am Ende können Sie **HTML als WebP rendern**, **WebP aus HTML erzeugen** und verstehen das „Warum“ hinter jeder Konfigurationsoption. Keine externen Skripte, kein Kommandozeilen‑Gymnastik—nur sauberer Java‑Code. + +## Voraussetzungen + +- Java 8 oder neuer installiert (die Bibliothek unterstützt JDK 8+). +- Maven oder Gradle für das Abhängigkeitsmanagement (wir zeigen das Maven‑Snippet). +- Eine einfache HTML‑Datei (`input.html`), die Sie in ein WebP‑Bild umwandeln möchten. +- Eine IDE oder ein Texteditor Ihrer Wahl – IntelliJ IDEA funktioniert hervorragend, aber jeder reicht aus. + +Haben Sie das alles? Großartig, dann legen wir los. + +## Schritt 1: Aspose.HTML zu Ihrem Projekt hinzufügen + +Zunächst benötigen Sie die Aspose.HTML‑Bibliothek im Klassenpfad. Wenn Sie Maven verwenden, fügen Sie dies in Ihre `pom.xml` ein: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Für Gradle sieht es so aus: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Warum ist dieser Schritt entscheidend? Ohne das JAR existieren keine der Klassen `HTMLDocument`, `Converter` oder `WebpConversionOptions`, und der Compiler wirft eine `ClassNotFoundException`. Das Hinzufügen der Abhängigkeit zieht außerdem die nativen Binärdateien für die WebP‑Kodierung mit sich, sodass Sie nicht nach externen DLLs oder `.so`‑Dateien suchen müssen. + +> **Pro‑Tipp:** Halten Sie Ihre Abhängigkeiten aktuell. Neuere Aspose‑Versionen verbessern häufig die WebP‑Komprimierungsalgorithmen und fügen Unterstützung für neuere HTML5‑Features hinzu. + +## Schritt 2: Das Quell‑HTML‑Dokument laden + +Jetzt, da die Bibliothek bereit ist, können wir das HTML laden, das Sie konvertieren möchten. Die Klasse `HTMLDocument` parsed die Datei und baut ein DOM auf, das der Konverter später rendert. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Beachten Sie den Kommentar „Load the source HTML document“ – er erinnert daran, dass Sie vor der Konvertierung auch CSS oder JavaScript einfügen können, wenn Ihre Seite auf dynamisches Styling angewiesen ist. Wenn Sie diesen Schritt überspringen, hat der Konverter nichts zu rendern, was zu einem leeren Bild führt. + +## Schritt 3: WebP‑Konvertierungsoptionen konfigurieren + +Aspose.HTML bietet Ihnen eine feinkörnige Kontrolle über die Ausgabe. Für die meisten Fälle liefert ein **verlustbehaftetes** WebP mit einer Qualitätsstufe von etwa 85 ein gutes Gleichgewicht zwischen visueller Treue und Dateigröße. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Warum verlustbehaftet wählen? Der verlustbehaftete Modus von WebP verwendet prädiktive Kodierung, die Dateien im Vergleich zu PNG um 30‑50 % verkleinern kann, während die meisten visuellen Details erhalten bleiben. Wenn Sie pixelgenaue Ergebnisse benötigen (z. B. für Logos), wechseln Sie `CompressionMode` zu `Lossless` und erhöhen Sie `quality` auf 100. + +## Schritt 4: Das WebP‑Bild konvertieren und speichern + +Mit dem Dokument und den Optionen bereit, ist die eigentliche Konvertierung ein Einzeiler. Die statische Methode `Converter.convertHTML` übernimmt die gesamte Arbeit: Sie rendert das DOM auf ein Bitmap, kodiert es als WebP und schreibt die Datei auf die Festplatte. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Das war’s! Nachdem das Programm beendet ist, finden Sie `output.webp` neben Ihrem Quell‑HTML. Sie können es nun direkt von einem Web‑Server ausliefern, in ein ``‑Element einbetten oder in jedem Kontext verwenden, der WebP unterstützt. + +## Schritt 5: Ergebnis überprüfen (optional, aber empfohlen) + +Es ist immer eine gute Idee, zu überprüfen, ob die Konvertierung erfolgreich war und das Bild wie erwartet aussieht. Sie können die WebP‑Datei in Chrome, Firefox oder einem beliebigen Bildbetrachter öffnen, der das Format unterstützt. Für eine schnelle programmatische Prüfung können Sie Dateigröße und Abmessungen auslesen: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Wenn die Datei unerwartet groß ist oder die Abmessungen nicht stimmen, gehen Sie zurück zu **Schritt 3** und passen `quality` oder die Viewport‑Einstellungen des Quell‑HTML an. Denken Sie daran, dass WebP die CSS‑`width`/`height` des Root‑Elements respektiert, sodass ein fehlendes ``‑Tag zu überraschenden Ergebnissen führen kann. + +## Vollständiges funktionierendes Beispiel + +Wenn wir alles zusammenfügen, erhalten Sie die komplette, sofort ausführbare Java‑Klasse: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Speichern Sie diese Datei als `HtmlToWebp.java`, ersetzen Sie `YOUR_DIRECTORY` durch den tatsächlichen Ordnerpfad, kompilieren Sie mit `javac` und führen Sie sie mit `java HtmlToWebp` aus. Sie sollten eine Konsolenausgabe sehen, die Dateigröße und Abmessungen bestätigt, gefolgt von der abschließenden Erfolgsmeldung. + +![convert html to webp example](/images/convert-html-to-webp.png "Screenshot of a WebP image generated from HTML – convert html to webp") + +## Häufige Fragen & Sonderfälle + +### Was ist, wenn mein HTML externe Ressourcen (CSS, Bilder) referenziert? + +Aspose.HTML löst relative URLs automatisch basierend auf dem Speicherort von `input.html` auf. Stellen Sie einfach sicher, dass die Ressourcen vom Dateisystem oder einem Web‑Server aus erreichbar sind. Wenn Sie eine benutzerdefinierte Basis‑URL einfügen müssen, verwenden Sie den überladenen `HTMLDocument`‑Konstruktor, der einen `URI`‑Basiswert akzeptiert. + +### Kann ich mehrere WebP‑Bilder aus demselben HTML erzeugen (z. B. verschiedene Viewport‑Größen)? + +Absolut. Packen Sie die Konvertierungslogik in eine Schleife, passen Sie `webpOptions.setWidth()` und `setHeight()` vor jedem Aufruf an und geben Sie jeder Ausgabe einen eindeutigen Dateinamen. Das ist praktisch für responsives Design, bei dem Sie unterschiedliche Bildgrößen für Mobil‑ und Desktop‑Geräte bereitstellen. + +### Wie wechsle ich zur verlustfreien Kompression? + +Replace the line: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +with: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Verlustfrei garantiert pixelgenaue Treue, erzeugt jedoch größere Dateien – verwenden Sie es nur, wenn es nötig ist. + +### Funktioniert das unter Linux/macOS? + +Ja. Das Aspose.HTML‑JAR enthält native Binärdateien für Windows, Linux und macOS, sodass derselbe Java‑Code überall läuft. Stellen Sie lediglich sicher, dass die passende JRE installiert ist. + +## Fazit + +Sie haben gerade **gelernt, wie man HTML in WebP** mit Aspose.HTML für Java konvertiert, und dabei alles von der Einrichtung der Abhängigkeiten bis zur Feinabstimmung der Kompression und der Ergebnisüberprüfung abgedeckt. Mit diesem Wissen können Sie **HTML als WebP speichern**, **HTML als WebP rendern** und **WebP aus HTML generieren** on‑the‑fly – perfekt für dynamische Bildpipelines, E‑Mail‑Newsletter oder jedes Szenario, bei dem leichte Grafiken wichtig sind. + +Was kommt als Nächstes? Experimentieren Sie mit verschiedenen `quality`‑Werten, erkunden Sie den `Lossless`‑Modus oder integrieren Sie diesen Konverter in einen Spring‑Boot‑REST‑Endpoint, sodass Ihr Web‑Service bei Bedarf WebP‑Bilder zurückgeben kann. Sie könnten auch die Stapelverarbeitung eines Ordners mit HTML‑Dateien in Betracht ziehen oder dies mit headless Chrome für SVG‑zu‑WebP‑Konvertierungen kombinieren. + +Haben Sie weitere Fragen dazu, **wie man HTML** in anderen Sprachen konvertiert, oder benötigen Sie Hilfe bei der Fehlersuche in einem speziellen Sonderfall? Hinterlassen Sie unten einen Kommentar, und happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/german/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..22d0d5b23 --- /dev/null +++ b/html/german/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Erstellen Sie ein mehrseitiges TIFF aus SVG in Java mit Aspose.HTML. + Erfahren Sie, wie Sie SVG in TIFF konvertieren, ein SVG-Dokument in Java laden und + mehrseitige TIFF-Dateien erstellen. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: de +og_description: Erstelle ein mehrseitiges TIFF aus SVG in Java. Dieses Tutorial zeigt, + wie man ein SVG‑Dokument lädt, TIFF‑Optionen konfiguriert und ein verlustfreies + mehrseitiges TIFF erzeugt. +og_title: Mehrseitiges TIFF aus SVG in Java erstellen – Vollständige Anleitung +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Mehrseitiges TIFF aus SVG in Java erstellen – Schritt‑für‑Schritt‑Anleitung +url: /de/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Erstellen von mehrseitigem TIFF aus SVG in Java – Schritt‑für‑Schritt‑Anleitung + +Haben Sie schon einmal **mehrseitiges TIFF** aus einem SVG erstellen müssen, wussten aber nicht, wo Sie anfangen sollen? Sie sind nicht allein – viele Entwickler stoßen genau auf dieses Problem, wenn sie ein druckfähiges, verlustfreies Dokument benötigen, das sich über mehrere Seiten erstreckt. In diesem Leitfaden gehen wir eine komplette, sofort ausführbare Lösung durch, die zeigt, **wie man SVG in TIFF konvertiert**, das SVG‑Dokument in Java lädt und die Ausgabe konfiguriert, sodass Sie **mehrseitige TIFF**‑Dateien mit LZW‑Kompression erzeugen können. + +Wir behandeln alles von der Einrichtung der Aspose.HTML‑Bibliothek bis hin zu Sonderfällen wie großen SVG‑Assets. Am Ende des Tutorials haben Sie eine einzelne Java‑Klasse, die Sie in jedes Projekt einbinden und sofort mehrseitige TIFFs generieren können. + +## Was Sie benötigen + +- **Java Development Kit (JDK) 8+** – der Code verwendet Standard‑Java‑APIs. +- **Aspose.HTML for Java** (Version 23.5 oder neuer) – dies ist die einzige Drittanbieter‑Abhängigkeit. +- Eine **Beispiel‑SVG‑Datei** (jede Vektorgrafik reicht; wir nennen sie `input.svg`). +- Ihre bevorzugte IDE oder ein einfacher Texteditor und ein Terminal. + +Zusätzliche Build‑Tools sind nicht erforderlich; das Beispiel lässt sich mit `javac` kompilieren und mit `java` ausführen. Wenn Sie Maven oder Gradle bevorzugen, fügen Sie einfach die Aspose.HTML‑JAR zu Ihrem Klassenpfad hinzu. + +![Create multipage tiff example](create-multipage-tiff.png){alt="Mehrseitige Tiff-Ausgabe erstellen"} + +## Schritt 1 – SVG‑Dokument laden (load svg document java) + +Als erstes müssen wir das SVG in ein `HTMLDocument`‑Objekt einlesen. Aspose.HTML behandelt SVG‑Dateien als HTML‑Dokumente, was uns eine einheitliche API für die Konvertierung bietet. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Warum das wichtig ist:** Das Laden des SVG als `HTMLDocument` gibt uns Zugriff auf die vollständige Rendering‑Engine, sodass alle Stile, Schriftarten und eingebetteten Bilder korrekt interpretiert werden, bevor die Konvertierung erfolgt. Wird dieser Schritt übersprungen und rohe Bytes direkt in den Konverter geleitet, führt das häufig zu fehlenden Elementen oder falschen Farben. + +## Schritt 2 – TIFF‑Optionen konfigurieren (how to create multipage tiff) + +Als Nächstes richten wir `TiffConversionOptions` ein. Dieses Objekt steuert alles von der Seitenlayout‑ bis zur Kompression. Für eine echte mehrseitige Ausgabe aktivieren wir `setMultipage(true)` und wählen **LZW**‑Kompression, weil sie verlustfrei und weit verbreitet ist. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Warum das wichtig ist:** Wenn Sie `setMultipage(true)` weglassen, erzeugt die Bibliothek ein einseitiges TIFF und verwirft zusätzliche Seiten, die aus dem SVG abgeleitet werden könnten (z. B. wenn das SVG mehrere ``‑Root‑Elemente enthält). LZW hält die Dateigröße angemessen, ohne die Bildqualität zu beeinträchtigen – ideal für Archivierungs‑ oder Druckpipelines. + +## Schritt 3 – Konvertierung durchführen (how to convert svg to tiff) + +Jetzt passiert die eigentliche Arbeit. Die statische Methode `Converter.convertSVG` nimmt das geladene Dokument, den Zielpfad und die zuvor definierten Optionen entgegen. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Warum das wichtig ist:** Der Aufruf von `convertSVG` ist der einfachste Weg, die Konvertierung auszulösen. Im Hintergrund rastert Aspose.HTML die Vektordaten mit einer Standardauflösung von 96 dpi; Sie können die DPI über `tiffOptions.setResolution(...)` anpassen, falls höhere Qualität nötig ist. + +## Schritt 4 – Ergebnis überprüfen + +Nach Abschluss der Konvertierung ist es sinnvoll zu prüfen, ob die Datei existiert und die erwartete Seitenzahl enthält. Eine schnelle Kontrolle lässt sich mit jedem Bildbetrachter durchführen, der mehrseitige TIFFs unterstützt (z. B. IrfanView, XnView oder sogar Java’s `ImageIO`). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Programm ausführen: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Sie sollten die Konsolenausgabe sehen, die den Erfolg bestätigt, und das Öffnen von `output.tiff` zeigt eine Seite pro SVG‑Root‑Element (oder eine einzelne Seite, wenn das SVG nur eine Leinwand enthält). + +## Häufige Stolperfallen & Profi‑Tipps + +| Problem | Warum es passiert | Wie man es behebt | +|---------|-------------------|-------------------| +| **Fehlende Schriftarten** | Das SVG verweist auf Systemschriftarten, die auf dem Server nicht installiert sind. | Schriftarten in das SVG einbetten oder `FontSettings` in Aspose.HTML verwenden, um einen benutzerdefinierten Schriftordner anzugeben. | +| **Große Dateigröße** | Hochauflösende Rasterung kann die TIFF‑Größe stark erhöhen. | DPI über `tiffOptions.setResolution(150)` reduzieren oder nur zum Debuggen `Compression.NONE` verwenden. | +| **Mehrere Seiten werden nicht erzeugt** | Das SVG enthält nur ein ``‑Element. | Quelle in separate SVG‑Dateien aufteilen oder jede logische Seite in ein ``‑Tag einbetten, bevor Sie konvertieren. | +| **Nicht unterstützte SVG‑Features** | Bestimmte Filter oder Animationen werden nicht gerendert. | SVG vereinfachen oder mit einem Tool wie Inkscape vorverarbeiten, um Filter zu flachzulegen. | + +**Profi‑Tipp:** Wenn Sie eine bestimmte Seitenreihenfolge benötigen, benennen Sie Ihre SVG‑Dateien in `page1.svg`, `page2.svg` usw. um und iterieren Sie darüber, wobei Sie jedes Konvertierungsergebnis mit `tiffOptions.setMultipage(true)` an dasselbe TIFF anhängen. + +## Vollständiges funktionierendes Beispiel + +Unten finden Sie die komplette, eigenständige Java‑Klasse, die Sie in eine Datei namens `SvgToMultipageTiff.java` kopieren können. Sie enthält Import‑Anweisungen, Kommentare und Fehlerbehandlung für den Produktionseinsatz. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Das Ausführen des Codes erzeugt ein TIFF, bei dem jeder SVG‑Root zu einer eigenen Seite wird – genau das, was Sie benötigen, wenn Sie **mehrseitige TIFF**‑Dateien für Druck oder Archivierung erstellen wollen. + +## Fazit + +Wir haben Ihnen gezeigt, wie Sie **mehrseitiges TIFF** aus einem SVG mit Java und Aspose.HTML erstellen. Das Tutorial behandelte das Laden des SVG (`load svg document java`), das Konfigurieren der Konvertierungsoptionen, das Durchführen der Konvertierung (`how to convert svg to tiff`) und die Überprüfung des Ergebnisses. Mit dem vollständigen Quellcode können Sie die Lösung anpassen, um Dutzende von SVGs stapelweise zu verarbeiten, DPI‑Einstellungen zu ändern oder die Logik in eine größere Dokument‑Generierungspipeline zu integrieren. + +Bereit für die nächste Herausforderung? Versuchen Sie, einen Ordner voller SVGs in ein einziges mehrseitiges TIFF zu konvertieren, experimentieren Sie mit verschiedenen Kompressionsschemata oder erkunden Sie die PDF‑Ausgabe, indem Sie `TiffConversionOptions` durch `PdfConversionOptions` ersetzen. Die gleichen Prinzipien gelten, sodass Sie dieses Muster leicht auf andere Formate ausweiten können. + +Haben Sie Fragen oder sind Sie auf einen ungewöhnlichen SVG‑Edge‑Case gestoßen? Hinterlassen Sie einen Kommentar unten – und happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/html5-canvas-rendering/_index.md b/html/german/java/html5-canvas-rendering/_index.md index d8f569dbf..ea10679bd 100644 --- a/html/german/java/html5-canvas-rendering/_index.md +++ b/html/german/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ Lassen Sie uns zunächst über das HTML5-Canvas-Element sprechen. Stellen Sie es Erstellen und rendern Sie HTML5 Canvas mit Aspose.HTML für Java. Erfahren Sie Schritt für Schritt, wie Sie mit dieser leistungsstarken Java-Bibliothek zeichnen, formatieren und in PDF exportieren. ### [HTML5 Canvas mit Aspose.HTML für Java meistern](./html5-canvas/) Erfahren Sie, wie Sie mit Aspose.HTML für Java HTML5 Canvas erstellen und in PDF konvertieren. Dieses Handbuch ist ideal für Entwickler, die ihre Webprojekte verbessern möchten. +### [Wie man iPhone emuliert – Komplettanleitung mit Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Erfahren Sie, wie Sie mit Aspose.HTML iPhone-Umgebungen simulieren und Webseiten für mobile Geräte testen können. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/german/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/german/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..634f3addf --- /dev/null +++ b/html/german/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Erfahren Sie, wie Sie ein iPhone in Java mit Aspose.HTML emulieren. Enthält + Schritte zum Festlegen eines benutzerdefinierten User‑Agents und zum Einstellen + des Geräte‑Pixel‑Verhältnisses für eine genaue mobile Darstellung. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: de +og_description: Wie kann man ein iPhone in Java emulieren? Dieses Tutorial zeigt, + wie man mit Aspose.HTML einen benutzerdefinierten User‑Agent und das Geräte‑Pixel‑Verhältnis + einstellt, um pixelgenaue mobile Seiten zu liefern. +og_title: Wie man das iPhone emuliert – Schritt‑für‑Schritt Aspose.HTML‑Leitfaden +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Wie man ein iPhone emuliert – Vollständiger Leitfaden mit Aspose.HTML +url: /de/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Wie man ein iPhone emuliert – Komplettanleitung mit Aspose.HTML + +Haben Sie sich schon einmal gefragt, **wie man ein iPhone emuliert**, wenn Sie eine Webseite lokal testen? Vielleicht debuggen Sie ein responsives Layout und der Desktop‑Browser reicht einfach nicht aus. Die gute Nachricht: Sie benötigen kein physisches Gerät – Aspose.HTML’s `DocumentSandbox` lässt Sie den Bildschirm, den User‑Agent und das Device‑Pixel‑Ratio (DPR) eines iPhones mit wenigen Zeilen Java nachahmen. + +In diesem Tutorial gehen wir Schritt für Schritt durch das Setzen eines **benutzerdefinierten User‑Agents**, das Konfigurieren des **Device‑Pixel‑Ratios** und das Verifizieren, dass alles wie erwartet funktioniert. Am Ende haben Sie eine wiederverwendbare Sandbox, die Seiten genauso rendert wie ein iPhone 8, und Sie verstehen, warum jede Einstellung wichtig ist. + +## Was Sie erreichen werden + +- Erstellen eines `Screen`‑Objekts, das die Abmessungen und das DPR eines iPhones widerspiegelt. +- Anwenden einer **benutzerdefinierten User‑Agent**‑Zeichenkette, sodass Server denken, die Anfrage käme von Safari auf iOS. +- Aufbau eines `DocumentSandbox`, das Bildschirm und User‑Agent verbindet. +- Ausführen eines `HTMLDocument` innerhalb der Sandbox und Anzeige der Konsolenausgabe, die die Konfiguration bestätigt. + +Keine externen Bibliotheken außer Aspose.HTML sind nötig, und der Code läuft in jeder Java 17+ Umgebung. + +--- + +![Screenshot zur iPhone-Emulation](https://example.com/images/iphone-emulation.png "iPhone-Emulation mit Aspose.HTML Sandbox") + +## Wie man ein iPhone mit Aspose.HTML Sandbox emuliert + +Das Erste, was wir benötigen, ist ein `Screen`, der die physischen Abmessungen *und* die Pixeldichte des iPhones abbildet. Das ist das Kernstück von **wie man ein iPhone exakt emuliert**. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Warum das wichtig ist:** +- Die Breite = 375 px und Höhe = 667 px sind die CSS‑Pixel‑Abmessungen, die Sie in Chrome DevTools sehen, wenn Sie ein iPhone 8 auswählen. +- Das Setzen des DPR auf 2 sagt der Rendering‑Engine, dass jedes CSS‑Pixel zwei physische Pixel entspricht, was zu scharfem Text und Bildern führt – genau wie auf einem echten Gerät. + +> *Pro‑Tipp:* Wenn Sie ein neueres iPhone (z. B. das iPhone 13) emulieren wollen, ändern Sie einfach die Zahlen zu 390 × 844 und DPR = 3. + +## Einen benutzerdefinierten User‑Agent setzen (set custom user agent) + +Als Nächstes müssen wir **einen benutzerdefinierten User‑Agent setzen**, damit der Server das mobile‑spezifische HTML/CSS ausliefert. Ohne diesen denken viele Seiten immer noch, Sie würden einen Desktop benutzen. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Wie das funktioniert:** +- Der `User-Agent`‑Header ist das Handshake‑Signal, das Browser benutzen, um sich vorzustellen. +- Indem Sie exakt die Zeichenkette verwenden, die Safari auf iOS 16 sendet, stellen Sie sicher, dass der Server die mobil‑optimierten Assets zurückgibt (z. B. responsive Bilder, adaptive Skripte usw.). + +Wenn Sie jemals **wie man den User‑Agent für ein anderes Gerät setzt**, ersetzen Sie einfach die Zeichenkette durch den passenden Wert – Google Chrome, Firefox oder sogar ein benutzerdefinierter Bot. + +## Device‑Pixel‑Ratio konfigurieren (set device pixel ratio) + +Jetzt setzen wir tatsächlich das **Device‑Pixel‑Ratio** innerhalb der Sandbox. Das ist der Schritt, der direkt die Frage “**wie man dpr setzt**” für eine simulierte Umgebung beantwortet. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Erklärung:** +- Das `Builder`‑Pattern ermöglicht es Ihnen, sowohl den Screen (der das DPR trägt) als auch den User‑Agent flüssig anzuhängen. +- Wenn die Sandbox ein `HTMLDocument` rendert, tut sie so, als würde sie auf einem Gerät mit genau dieser Pixeldichte laufen. + +> *Warum das wichtig ist:* Einige CSS‑Media‑Queries nutzen `device-pixel-ratio` (z. B. `@media (-webkit-min-device-pixel-ratio: 2)`). Wenn Sie das DPR nicht setzen, werden diese Regeln nie ausgelöst und Sie verpassen hochauflösende Assets. + +## Die Sandbox‑Konfiguration verifizieren (how to set user-agent) + +Lassen Sie die Sandbox arbeiten. Das folgende Snippet erstellt ein `HTMLDocument`, lädt eine Seite und gibt eine Bestätigung aus, dass die Sandbox aktiv ist. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Erwartete Konsolenausgabe** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Wenn Sie das Programm ausführen und diese Zeile sehen, haben Sie erfolgreich **wie man ein iPhone emuliert** mit dem korrekten DPR und User‑Agent. Öffnen Sie die Seite in einem echten Browser und inspizieren Sie die Viewport‑Abmessungen – Sie werden feststellen, dass sie den iPhone‑Werten entsprechen, die wir gesetzt haben. + +## Häufige Stolperfallen und wie man DPR korrekt setzt (how to set dpr) + +Selbst mit dem richtigen Code können ein paar Fallstricke auftreten: + +| Problem | Warum es passiert | Lösung | +|---------|-------------------|--------| +| **DPR bleibt bei 1** | Sie haben einen `Screen` ohne das dritte Argument (DPR) übergeben. | Immer `new Screen(width, height, dpr)` verwenden. | +| **User‑Agent wird ignoriert** | Die Sandbox war nicht an das `HTMLDocument` angehängt. | Den `documentSandbox` als zweiten Parameter an den `HTMLDocument`‑Konstruktor übergeben. | +| **Falsche Abmessungen** | Sie verwenden Geräte‑Pixel statt CSS‑Pixel. | Denken Sie daran: Breite/Höhe sind **CSS‑Pixel**, nicht Hardware‑Pixel. | +| **Server liefert weiterhin Desktop‑CSS** | Einige Seiten nutzen JavaScript zur Geräteerkennung, nicht nur den Header. | Gegebenenfalls zusätzlich ein viewport‑Meta‑Tag injizieren. | + +Wenn Sie diese Punkte im Hinterkopf behalten, werden Sie selten in eine Situation geraten, in der die Emulation nicht wie erwartet funktioniert. + +## Sandbox erweitern – Nächste Schritte + +Jetzt, wo Sie **wie man einen benutzerdefinierten User‑Agent setzt** und **wie man das DPR setzt**, können Sie weiter experimentieren: + +- **Die Bildschirmgröße ändern**, um Tablets oder größere Telefone zu emulieren. +- **Den User‑Agent austauschen**, um Chrome auf Android zu testen (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Cookies oder Header** über die `setHeaders`‑Methode der Sandbox hinzufügen für authentifizierte Tests. +- **Einen Screenshot aufnehmen** mit `HTMLDocument.renderToFile("output.png")`, um visuelle Unterschiede automatisch zu vergleichen. + +Diese Erweiterungen ermöglichen Ihnen ein vollwertiges Test‑Framework, ohne Ihre IDE zu verlassen. + +--- + +## Fazit + +Wir haben gezeigt, **wie man ein iPhone emuliert** mit Aspose.HTML’s `DocumentSandbox`, und dabei exakt erklärt, **wie man einen benutzerdefinierten User‑Agent setzt**, **wie man das Device‑Pixel‑Ratio setzt** und sogar die feinen Unterschiede zwischen “**wie man den User‑Agent setzt**” und “**wie man das DPR setzt**”. Das komplette, ausführbare Beispiel demonstriert jedes Bauteil an einer Stelle, sodass Sie copy‑pasten, anpassen und sofort mobile Layouts testen können. + +Probieren Sie es aus – ändern Sie die Bildschirmabmessungen, spielen Sie mit verschiedenen User‑Agents und beobachten Sie, wie Ihre Seiten reagieren. Sobald Sie diese Einstellungen beherrschen, wird das Debuggen responsiver Designs zum Kinderspiel und Sie sparen unzählige Stunden, die Sie sonst mit echten Geräten verbringen würden. + +Haben Sie Fragen oder möchten Sie eigene Varianten teilen? Hinterlassen Sie einen Kommentar unten, und viel Spaß beim Emulieren! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/advanced-usage/_index.md b/html/greek/java/advanced-usage/_index.md index 9b67b2307..abc107ebb 100644 --- a/html/greek/java/advanced-usage/_index.md +++ b/html/greek/java/advanced-usage/_index.md @@ -62,7 +62,7 @@ weight: 20 ## Παρακολούθηση αλλαγών DOM – “monitor dom changes” -Το Aspose.HTML σας επιτρέπει να συνδέσετε έναν `DomMutationObserver` σε οποιονδήποτε κόμβο. Αυτό είναι ιδανικό για σενάρια όπου χρειάζεται να αντιδράτε σε δυναμικό περιεχόμενο—όπως αυτόματη συμπλήρωση φορμών ή ενημέρωση γραφημάτων. Παρακολουθώντας τις προσθήκες κόμβων, μπορείτε να ενεργοποιήσετε προσαρμοσμένη λογική σε πραγματικό χρόνο. +Το Aspose.HTML σας επιτρέπει να συνδέσετε έναν `DomMutationObserver` σε οποιονδήποτε κόμβο. Αυτό είναι ιδανικό για σενάρια όπου χρειάζεται να αντιδράτε σε δυναμικό περιεχόμενο—όπως αυτή η αυτόματη συμπλήρωση φορμών ή ενημέρωση γραφημάτων. Παρακολουθώντας τις προσθήκες κόμβων, μπορείτε να ενεργοποιήσετε προσαρμοσμένη λογική σε πραγματικό χρόνο. > *Μόνο επεξήγηση – ο κώδικας παραμένει αμετάβλητος.* @@ -128,6 +128,8 @@ weight: 20 Μάθετε πώς να προσαρμόζετε το μέγεθος XPS σελίδας με το Aspose.HTML for Java. Ελέγξτε εύκολα τις διαστάσεις εξόδου των εγγράφων XPS σας. ### [Πώς να Εκτελέσετε JavaScript σε Java – Πλήρης Οδηγός](./how-to-run-javascript-in-java-complete-guide/) Μάθετε πώς να εκτελείτε κώδικα JavaScript μέσα σε εφαρμογές Java χρησιμοποιώντας το Aspose.HTML for Java. +### [Παράδειγμα top‑level await – Χρήση await delay σε JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Μάθετε πώς να χρησιμοποιήσετε το top‑level await με καθυστέρηση await σε κώδικα JavaScript. --- diff --git a/html/greek/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/greek/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..41ec7a10f --- /dev/null +++ b/html/greek/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,171 @@ +--- +category: general +date: 2026-03-26 +description: Παράδειγμα top‑level await που δείχνει await delay JavaScript, κλάση + αύξησης μετρητή και δημόσια πεδία κλάσης JavaScript σε ζωντανή επίδειξη. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: el +og_description: Παράδειγμα top‑level await που επιδεικνύει την καθυστέρηση await σε + JavaScript, κλάση αύξησης μετρητή και δημόσια πεδία κλάσης σε JavaScript σε ένα + σύντομο οδηγό. +og_title: Παράδειγμα top-level await – Χρήση await delay στη JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Παράδειγμα top‑level await – Χρήση await delay στη JavaScript +url: /el/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await example – Using await delay in JavaScript + +Έχετε αναρωτηθεί ποτέ πώς να διακόψετε την εκτέλεση ενός module χωρίς να τυλίξετε τα πάντα σε ένα async IIFE; Αυτό ακριβώς κάνει ένα **top level await example**. Σε αυτό το tutorial θα περάσουμε από μια μικρή ιστοσελίδα που χρησιμοποιεί `await delay javascript` για να αναβάλει εργασία, και στη συνέχεια δημιουργεί μια `increment counter class` που αξιοποιεί **public class fields javascript**. Στο τέλος θα έχετε ένα πλήρες, αντιγράψτε‑και‑επικολλήστε snippet που τρέχει σε οποιονδήποτε σύγχρονο περιηγητή. + +Θα καλύψουμε τα πάντα, από τον ορισμό μιας κλάσης με public field μέχρι τη σύνδεση ενός απλού helper καθυστέρησης βασισμένου σε promises. Χωρίς εξωτερικές βιβλιοθήκες, χωρίς βήμα build—μόνο απλό HTML, ένα ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Expected Console Output + +``` +Counter class initialized +Final count: 1 +``` + +Αν ανοίξετε τη σελίδα στα DevTools, θα πρέπει να δείτε το μήνυμα του static‑block να εμφανίζεται **πριν** ολοκληρωθεί η καθυστέρηση, επιβεβαιώνοντας ότι η κλάση αξιολογήθηκε πρώτα. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +Μπορεί να αναρωτιέστε γιατί δεν γράψαμε: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Both approaches work, but **public class fields javascript** give you a cleaner, more declarative syntax. The field is defined once, not inside every constructor call, which can be easier to read when the class grows larger. Additionally, static blocks can’t be placed inside a constructor, so separating initialization logic becomes more natural. + +## Step 6 – Adapting the Example for Real‑World Apps + +Σε παραγωγή συχνά χρειάζεστε περισσότερους από έναν μετρητή. Εδώ είναι μερικές γρήγορες ιδέες: + +- **Multiple counters:** Store them in a `Map` keyed by identifier. +- **Persisted state:** Replace `console.log` with `localStorage` writes. +- **Async initialization:** Use the static block to fetch configuration from a server before any instances are created. + +All of these patterns still benefit from top‑level await, because you can fetch data once at module load time and guarantee it’s ready for every consumer. + +## Frequently Asked Questions + +**Q: Does top‑level await block other modules?** +A: No. Each module runs independently. Only the module that contains the await is paused; other modules continue loading in parallel. + +**Q: What if the delay promise rejects?** +A: An unhandled rejection will abort the module evaluation and surface as an error in the console. Wrap the await in a `try…catch` if you need graceful fallback. + +**Q: Is the `static` keyword required?** +A: Not for the counter itself, but the static block is a handy way to demonstrate that code runs *once* at load time—great for logging or feature‑detection. + +## Conclusion + +You’ve just built a **top level await example** that showcases `await delay javascript`, an **increment counter class**, and the power of **public class fields javascript**. The complete, runnable snippet lives above, and the console output proves that the static block fires before the delayed code runs. + +From here you can experiment with more complex async flows, swap the delay for a real API call, or expand the class with additional methods. Remember, modern JavaScript lets you treat modules as first‑class async entities—no extra wrappers needed. + +Happy coding, and feel free to drop your variations in the comments. If you found this guide useful, share it with a teammate who’s still wrestling with async patterns! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/conversion-html-to-other-formats/_index.md b/html/greek/java/conversion-html-to-other-formats/_index.md index f8b92d079..d202b6110 100644 --- a/html/greek/java/conversion-html-to-other-formats/_index.md +++ b/html/greek/java/conversion-html-to-other-formats/_index.md @@ -84,21 +84,16 @@ weight: 25 ## Μετατροπή - HTML σε Άλλες Μορφές Μαθήματα ### [Μετατροπή HTML σε PDF](./convert-html-to-pdf/) -Μάθετε πώς να μετατρέψετε HTML σε PDF σε Java χρησιμοποιώντας το Aspose.HTML. Δημιουργήστε PDF υψηλής ποιότητας από το περιεχόμενο HTML σας χωρίς κόπο. ### [Μετατροπή HTML σε PDF σε Java – Οδηγός βήμα‑βήμα με ρυθμίσεις μεγέθους σελίδας](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) -Ακολουθήστε τον πλήρη οδηγό για μετατροπή HTML σε PDF σε Java, με παραμετροποίηση μεγέθους σελίδας για ακριβή έγγραφα. ### [Μετατροπή HTML σε MHTML](./convert-html-to-mhtml/) -Μετατρέψτε εύκολα HTML σε MHTML χρησιμοποιώντας το Aspose.HTML for Java. Ακολουθήστε τον βήμα‑βήμα οδηγό μας για αποδοτική μετατροπή HTML‑σε‑MHTML. ### [Μετατροπή HTML σε XPS](./convert-html-to-xps/) -Μάθετε πώς να μετατρέψετε εύκολα HTML σε XPS χρησιμοποιώντας το Aspose.HTML for Java. Δημιουργήστε έγγραφα πολλαπλών πλατφορμών με ευκολία. ### [Μετατροπή Markdown σε HTML](./convert-markdown-to-html/) -Μετατρέψτε Markdown σε HTML σε Java απρόσκοπτα με το Aspose.HTML for Java. Ακολουθήστε τον βήμα‑βήμα οδηγό μας για να βελτιώσετε τις ανάγκες μετατροπής εγγράφων σας. ### [Μετατροπή SVG σε Εικόνα](./convert-svg-to-image/) -Μάθετε πώς να μετατρέψετε SVG σε εικόνες σε Java με το Aspose.HTML. Πλήρης οδηγός για έξοδο υψηλής ποιότητας. ### [Μετατροπή SVG σε PDF](./convert-svg-to-pdf/) -Μετατρέψτε SVG σε PDF σε Java με το Aspose.HTML. Μία απρόσκοπτη λύση για μετατροπή εγγράφων υψηλής ποιότητας. ### [Μετατροπή SVG σε XPS](./convert-svg-to-xps/) -Μάθετε πώς να μετατρέψετε SVG σε XPS με το Aspose.HTML for Java. Απλός, βήμα‑βήμα οδηγός για απρόσκοπτες μετατροπές. +### [Δημιουργία PDF προσαρμοσμένου μεγέθους – Μετατροπή HTML σε PDF με Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +### [Μετατροπή HTML σε Markdown σε Java – Διατήρηση Αρχικής Μορφοποίησης](./convert-html-to-markdown-in-java-preserve-original-formattin/) +### [Δημιουργία PDF από HTML σε Java – Οδηγός Παράλληλης Μετατροπής σε Παρτίδες](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) ## Συχνές Ερωτήσεις diff --git a/html/greek/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/greek/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..a92cd428e --- /dev/null +++ b/html/greek/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,207 @@ +--- +category: general +date: 2026-03-26 +description: Μετατρέψτε το HTML σε markdown και δημιουργήστε αρχείο markdown διατηρώντας + την αρχική μορφοποίηση χρησιμοποιώντας τη μετατροπή Aspose HTML σε Java. Μάθετε + βήμα‑βήμα. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: el +og_description: Μετατρέψτε γρήγορα το HTML σε markdown, δημιουργήστε αρχείο markdown + και διατηρήστε την αρχική μορφοποίηση χρησιμοποιώντας τη μετατροπή Aspose HTML για + Java. +og_title: Μετατροπή HTML σε Markdown σε Java – Διατήρηση μορφοποίησης +tags: +- Aspose +- Java +- Markdown +title: Μετατροπή HTML σε Markdown σε Java – Διατήρηση της αρχικής μορφοποίησης +url: /el/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μετατροπή HTML σε Markdown σε Java – Διατήρηση Αρχικής Μορφοποίησης + +Έχετε ποτέ χρειαστεί να **μετατρέψετε HTML σε markdown** αλλά ανησυχείτε ότι θα χάσετε τα κενά, τους πίνακες ή τις ενσωματωμένες ετικέτες; Δεν είστε μόνοι. Πολλοί προγραμματιστές αντιμετωπίζουν αυτό το πρόβλημα όταν προσπαθούν να μεταφέρουν περιεχόμενο από μια ιστοσελίδα σε μια καθαρή μορφή φιλική προς τον έλεγχο εκδόσεων. Τα καλά νέα; Με λίγες γραμμές Java και Aspose HTML, μπορείτε να **δημιουργήσετε αρχείο markdown** που φαίνεται ακριβώς όπως η πηγή, με όλα τα κενά. + +Σε αυτόν τον οδηγό θα περάσουμε από όλη τη διαδικασία: φόρτωση ενός σύνθετου αρχείου HTML, ρύθμιση της μετατροπής ώστε να **διατηρεί την αρχική μορφοποίηση**, και τέλος εγγραφή του αποτελέσματος στο `preserved.md`. Στο τέλος θα έχετε ένα έτοιμο προς εκτέλεση απόσπασμα κώδικα, θα καταλάβετε *γιατί* κάθε ρύθμιση είναι σημαντική, και θα ξέρετε πώς να προσαρμόσετε τον κώδικα για ειδικές περιπτώσεις όπως προσαρμοσμένο CSS ή ενσωματωμένα scripts. + +## Τι Θα Χρειαστείτε + +- Java 17 (ή οποιοδήποτε πρόσφατο JDK) – το API λειτουργεί με Java 8+ αλλά οι νεότερες εκδόσεις προσφέρουν καλύτερη απόδοση. +- Βιβλιοθήκη Aspose HTML for Java (έκδοση 23.11 ή νεότερη). Μπορείτε να την κατεβάσετε από το Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Ένα δείγμα αρχείου HTML (`complex.html`) που περιέχει επικεφαλίδες, πίνακες, μπλοκ κώδικα και ίσως κάποιες ενσωματωμένες ετικέτες `` με στυλ. +- Μια μικρή δόση υπομονής και διάθεση για πειραματισμό. + +Αυτό είναι όλο. Χωρίς εξωτερικά εργαλεία, χωρίς κόλπα στη γραμμή εντολών — μόνο καθαρή Java. + +## Βήμα 1: Φόρτωση του Πηγαίου Εγγράφου HTML + +Το πρώτο που κάνουμε είναι να δημιουργήσουμε ένα αντικείμενο `HTMLDocument` που δείχνει στο αρχείο πηγής σας. Το Aspose HTML αντιμετωπίζει το αρχείο ως DOM, πράγμα που σημαίνει ότι μπορείτε να το εξετάσετε ή να το τροποποιήσετε πριν από τη μετατροπή, αν χρειαστεί. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Γιατί είναι σημαντικό:** Η φόρτωση του εγγράφου με αυτόν τον τρόπο εξασφαλίζει ότι όλοι οι συνδεδεμένοι πόροι (αρχεία CSS, εικόνες) επιλύονται σχετικά με τη θέση του αρχείου. Αν παραλείψετε αυτό το βήμα και περάσετε μια ακατέργαστη συμβολοσειρά, μπορεί να χάσετε εξωτερικό CSS που επηρεάζει τα κενά — ακριβώς αυτό που θέλετε να **διατηρήσετε την αρχική μορφοποίηση**. + +## Βήμα 2: Ρύθμιση Επιλογών Μετατροπής σε Markdown + +Το Aspose HTML παρέχει την κλάση `MarkdownConversionOptions`. Η βασική ιδιότητα για εμάς είναι `setPreserveOriginalFormatting(true)`. Όταν ενεργοποιηθεί, ο μετατροπέας διατηρεί τις αλλαγές γραμμής, την εσοχή και ακόμη και ακατέργαστα τμήματα HTML που το markdown δεν μπορεί να αναπαραστήσει εγγενώς. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Συμβουλή επαγγελματία:** Αν διαπιστώσετε ότι κάποιες ενσωματωμένες μορφές αφαιρούνται, μπορείτε επίσης να καλέσετε `markdownOptions.setIncludeHtml(true)` για να εξαναγκάσετε την προσθήκη ακατέργαστων μπλοκ HTML στο αρχείο markdown. + +## Βήμα 3: Εκτέλεση της Μετατροπής + +Τώρα παραδίδουμε το `HTMLDocument`, τη διαδρομή του αρχείου προορισμού και τις επιλογές μας στη στατική μέθοδο `Converter.convertHTML`. Η μέθοδος κάνει όλη τη βαριά δουλειά στο παρασκήνιο. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Όταν η κλήση ολοκληρωθεί, θα βρείτε το `preserved.md` δίπλα στο αρχείο πηγής. Ανοίξτε το σε οποιονδήποτε επεξεργαστή — θα παρατηρήσετε ότι οι αρχικές αλλαγές γραμμής και η στοίχωση των πινάκων παραμένουν αμετάβλητες. + +## Βήμα 4: Επαλήθευση του Αποτελέσματος (Προαιρετικό αλλά Συνιστάται) + +Μια γρήγορη επιβεβαίωση σας σώζει από λεπτές δυσλειτουργίες αργότερα. Μπορείτε να διαβάσετε το αρχείο ξανά στη Java και να εκτυπώσετε τις πρώτες γραμμές, ή απλώς να το ανοίξετε στο VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Θα πρέπει να δείτε κάτι σαν: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Η ετικέτα `` είναι ακόμα παρούσα επειδή η εγγενής σύνταξη πινάκων του markdown δεν μπορούσε να αποδώσει ακριβώς το στυλ — χάρη στην επιλογή `preserve original formatting`. + +## Βήμα 5: Συνολική Παράδειγμα Έτοιμο για Εκτέλεση + +Παρακάτω βρίσκεται η πλήρης, έτοιμη προς εκτέλεση κλάση. Αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή στο σύστημά σας. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Τρέξτε το πρόγραμμα με `mvn exec:java` ή το αγαπημένο σας IDE, και θα έχετε ένα **generate markdown file** που αντικατοπτρίζει την αρχική διάταξη του HTML. + +## Συχνές Ερωτήσεις & Ειδικές Περιπτώσεις + +### Λειτουργεί με εξωτερικά αρχεία CSS; + +Ναι. Εφόσον τα αρχεία CSS είναι προσβάσιμα μέσω σχετικών διαδρομών, το Aspose HTML τα φορτώνει αυτόματα. Αν παίρνετε HTML από απομακρυσμένο URL, ίσως χρειαστεί να ορίσετε ένα προσαρμοσμένο αντικείμενο `ResourceLoadingOptions` για να επιτρέψετε πρόσβαση στο δίκτυο. + +### Τι γίνεται αν δεν θέλω καθόλου ακατέργαστο HTML στο markdown; + +Απλώς αλλάξτε την επιλογή: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Ο μετατροπέας θα προσπαθήσει τότε να μεταφράσει τα πάντα σε καθαρή σύνταξη markdown, ενδεχομένως χάνοντας κάποια στοιχεία διάταξης. + +### Μπορώ να μετατρέψω μια συμβολοσειρά αντί για αρχείο; + +Απόλυτα. Χρησιμοποιήστε τον κατασκευαστή που δέχεται `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Στη συνέχεια περάστε το `doc` στο `Converter.convertHTML` όπως πριν. + +### Πώς διαφέρει από άλλες βιβλιοθήκες όπως Flexmark ή pandoc; + +Τα περισσότερα ανοιχτού κώδικα εργαλεία αντιμετωπίζουν το HTML ως απλό κείμενο και αφαιρούν τα κενά επιθετικά. Η σημαία `preserveOriginalFormatting` του Aspose HTML είναι μια **ιδιόκτητη λειτουργία** που σέβεται τα αρχικά κενά, τις αλλαγές γραμμής και ακόμη κρατάει μη υποστηριζόμενες ετικέτες ως ακατέργαστα μπλοκ HTML. Γι' αυτό αυτό το tutorial δίνει έμφαση στην **aspose html conversion** για προγραμματιστές Java που χρειάζονται ακριβή πιστότητα. + +## Συμβουλές για Χρήση σε Παραγωγή + +- **Επεξεργασία παρτίδας:** Τυλίξτε τη λογική μετατροπής σε βρόχο για να επεξεργαστείτε πολλαπλά αρχεία HTML μονομιάς. +- **Διαχείριση σφαλμάτων:** Πιάστε `IOException` και `com.aspose.html.exceptions.AssertionFailedException` για να εντοπίσετε ελλιπείς πόρους. +- **Απόδοση:** Επαναχρησιμοποιήστε ένα μόνο αντικείμενο `HTMLDocument` όταν μετατρέπετε τμήματα ενός μεγάλου ιστότοπου· η βιβλιοθήκη κάνει caching των CSS. + +## Συμπέρασμα + +Σας δείξαμε πώς να **μετατρέψετε HTML σε markdown** σε Java διασφαλίζοντας ότι το αποτέλεσμα **preserve original formatting**. Το σύντομο, αυτόνομο απόσπασμα κώδικα παρουσιάζει ολόκληρη τη ροή εργασίας — από τη φόρτωση του εγγράφου HTML, τη ρύθμιση του `MarkdownConversionOptions`, την εκτέλεση της μετατροπής, μέχρι την επαλήθευση του αποτελέσματος. Με το ισχυρό API του Aspose HTML, μπορείτε τώρα να **generate markdown file** προγραμματιστικά, είτε χτίζετε έναν static‑site generator, μια γραμμή τεκμηρίωσης ή ένα εργαλείο μετεγκατάστασης περιεχομένου. + +Επόμενα βήματα που μπορείτε να εξερευνήσετε: + +- Χρήση του **html to markdown java** για μαζικές μεταφορές σε ολόκληρο έναν ιστότοπο. +- Ρύθμιση των επιλογών μετατροπής για έξοδο σε GitHub‑flavored markdown πίνακες. +- Συνδυασμός αυτής της προσέγγισης με βήμα CI/CD που ενημερώνει αυτόματα τα docs σας όταν αλλάζει το πηγαίο HTML. + +Πειραματιστείτε ελεύθερα και αφήστε ένα σχόλιο αν συναντήσετε δυσκολίες. Καλό κώδικα! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/greek/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..3cf8ca92f --- /dev/null +++ b/html/greek/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-03-26 +description: Δημιουργήστε PDF προσαρμοσμένου μεγέθους από HTML χρησιμοποιώντας το + Aspose.HTML για Java. Μάθετε πώς να μετατρέπετε HTML σε PDF και να ορίζετε το μέγεθος + σελίδας του PDF σε λίγα μόνο βήματα. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: el +og_description: Δημιουργήστε προσαρμοσμένο μέγεθος PDF από HTML με το Aspose. Αυτός + ο οδηγός σας δείχνει πώς να μετατρέψετε HTML σε PDF, να αλλάξετε το μέγεθος σελίδας + PDF και να ορίσετε το μέγεθος σελίδας PDF εύκολα. +og_title: Δημιουργία PDF Προσαρμοσμένου Μεγέθους – Σύντομος Οδηγός για τη Μετατροπή + HTML σε PDF +tags: +- aspose +- java +- pdf +- html +title: Δημιουργία PDF προσαρμοσμένου μεγέθους – Μετατροπή HTML σε PDF με το Aspose +url: /el/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία PDF Προσαρμοσμένου Μεγέθους – Μετατροπή HTML σε PDF με Aspose + +Σας έχει ξανασυμβεί να χρειαστείτε **να δημιουργήσετε PDF προσαρμοσμένου μεγέθους** από ένα αρχείο HTML; Σε αυτό το tutorial θα σας δείξουμε πώς να **μετατρέψετε HTML σε PDF** και να ορίσετε το μέγεθος της σελίδας PDF χρησιμοποιώντας το Aspose.HTML for Java. + +Αν δημιουργείτε τιμολόγια, αναφορές ή e‑books, η ακριβής διάσταση της σελίδας είναι σημαντική — διαφορετικά η διάταξη φαίνεται εκτός κέντρου ή αποκόπτεται. + +Θα περάσουμε από κάθε βήμα, από τη φόρτωση του πηγαίου HTML μέχρι τη ρύθμιση των περιθωρίων, και θα ολοκληρώσουμε με ένα έτοιμο PDF. Χωρίς ασαφείς αναφορές, μόνο ένα πλήρες, εκτελέσιμο παράδειγμα που μπορείτε να αντιγράψετε‑επικολλήσετε σήμερα. + +## Τι Θα Χρειαστείτε + +- **Java 17** (ή οποιοδήποτε πρόσφατο JDK). +- **Aspose.HTML for Java** JARs – μπορείτε να πάρετε την πιο πρόσφατη έκδοση από το αποθετήριο Maven ή τον ιστότοπο Aspose. +- Ένα απλό αρχείο `input.html` τοποθετημένο σε φάκελο που ελέγχετε. +- Ένα IDE ή κειμενογράφο της επιλογής σας· εγώ συνήθως κωδικοποιώ στο IntelliJ IDEA, αλλά το Eclipse λειτουργεί εξίσου καλά. + +Η ύπαρξη αυτών των προαπαιτήσεων σημαίνει ότι δεν θα αντιμετωπίσετε σφάλματα “class not found” στη μέση της διαδικασίας. + +Τώρα, ας βουτήξουμε. + +![Δημιουργία PDF προσαρμοσμένου μεγέθους παράδειγμα](/images/create-pdf-custom-size.png "Στιγμιότυπο οθόνης που δείχνει ένα PDF που δημιουργήθηκε με προσαρμοσμένο μέγεθος σελίδας και περιθώρια – create pdf custom size") + +## Δημιουργία PDF Προσαρμοσμένου Μεγέθους – Κύρια Βήματα + +Παρακάτω είναι το πλήρες πρόγραμμα Java που θα προκύψει. Μπορείτε ελεύθερα να το αντιγράψετε σε ένα αρχείο με όνομα `ConvertHtmlToPdfCustomPage.java` και να το εκτελέσετε αφού προσθέσετε τις εξαρτήσεις Aspose στο έργο σας. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Βήμα 1 – Μετατροπή HTML σε PDF: Φόρτωση του Εγγράφου + +Το πρώτο που κάνουμε είναι **να φορτώσουμε το HTML** που θέλουμε να μετατρέψουμε σε PDF. +`HTMLDocument` διαβάζει το αρχείο, επιλύει σχετικούς συνδέσμους και δημιουργεί ένα DOM που μπορεί να αποδώσει το Aspose. + +> **Γιατί είναι σημαντικό:** Αν το HTML αναφέρει CSS ή εικόνες, το Aspose θα τις ανακτήσει σε σχέση με τη διαδρομή του αρχείου. Η χρήση απόλυτης διαδρομής (`YOUR_DIRECTORY/input.html`) αποτρέπει εκπλήξεις “file not found”. + +### Βήμα 2 – Αλλαγή Μεγέθους Σελίδας PDF: Διαμόρφωση Επιλογών + +Εδώ δημιουργούμε ένα αντικείμενο `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` λέει στο Aspose να χρησιμοποιήσει τις τυπικές διαστάσεις A4 (210 × 297 mm). +- `setPageOrientation(...)` περιστρέφει τη σελίδα αν χρειάζεστε τοπία. +- `setMargins(new Margin(20, 20, 20, 20))` θέτει περιθώριο 20 points σε κάθε πλευρά. + +Μπορείτε να αντικαταστήσετε το `PageSize.A4` με `PageSize.LETTER` ή ακόμη και με **προσαρμοσμένο μέγεθος** περνώντας ένα αντικείμενο `SizeF`, π.χ.: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Pro tip:** Ένα point ισούται με 1/72 ίντσα. Αν σκέφτεστε σε χιλιοστά, πολλαπλασιάστε με 2.83465 για να πάρετε points. + +### Βήμα 3 – Δημιουργία PDF από HTML: Εκτέλεση της Μετατροπής + +`Converter.convertHTML` κάνει το σκληρό κομμάτι. Παίρνει το φορτωμένο `HTMLDocument`, τη διαδρομή εξόδου και τις επιλογές που μόλις διαμορφώσαμε. + +Αν θέλετε να **ορίσετε το μέγεθος σελίδας PDF** δυναμικά βάσει του περιεχομένου, μπορείτε να υπολογίσετε τις απαιτούμενες διαστάσεις πριν από αυτό το βήμα και να προσαρμόσετε το `pdfOptions` αναλόγως. + +### Βήμα 4 – Επαλήθευση του Αποτελέσματος + +Η γραμμή `System.out.println` είναι προαιρετική, αλλά παρέχει γρήγορη ανάδραση όταν τρέχετε το πρόγραμμα από κονσόλα. Μετά την εκτέλεση, ανοίξτε το `custom_page.pdf` – θα πρέπει να δείτε ένα PDF A4 πορτραίτου με ομοιόμορφα περιθώρια 20 points, ακριβώς όπως ορίσαμε. + +## Μετατροπή HTML σε PDF – Συνηθισμένες Παραλλαγές + +### Χρήση Stream αντί για Διαδρομή Αρχείου + +Μερικές φορές δεν έχετε φυσικό αρχείο· ίσως το HTML προέρχεται από βάση δεδομένων ή API. Σε αυτή την περίπτωση, τυλίξτε τη συμβολοσειρά σε ένα `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Το δεύτερο όρισμα είναι η βασική URL για την επίλυση σχετικών πόρων. + +### Αλλαγή Προσανατολισμού Σελίδας + +Αν η αναφορά σας είναι πλατιά, αλλάξτε σε τοπία: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Λεπτομερής Ρύθμιση Περιθωρίων + +Τα περιθώρια δέχονται τιμές κινητής υποδιαστολής, έτσι μπορείτε να θέσετε 0.5 pt για ένα εξαιρετικά λεπτό περιθώριο: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Διαχείριση Μεγάλων Αρχείων HTML + +Για τεράστια έγγραφα, σκεφτείτε να ενεργοποιήσετε **memory‑efficient streaming**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Αυτό λέει στο Aspose να γράφει ενδιάμεσα δεδομένα σε προσωρινά αρχεία αντί να τα κρατά όλα στη μνήμη RAM. + +## Ορισμός Μεγέθους Σελίδας PDF – Ακραίες Περιπτώσεις & Πιθανά Προβλήματα + +- **Missing Fonts:** Αν το HTML σας χρησιμοποιεί προσαρμοσμένη γραμματοσειρά που δεν είναι εγκατεστημένη στον server, το PDF θα επιστρέψει σε προεπιλεγμένη. Ενσωματώστε τη γραμματοσειρά με `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Image Scaling:** Υψηλής ανάλυσης εικόνες μπορούν να αυξήσουν το μέγεθος του PDF. Χρησιμοποιήστε `pdfOptions.setImageResolution(150);` για να μειώσετε την ανάλυση διατηρώντας την ποιότητα. +- **CSS Compatibility:** Δεν υποστηρίζονται όλες οι ιδιότητες CSS πλήρως. Κρατήστε τα σε τυπικές τεχνικές διάταξης (το flexbox λειτουργεί, αλλά το grid μπορεί να έχει ιδιόρρυθμες συμπεριφορές). +- **Path Permissions:** Βεβαιωθείτε ότι η διαδικασία έχει δικαιώματα εγγραφής στο `YOUR_DIRECTORY`. Διαφορετικά, θα προκληθεί `IOException`. + +## Αναμενόμενο Αποτέλεσμα + +Η εκτέλεση του προγράμματος παράγει ένα PDF που φαίνεται ως εξής (εννοιολογική απεικόνιση): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Μέγεθος σελίδας: **A4** (210 × 297 mm). +- Προσανατολισμός: **Portrait**. +- Περιθώρια: **20 pt** σε κάθε πλευρά. + +Ανοίξτε το αρχείο με οποιονδήποτε προβολέα PDF (Adobe Reader, Chrome, κ.λπ.) για να το επιβεβαιώσετε. + +## Συμπεράσματα + +Τώρα ξέρετε πώς να **δημιουργήσετε PDF προσαρμοσμένου μεγέθους** από μια πηγή HTML χρησιμοποιώντας το Aspose.HTML for Java. Το tutorial κάλυψε ολόκληρη τη ροή: **μετατροπή HTML σε PDF**, **αλλαγή μεγέθους σελίδας PDF**, **ορισμός μεγέθους σελίδας PDF**, και **δημιουργία PDF από HTML** με προσαρμοσμένα περιθώρια. + +Μη διστάσετε να πειραματιστείτε—αντικαταστήστε το `PageSize.LETTER` με νομικό μέγεθος, τροποποιήστε τα περιθώρια ή ενσωματώστε τις δικές σας γραμματοσειρές. Στη συνέχεια, μπορείτε να εξερευνήσετε **προσθήκη υδατογραφήματος**, **κρυπτογράφηση του PDF**, ή **μαζική επεξεργασία πολλαπλών αρχείων HTML**. Όλα αυτά τα θέματα βασίζονται στις ίδιες βασικές έννοιες που καλύψαμε. + +Έχετε ερώτηση για κάποια συγκεκριμένη ακραία περίπτωση; Αφήστε ένα σχόλιο παρακάτω και θα σας βοηθήσω να το επιλύσετε. Καλό κώδικα! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/greek/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..3d6b2a02b --- /dev/null +++ b/html/greek/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-03-26 +description: Δημιουργήστε PDF από HTML γρήγορα με σταθερό pool νημάτων. Μάθετε τη + μαζική μετατροπή HTML σε PDF και εκτελέστε παράλληλες εργασίες σε Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: el +og_description: Δημιουργήστε PDF από HTML γρήγορα με μια σταθερή ομάδα νημάτων. Μάθετε + πώς να μετατρέπετε HTML σε PDF σε παρτίδες και να εκτελείτε παράλληλες εργασίες + σε Java. +og_title: Δημιουργία PDF από HTML σε Java – Οδηγός Παράλληλης Μαζικής Μετατροπής +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Δημιουργία PDF από HTML σε Java – Οδηγός Παράλληλης Μαζικής Μετατροπής +url: /el/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία PDF από HTML σε Java – Οδηγός Παράλληλης Μαζικής Μετατροπής + +Έχετε ποτέ χρειαστεί να **create PDF from HTML** αλλά νιώσατε κολλημένοι παρακολουθώντας μια μονονηματική μετατροπή που προχωράει αργά; Δεν είστε μόνοι. Σε πολλά πραγματικά έργα λαμβάνουμε δεκάδες αναφορές HTML που πρέπει να γίνουν PDF μέχρι το τέλος της ημέρας, και η επεξεργασία τους μία-μία δεν είναι πρακτική. + +Γι' αυτό το tutorial σας δείχνει **how to convert HTML to PDF** χρησιμοποιώντας ένα **fixed thread pool**, επιτρέποντάς σας να **batch HTML to PDF** και **run parallel tasks** χωρίς καμία δυσκολία. Στο τέλος θα έχετε ένα πλήρες, έτοιμο‑για‑εκτέλεση πρόγραμμα που μετατρέπει έναν φάκελο αρχείων HTML σε PDF σε κλάσμα του χρόνου. + +## Τι Θα Μάθετε + +Στις επόμενες ενότητες θα καλύψουμε όλα όσα χρειάζεται να γνωρίζετε: + +* Η ακριβής εξάρτηση Maven/Gradle για το Aspose.HTML (η βιβλιοθήκη που κάνει τη βαριά δουλειά). +* Γιατί ένα **fixed thread pool** είναι το ιδανικό για εργασίες μετατροπής που εξαρτώνται από την CPU. +* Πώς να απαριθμήσετε τα αρχεία προέλευσης ώστε η διαδικασία να μπορεί να κλιμακωθεί σε εκατοντάδες έγγραφα. +* Ο ακριβής κώδικας που επικολλάτε στο IDE σας—χωρίς ελλιπείς εισαγωγές, χωρίς σχόλια “TODO”. +* Συμβουλές για τη διαχείριση σφαλμάτων, τη ρύθμιση του μεγέθους του pool και την επαλήθευση του αποτελέσματος. + +Δεν απαιτείται προηγούμενη γνώση του Aspose.HTML, μόνο μια βασική ρύθμιση Java και προθυμία για πειραματισμό. Ας ξεκινήσουμε. + +--- + +![Διάγραμμα που δείχνει ένα fixed thread pool να μετατρέπει πολλαπλά αρχεία HTML σε PDF παράλληλα – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Κείμενο alt εικόνας: create pdf from html – parallel conversion diagram* + +## Βήμα 1: Προετοιμάστε το Έργο Σας και Προσθέστε το Aspose.HTML + +Πρώτα απ' όλα—το έργο σας χρειάζεται τη βιβλιοθήκη Aspose.HTML. Αν χρησιμοποιείτε Maven, προσθέστε αυτό στο `pom.xml` σας: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Για Gradle, είναι απλώς: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Γιατί Aspose.HTML; Είναι εμπορική βιβλιοθήκη, αλλά προσφέρει ένα API **convert html to pdf** που διαχειρίζεται CSS, JavaScript και σύνθετες διατάξεις αμέσως. Αν προτιμάτε μια ανοιχτού κώδικα εναλλακτική, μπορείτε να αντικαταστήσετε την κλήση `Converter.convertHTML` αργότερα, αλλά η λογική των νημάτων παραμένει η ίδια. + +> **Pro tip:** Κρατήστε τον αριθμό έκδοσης συγχρονισμένο με τις επίσημες σημειώσεις κυκλοφορίας· οι νεότερες εκδόσεις συχνά βελτιώνουν την ταχύτητα απόδοσης, κάτι που έχει σημασία όταν εκτελείτε πολλές εργασίες παράλληλα. + +## Βήμα 2: Δημιουργήστε ένα Fixed Thread Pool για Παράλληλη Μετατροπή + +Όταν έχετε μια δέσμη αρχείων, δεν θέλετε να δημιουργήσετε απεριόριστο αριθμό νημάτων—το λειτουργικό σας σύστημα θα αρχίσει να υπερφορτώνεται. Ένα **fixed thread pool** σας παρέχει προβλέψιμο επίπεδο ταυτόχρονης εκτέλεσης διατηρώντας τη χρήση μνήμης υπό έλεγχο. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Γιατί τέσσερα; Σε ένα τυπικό μηχάνημα με 8 πυρήνες, τα μισά πυρήνες μπορούν να παραμείνουν ελεύθερα για I/O και το λειτουργικό σύστημα. Μπορείτε να πειραματιστείτε: `Runtime.getRuntime().availableProcessors()` επιστρέφει τον αριθμό πυρήνων, και ένας κανόνας είναι `cores / 2`. Θυμηθείτε, κάθε μετατροπή είναι εντατική σε CPU, έτσι περισσότερα νήματα από τους πυρήνες συνήθως μειώνουν την απόδοση. + +## Βήμα 3: Συλλέξτε τα Αρχεία HTML που Θέλετε να Μετατρέψετε + +Το επόμενο κομμάτι του παζλ είναι η λίστα **batch html to pdf**. Μπορείτε να κωδικοποιήσετε σκληρά έναν πίνακα (όπως στο παράδειγμα) ή να σαρώσετε έναν φάκελο. Εδώ είναι μια ευέλικτη έκδοση που διαβάζει κάθε αρχείο `.html` από έναν φάκελο: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Αυτή η προσέγγιση σημαίνει ότι μπορείτε να τοποθετήσετε νέα αρχεία στον φάκελο και το πρόγραμμα θα τα εντοπίσει αυτόματα—ιδανικό για μια νυχτερινή εργασία batch. + +## Βήμα 4: Υποβάλετε μια Εργασία Μετατροπής για Κάθε Αρχείο (Run Parallel Tasks) + +Τώρα το διασκεδαστικό μέρος: κάθε αρχείο γίνεται ένα **Runnable** (ή `Callable`) που εκτελεί το pool. Ο κώδικας παρακάτω αντικατοπτρίζει το αρχικό παράδειγμα αλλά προσθέτει διαχείριση σφαλμάτων και ένα μικρό μήνυμα καταγραφής. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Γιατί να τυλίξετε τη μετατροπή σε try‑catch;** Όταν **run parallel tasks**, ένα μόνο κατεστραμμένο αρχείο HTML θα μπορούσε να καταρρεύσει ολόκληρο τον εκτελεστή. Με τοπική σύλληψη εξαιρέσεων διασφαλίζουμε ότι το υπόλοιπο batch συνεχίζει να τρέχει. + +## Βήμα 5: Κλείστε τον Εκτελεστή και Περιμένετε για Ολοκλήρωση + +Αφού υποβληθούν όλες οι εργασίες, πρέπει να πείτε στο pool να σταματήσει να δέχεται νέα έργα και στη συνέχεια να περιμένετε μέχρι να ολοκληρωθεί τα πάντα. Αυτό εγγυάται ότι η JVM δεν θα κλείσει πρόωρα. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Αν έχετε έναν τεράστιο φάκελο (χίλιες αρχεία) μπορεί να αυξήσετε το χρονικό όριο ή να υλοποιήσετε έναν παρακολουθητή προόδου. Το κλειδί είναι να **gracefully shut down**—αυτό είναι το χαρακτηριστικό του κώδικα έτοιμου για παραγωγή. + +## Πλήρες Παράδειγμα Λειτουργίας + +Συνδυάζοντας όλα, εδώ είναι μια αυτόνομη κλάση που μπορείτε να αντιγράψετε‑επικολλήσετε στο `src/main/java` και να τρέξετε: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Αναμενόμενη έξοδος** (sample): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Αν ανοίξετε τα παραγόμενα αρχεία `.pdf` θα δείτε τη διατήρηση της αρχικής διάταξης HTML—γραμματοσειρές, πίνακες, και ακόμη και βασικό περιεχόμενο που οδηγείται από JavaScript να αποδίδεται σωστά. + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/conversion-html-to-various-image-formats/_index.md b/html/greek/java/conversion-html-to-various-image-formats/_index.md index 1827545cc..9dcfec1a7 100644 --- a/html/greek/java/conversion-html-to-various-image-formats/_index.md +++ b/html/greek/java/conversion-html-to-various-image-formats/_index.md @@ -99,6 +99,8 @@ weight: 24 ### [Μετατροπή HTML σε TIFF](./convert-html-to-tiff/) Μάθετε πώς να μετατρέπετε εύκολα HTML σε TIFF χρησιμοποιώντας το Aspose.HTML για Java. Οδηγός βήμα‑βήμα για αποτελεσματική διαχείριση εγγράφων. ### [Μετατροπή HTML σε WebP – Πλήρης Οδηγός Java με Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Μετατροπή HTML σε WebP – Πλήρης Οδηγός Java](./convert-html-to-webp-complete-java-guide/) +### [Δημιουργία πολυσελίδας TIFF από SVG σε Java – Οδηγός βήμα‑βήμα](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) ## Συχνές Ερωτήσεις diff --git a/html/greek/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/greek/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..72fecd7aa --- /dev/null +++ b/html/greek/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-03-26 +description: Μετατρέψτε γρήγορα το HTML σε WebP με το Aspose.HTML. Μάθετε πώς να αποθηκεύετε + το HTML ως WebP, να αποδίδετε το HTML ως WebP και να δημιουργείτε WebP από HTML + σε λίγα μόνο βήματα. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: el +og_description: Μετατρέψτε το HTML σε WebP γρήγορα με το Aspose.HTML. Αυτό το εκπαιδευτικό + δείχνει πώς να αποδίδετε HTML ως WebP και να δημιουργείτε WebP από HTML σε Java. +og_title: Μετατροπή HTML σε WebP – Πλήρης Οδηγός Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Μετατροπή HTML σε WebP – Πλήρης Οδηγός Java +url: /el/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μετατροπή HTML σε WebP – Πλήρης Οδηγός Java + +Έχετε ποτέ χρειαστεί να **μετατρέψετε HTML σε WebP** αλλά δεν ήσασταν σίγουροι ποια βιβλιοθήκη μπορεί να το χειριστεί χωρίς προβλήματα; Δεν είστε μόνοι. Πολλοί προγραμματιστές αντιμετωπίζουν αυτό το ζήτημα όταν προσπαθούν να σερβίρουν ελαφριές εικόνες που δημιουργούνται από δυναμικές σελίδες. Τα καλά νέα; Με το Aspose.HTML for Java μπορείτε να *αποθηκεύσετε HTML ως WebP* με μία μόνο κλήση μεθόδου, και όλη η διαδικασία είναι τόσο ομαλή όσο το βούτυρο. + +Σε αυτό το tutorial θα περάσουμε από όλα όσα χρειάζεται να γνωρίζετε: από τη ρύθμιση της εξάρτησης Aspose.HTML, μέχρι τη ρύθμιση των επιλογών συμπίεσης, και τέλος την απόδοση του εγγράφου HTML ως αρχείο WebP που μπορείτε να σερβίρετε στο web. Στο τέλος θα μπορείτε να **αποδώσετε HTML ως WebP**, **δημιουργήσετε WebP από HTML**, και να κατανοήσετε το «γιατί» πίσω από κάθε επιλογή διαμόρφωσης. Χωρίς εξωτερικά scripts, χωρίς γυμναστική στη γραμμή εντολών — μόνο καθαρός κώδικας Java. + +## Προαπαιτούμενα + +- Java 8 ή νεότερη εγκατεστημένη (η βιβλιοθήκη υποστηρίζει JDK 8+). +- Maven ή Gradle για διαχείριση εξαρτήσεων (θα δείξουμε το απόσπασμα Maven). +- Ένα απλό αρχείο HTML (`input.html`) που θέλετε να μετατρέψετε σε εικόνα WebP. +- Ένα IDE ή κειμενογράφο της επιλογής σας — το IntelliJ IDEA λειτουργεί εξαιρετικά, αλλά οποιοδήποτε είναι εντάξει. + +Τα έχετε όλα αυτά; Τέλεια, ας ξεκινήσουμε. + +## Βήμα 1: Προσθέστε το Aspose.HTML στο έργο σας + +Πρώτα, χρειάζεστε τη βιβλιοθήκη Aspose.HTML στο classpath. Αν χρησιμοποιείτε Maven, προσθέστε αυτό στο `pom.xml` σας: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Για Gradle, έχει την εξής μορφή: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Γιατί είναι κρίσιμο αυτό το βήμα; Χωρίς το JAR, καμία από τις κλάσεις `HTMLDocument`, `Converter` ή `WebpConversionOptions` δεν υπάρχει, και ο μεταγλωττιστής θα ρίξει `ClassNotFoundException`. Η προσθήκη της εξάρτησης επίσης φέρνει τα εγγενή binaries που χρειάζονται για την κωδικοποίηση WebP, ώστε να μην χρειάζεται να ψάχνετε εξωτερικά DLL ή αρχεία `.so`. + +> **Συμβουλή:** Κρατήστε τις εξαρτήσεις σας ενημερωμένες. Νέες εκδόσεις του Aspose συχνά βελτιώνουν τους αλγόριθμους συμπίεσης WebP και προσθέτουν υποστήριξη για νεότερα χαρακτηριστικά HTML5. + +## Βήμα 2: Φορτώστε το Πηγαίο Έγγραφο HTML + +Τώρα που η βιβλιοθήκη είναι έτοιμη, μπορούμε να φορτώσουμε το HTML που θέλετε να μετατρέψετε. Η κλάση `HTMLDocument` αναλύει το αρχείο και δημιουργεί ένα DOM, το οποίο ο μετατροπέας θα αποδώσει αργότερα. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Παρατηρήστε το σχόλιο «Load the source HTML document» — είναι μια υπενθύμιση ότι μπορείτε επίσης να ενσωματώσετε CSS ή JavaScript πριν από τη μετατροπή εάν η σελίδα σας εξαρτάται από δυναμικό στυλ. Αν παραλείψετε αυτό το βήμα, ο μετατροπέας δεν θα έχει τίποτα να αποδώσει, με αποτέλεσμα μια κενή εικόνα. + +## Βήμα 3: Διαμορφώστε τις Επιλογές Μετατροπής WebP + +Το Aspose.HTML σας δίνει λεπτομερή έλεγχο του αποτελέσματος. Στις περισσότερες περιπτώσεις, ένα **lossy** WebP με ρύθμιση ποιότητας γύρω στο 85 προσφέρει καλή ισορροπία μεταξύ οπτικής πιστότητας και μεγέθους αρχείου. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Γιατί να επιλέξετε lossy; Η λειτουργία lossy του WebP χρησιμοποιεί προβλεπτική κωδικοποίηση, η οποία μπορεί να μειώσει τα αρχεία κατά 30‑50 % σε σύγκριση με PNG ενώ διατηρεί τις περισσότερες οπτικές λεπτομέρειες. Εάν χρειάζεστε αποτελέσματα pixel‑perfect (π.χ. για λογότυπα), αλλάξτε το `CompressionMode` σε `Lossless` και αυξήστε το `quality` στο 100. + +## Βήμα 4: Μετατρέψτε και Αποθηκεύστε την Εικόνα WebP + +Με το έγγραφο και τις επιλογές έτοιμες, η μετατροπή είναι μια εντολή μίας γραμμής. Η στατική μέθοδος `Converter.convertHTML` κάνει όλη τη βαριά δουλειά: αποδίδει το DOM σε bitmap, το κωδικοποιεί ως WebP και γράφει το αρχείο στο δίσκο. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Αυτό είναι! Μετά το τέλος του προγράμματος, θα βρείτε το `output.webp` δίπλα στο πηγαίο HTML. Μπορείτε τώρα να το σερβίρετε απευθείας από έναν web server, να το ενσωματώσετε σε στοιχείο ``, ή να το χρησιμοποιήσετε σε οποιοδήποτε περιβάλλον που υποστηρίζει WebP. + +## Βήμα 5: Επαληθεύστε το Αποτέλεσμα (Προαιρετικό αλλά Συνιστάται) + +Πάντα είναι καλή ιδέα να ελέγξετε ξανά ότι η μετατροπή πέτυχε και ότι η εικόνα φαίνεται όπως αναμένεται. Μπορείτε να ανοίξετε το αρχείο WebP σε Chrome, Firefox ή οποιονδήποτε προβολέα εικόνων που υποστηρίζει τη μορφή. Για γρήγορο προγραμματιστικό έλεγχο, μπορείτε να διαβάσετε το μέγεθος αρχείου και τις διαστάσεις: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Αν το αρχείο είναι απροσδόκητα μεγάλο ή οι διαστάσεις είναι λανθασμένες, επανεξετάστε το **Βήμα 3** και ρυθμίστε το `quality` ή τις ρυθμίσεις viewport του πηγαίου HTML. Θυμηθείτε, το WebP σέβεται τα CSS `width`/`height` του στοιχείου root, έτσι ένα ελλιπές tag `` μπορεί να προκαλέσει απρόσμενα αποτελέσματα. + +## Πλήρες Παράδειγμα Εργασίας + +Συνδυάζοντας όλα, εδώ είναι η πλήρης, έτοιμη‑για‑εκτέλεση κλάση Java: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Αποθηκεύστε αυτό το αρχείο ως `HtmlToWebp.java`, αντικαταστήστε το `YOUR_DIRECTORY` με την πραγματική διαδρομή φακέλου, μεταγλωττίστε με `javac` και τρέξτε με `java HtmlToWebp`. Θα πρέπει να δείτε έξοδο κονσόλας που επιβεβαιώνει το μέγεθος αρχείου και τις διαστάσεις, ακολουθούμενη από το τελικό μήνυμα επιτυχίας. + +![convert html to webp example](/images/convert-html-to-webp.png "Screenshot of a WebP image generated from HTML – convert html to webp") + +## Συχνές Ερωτήσεις & Ακραίες Περιπτώσεις + +### Τι γίνεται αν το HTML μου αναφέρεται σε εξωτερικούς πόρους (CSS, εικόνες); + +Το Aspose.HTML επιλύει αυτόματα τις σχετικές URL βάσει της θέσης του `input.html`. Απλώς βεβαιωθείτε ότι οι πόροι είναι προσβάσιμοι από το σύστημα αρχείων ή έναν web server. Εάν χρειάζεται να ενσωματώσετε μια προσαρμοσμένη βασική URL, χρησιμοποιήστε τον υπερφορτωμένο κατασκευαστή `HTMLDocument` που δέχεται μια βάση `URI`. + +### Μπορώ να δημιουργήσω πολλαπλές εικόνες WebP από το ίδιο HTML (π.χ., διαφορετικά μεγέθη viewport); + +Απολύτως. Τυλίξτε τη λογική μετατροπής σε βρόχο, προσαρμόστε `webpOptions.setWidth()` και `setHeight()` πριν από κάθε κλήση, και δώστε σε κάθε έξοδο μοναδικό όνομα αρχείου. Αυτό είναι χρήσιμο για responsive design όπου σερβίρετε διαφορετικά μεγέθη εικόνας σε κινητά και επιτραπέζιους υπολογιστές. + +### Πώς να μεταβώ σε συμπίεση lossless; + +Replace the line: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +with: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Η lossless εγγυάται pixel‑perfect πιστότητα αλλά παράγει μεγαλύτερα αρχεία — χρησιμοποιήστε την μόνο όταν είναι απαραίτητο. + +### Λειτουργεί αυτό σε Linux/macOS; + +Ναι. Το JAR του Aspose.HTML περιλαμβάνει εγγενή binaries για Windows, Linux και macOS, έτσι ο ίδιος κώδικας Java εκτελείται παντού. Απλώς βεβαιωθείτε ότι έχετε εγκατεστημένο το κατάλληλο JRE. + +## Συμπέρασμα + +Μόλις μάθατε **πώς να μετατρέψετε HTML σε WebP** χρησιμοποιώντας το Aspose.HTML for Java, καλύπτοντας όλα από τη ρύθμιση εξαρτήσεων μέχρι τη λεπτομερή ρύθμιση της συμπίεσης και την επαλήθευση του αποτελέσματος. Με αυτή τη γνώση μπορείτε να **αποθηκεύσετε HTML ως WebP**, **αποδώσετε HTML ως WebP**, και **δημιουργήσετε WebP από HTML** άμεσα — ιδανικό για δυναμικές αλυσίδες εικόνων, ενημερωτικά δελτία email, ή οποιοδήποτε σενάριο όπου η ελαφριά οπτική αξία είναι σημαντική. + +Τι ακολουθεί; Δοκιμάστε διαφορετικές τιμές `quality`, εξερευνήστε τη λειτουργία `Lossless`, ή ενσωματώστε αυτόν τον μετατροπέα σε ένα Spring Boot REST endpoint ώστε η web υπηρεσία σας να επιστρέφει εικόνες WebP κατόπιν ζήτησης. Μπορείτε επίσης να επεξεργαστείτε μαζικά έναν φάκελο HTML αρχείων, ή να το συνδυάσετε με headless Chrome για μετατροπές SVG‑σε‑WebP. + +Έχετε περισσότερες ερωτήσεις σχετικά με **πώς να μετατρέψετε HTML** σε άλλες γλώσσες, ή χρειάζεστε βοήθεια για την επίλυση ενός συγκεκριμένου ακραίου σεναρίου; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/greek/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..e2b2d5439 --- /dev/null +++ b/html/greek/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Δημιουργήστε πολυσελίδες TIFF από SVG σε Java με το Aspose.HTML. Μάθετε + πώς να μετατρέπετε SVG σε TIFF, να φορτώνετε έγγραφο SVG σε Java και να δημιουργείτε + αρχεία TIFF πολλαπλών σελίδων. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: el +og_description: Δημιουργήστε πολυσελίδα TIFF από SVG σε Java. Αυτό το σεμινάριο δείχνει + πώς να φορτώσετε ένα έγγραφο SVG, να ρυθμίσετε τις επιλογές TIFF και να δημιουργήσετε + μια πολυσελίδα TIFF χωρίς απώλειες. +og_title: Δημιουργία πολυσελίδας TIFF από SVG σε Java – Πλήρης Οδηγός +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Δημιουργία πολυσελιδικού TIFF από SVG σε Java – Οδηγός βήμα‑προς‑βήμα +url: /el/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Δημιουργία πολυσελιδικού TIFF από SVG σε Java – Οδηγός Βήμα‑βήμα + +Κάποτε χρειάστηκε να **δημιουργήσετε πολυσελιδικό TIFF** από ένα SVG αλλά δεν ήξερατε από πού να ξεκινήσετε; Δεν είστε μόνοι—πολλοί προγραμματιστές αντιμετωπίζουν αυτό το ακριβές εμπόδιο όταν χρειάζονται ένα εκτυπώσιμο, χωρίς απώλειες έγγραφο που εκτείνεται σε πολλές σελίδες. Σε αυτόν τον οδηγό θα περάσουμε βήμα‑βήμα από μια πλήρη, έτοιμη προς εκτέλεση λύση που δείχνει **πώς να μετατρέψετε SVG σε TIFF**, πώς να φορτώσετε το έγγραφο SVG σε Java και πώς να ρυθμίσετε την έξοδο ώστε να μπορείτε να **δημιουργήσετε πολυσελιδικά TIFF** αρχεία με συμπίεση LZW. + +Θα καλύψουμε τα πάντα, από την εγκατάσταση της βιβλιοθήκης Aspose.HTML μέχρι τη διαχείριση ειδικών περιπτώσεων όπως μεγάλα SVG αρχεία. Στο τέλος του tutorial θα έχετε μια μοναδική κλάση Java που μπορείτε να ενσωματώσετε σε οποιοδήποτε έργο και να αρχίσετε αμέσως να παράγετε πολυσελιδικά TIFF. + +## Τι θα χρειαστείτε + +- **Java Development Kit (JDK) 8+** – ο κώδικας χρησιμοποιεί τυπικά Java APIs. +- **Aspose.HTML for Java** (έκδοση 23.5 ή νεότερη) – αυτή είναι η μόνη εξωτερική εξάρτηση. +- Ένα **δείγμα αρχείου SVG** (οποιοδήποτε διανυσματικό γραφικό θα δουλέψει· θα το ονομάσουμε `input.svg`). +- Το αγαπημένο σας IDE ή έναν απλό επεξεργαστή κειμένου και ένα τερματικό. + +Δεν απαιτούνται πρόσθετα εργαλεία κατασκευής· το παράδειγμα μεταγλωττίζεται με `javac` και εκτελείται με `java`. Αν προτιμάτε Maven ή Gradle, απλώς προσθέστε το JAR του Aspose.HTML στο classpath του έργου σας. + +![Create multipage tiff example](create-multipage-tiff.png){alt="παράδειγμα δημιουργίας πολυσελιδικού TIFF"} + +## Βήμα 1 – Φόρτωση του εγγράφου SVG (load svg document java) + +Το πρώτο που πρέπει να κάνουμε είναι να διαβάσουμε το SVG σε ένα αντικείμενο `HTMLDocument`. Το Aspose.HTML αντιμετωπίζει τα SVG ως HTML έγγραφα, παρέχοντας μας ένα ενοποιημένο API για τη μετατροπή. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Γιατί είναι σημαντικό:** Η φόρτωση του SVG ως `HTMLDocument` μας δίνει πρόσβαση στη πλήρη μηχανή απόδοσης, εξασφαλίζοντας ότι όλα τα στυλ, οι γραμματοσειρές και οι ενσωματωμένες εικόνες ερμηνεύονται σωστά πριν τη μετατροπή. Η παράλειψη αυτού του βήματος και η προσπάθεια να περάσουμε ακατέργαστα bytes απευθείας στον μετατροπέα συχνά οδηγεί σε ελλιπή στοιχεία ή λανθασμένα χρώματα. + +## Βήμα 2 – Ρύθμιση επιλογών TIFF (how to create multipage tiff) + +Στη συνέχεια ρυθμίζουμε το `TiffConversionOptions`. Αυτό το αντικείμενο ελέγχει τα πάντα, από τη διάταξη της σελίδας μέχρι τη συμπίεση. Για πραγματική πολυσελιδική έξοδο ενεργοποιούμε το `setMultipage(true)` και επιλέγουμε συμπίεση **LZW** επειδή είναι χωρίς απώλειες και ευρέως υποστηριζόμενη. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Γιατί είναι σημαντικό:** Αν παραλείψετε το `setMultipage(true)`, η βιβλιοθήκη θα δημιουργήσει ένα μονοσέλιδο TIFF, απορρίπτοντας τυχόν επιπλέον σελίδες που θα μπορούσαν να προκύψουν από το SVG (π.χ., όταν το SVG περιέχει πολλαπλά στοιχεία `` ρίζας). Η LZW διατηρεί το μέγεθος του αρχείου λογικό χωρίς να θυσιάζει την ποιότητα της εικόνας—ιδανική για αρχειοθέτηση ή εκτυπώσεις. + +## Βήμα 3 – Εκτέλεση της μετατροπής (how to convert svg to tiff) + +Τώρα γίνεται η βαριά δουλειά. Η στατική μέθοδος `Converter.convertSVG` παίρνει το φορτωμένο έγγραφο, τη διαδρομή προορισμού και τις επιλογές που ορίσαμε. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Γιατί είναι σημαντικό:** Η χρήση της στατικής κλήσης `convertSVG` είναι ο πιο απλός τρόπος για να ενεργοποιήσετε τη μετατροπή. Στο παρασκήνιο, το Aspose.HTML rasterizes τα διανυσματικά δεδομένα σε προεπιλεγμένα 96 dpi· μπορείτε να προσαρμόσετε το DPI μέσω του `tiffOptions.setResolution(...)` αν απαιτείται υψηλότερη ποιότητα. + +## Βήμα 4 – Επαλήθευση του αποτελέσματος + +Μετά το τέλος της μετατροπής, είναι καλή ιδέα να επιβεβαιώσετε ότι το αρχείο υπάρχει και περιέχει τον αναμενόμενο αριθμό σελίδων. Ένας γρήγορος έλεγχος μπορεί να γίνει με οποιονδήποτε προβολέα εικόνων που υποστηρίζει πολυσελιδικά TIFF (π.χ., IrfanView, XnView ή ακόμη και το `ImageIO` της Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Εκτελέστε το πρόγραμμα: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Θα πρέπει να δείτε το μήνυμα στην κονσόλα που επιβεβαιώνει την επιτυχία, και το άνοιγμα του `output.tiff` θα αποκαλύψει μία σελίδα ανά στοιχείο ρίζας SVG (ή μία σελίδα αν το SVG έχει μόνο έναν καμβά). + +## Συνηθισμένα προβλήματα & Επαγγελματικές Συμβουλές + +| Πρόβλημα | Γιατί συμβαίνει | Πώς να το διορθώσετε | +|----------|----------------|----------------------| +| **Λείπουν γραμματοσειρές** | Το SVG αναφέρεται σε συστημικές γραμματοσειρές που δεν είναι εγκατεστημένες στον διακομιστή. | Ενσωματώστε τις γραμματοσειρές στο SVG ή χρησιμοποιήστε `FontSettings` στο Aspose.HTML για να παρέχετε έναν προσαρμοσμένο φάκελο γραμματοσειρών. | +| **Μεγάλο μέγεθος αρχείου** | Η rasterization υψηλής ανάλυσης μπορεί να αυξήσει το μέγεθος του TIFF. | Μειώστε το DPI μέσω `tiffOptions.setResolution(150)` ή αλλάξτε σε `Compression.NONE` μόνο για εντοπισμό σφαλμάτων. | +| **Δεν δημιουργούνται πολλαπλές σελίδες** | Το SVG περιέχει μόνο ένα στοιχείο ``. | Διαχωρίστε την πηγή σας σε ξεχωριστά SVG αρχεία ή τυλίξτε κάθε λογική σελίδα σε ένα `` πριν τη μετατροπή. | +| **Μη υποστηριζόμενα χαρακτηριστικά SVG** | Ορισμένα φίλτρα ή animations δεν αποδίδονται. | Απλοποιήστε το SVG ή προεπεξεργαστείτε το με εργαλείο όπως το Inkscape για να «ισοπεδώσετε» τα φίλτρα. | + +**Επαγγελματική συμβουλή:** Αν χρειάζεστε συγκεκριμένη σειρά σελίδων, μετονομάστε τα SVG αρχεία σας σε `page1.svg`, `page2.svg`, κ.λπ., και κάντε βρόχο πάνω τους, προσθέτοντας κάθε αποτέλεσμα μετατροπής στο ίδιο TIFF χρησιμοποιώντας `tiffOptions.setMultipage(true)` κάθε φορά. + +## Πλήρες Παράδειγμα Λειτουργίας + +Παρακάτω βρίσκεται η πλήρης, αυτόνομη κλάση Java που μπορείτε να αντιγράψετε‑επικολλήσετε σε ένα αρχείο με όνομα `SvgToMultipageTiff.java`. Περιλαμβάνει δηλώσεις import, σχόλια και διαχείριση σφαλμάτων για παραγωγική χρήση. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Η εκτέλεση του κώδικα παράγει ένα TIFF όπου κάθε ρίζα SVG γίνεται ξεχωριστή σελίδα—ακριβώς ό,τι χρειάζεστε όταν θέλετε να **δημιουργήσετε πολυσελιδικό TIFF** για εκτύπωση ή αρχειοθέτηση. + +## Συμπέρασμα + +Σας δείξαμε πώς να **δημιουργήσετε πολυσελιδικό TIFF** από SVG χρησιμοποιώντας Java και Aspose.HTML. Ο οδηγός κάλυψε τη φόρτωση του SVG (`load svg document java`), τη ρύθμιση των επιλογών μετατροπής, την εκτέλεση της μετατροπής (`how to convert svg to tiff`) και την επαλήθευση του αποτελέσματος. Με τον πλήρη κώδικα στα χέρια σας, μπορείτε να προσαρμόσετε τη λύση για μαζική επεξεργασία δεκάδων SVG, να ρυθμίσετε τις παραμέτρους DPI ή να ενσωματώσετε τη λογική σε μια μεγαλύτερη αλυσίδα δημιουργίας εγγράφων. + +Έτοιμοι για την επόμενη πρόκληση; Δοκιμάστε να μετατρέψετε έναν φάκελο SVG σε ένα ενιαίο πολυσελιδικό TIFF, πειραματιστείτε με διαφορετικά σχήματα συμπίεσης ή εξερευνήστε την έξοδο PDF αντικαθιστώντας το `TiffConversionOptions` με `PdfConversionOptions`. Οι ίδιες αρχές ισχύουν, ώστε να αισθάνεστε άνετα να επεκτείνετε αυτό το μοτίβο σε άλλες μορφές. + +Έχετε ερωτήσεις ή αντιμετωπίσατε κάποιο ασυνήθιστο σενάριο SVG; Αφήστε ένα σχόλιο παρακάτω, και καλή προγραμματιστική διασκέδαση! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/html5-canvas-rendering/_index.md b/html/greek/java/html5-canvas-rendering/_index.md index 1b09e7128..b2268c5e6 100644 --- a/html/greek/java/html5-canvas-rendering/_index.md +++ b/html/greek/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ url: /el/java/html5-canvas-rendering/ Δημιουργία και απόδοση καμβά HTML5 με το Aspose.HTML για Java. Μάθετε βήμα προς βήμα πώς να σχεδιάζετε, να στυλ και να εξάγετε σε PDF χρησιμοποιώντας αυτήν την ισχυρή βιβλιοθήκη Java. ### [Κατακτήστε τον καμβά HTML5 με το Aspose.HTML για Java](./html5-canvas/) Μάθετε πώς να δημιουργείτε και να μετατρέπετε καμβά HTML5 σε PDF χρησιμοποιώντας το Aspose.HTML για Java. Αυτός ο οδηγός είναι ιδανικός για προγραμματιστές που θέλουν να βελτιώσουν τα έργα τους στον ιστό. +### [Πώς να Εξομοιώσετε το iPhone – Πλήρης Οδηγός με το Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Μάθετε πώς να προσομοιώσετε το iPhone σε περιβάλλον Aspose.HTML, βήμα-βήμα οδηγίες για ακριβή απόδοση και λειτουργικότητα. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/greek/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/greek/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..521675642 --- /dev/null +++ b/html/greek/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Μάθετε πώς να προσομοιώσετε iPhone σε Java χρησιμοποιώντας το Aspose.HTML. + Περιλαμβάνει βήματα για τον ορισμό προσαρμοσμένου user agent και του λόγου pixel + της συσκευής για ακριβή απόδοση σε κινητές συσκευές. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: el +og_description: Πώς να προσομοιώσετε iPhone σε Java; Αυτό το σεμινάριο δείχνει πώς + να ορίσετε προσαρμοσμένο user agent και λόγο εικονοστοιχείων συσκευής χρησιμοποιώντας + το Aspose.HTML, παρέχοντας σελίδες κινητών με pixel‑perfect ανάλυση. +og_title: Πώς να προσομοιώσετε iPhone – Οδηγός Aspose.HTML βήμα‑προς‑βήμα +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Πώς να προσομοιώσετε iPhone – Πλήρης οδηγός με το Aspose.HTML +url: /el/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Πώς να Εξομοιώσετε iPhone – Πλήρης Οδηγός με το Aspose.HTML + +Έχετε αναρωτηθεί ποτέ **πώς να εξομοιώσετε iPhone** όταν δοκιμάζετε μια ιστοσελίδα τοπικά; Ίσως κάνετε αποσφαλμάτωση ενός responsive layout και το desktop πρόγραμμα περιήγησης απλώς δεν αρκεί. Τα καλά νέα είναι ότι δεν χρειάζεστε φυσική συσκευή — το `DocumentSandbox` του Aspose.HTML σας επιτρέπει να μιμηθείτε την οθόνη, το user‑agent και το device‑pixel‑ratio (DPR) ενός iPhone με λίγες γραμμές Java. + +Σε αυτό το tutorial θα περάσουμε βήμα‑βήμα από τα ακριβή βήματα για να ορίσετε **προσαρμοσμένο user agent**, να ρυθμίσετε το **device pixel ratio**, και να επαληθεύσετε ότι όλα λειτουργούν όπως αναμένεται. Στο τέλος θα έχετε ένα επαναχρησιμοποιήσιμο sandbox που αποδίδει σελίδες όπως ένα iPhone 8, και θα καταλάβετε γιατί κάθε ρύθμιση είναι σημαντική. + +## Τι Θα Επιτύχετε + +- Δημιουργία αντικειμένου `Screen` που αντικατοπτρίζει τις διαστάσεις και το DPR ενός iPhone. +- Εφαρμογή **προσαρμοσμένης συμβολοσειράς user agent** ώστε οι διακομιστές να πιστεύουν ότι το αίτημα προέρχεται από Safari σε iOS. +- Κατασκευή `DocumentSandbox` που συνδέει την οθόνη και το user‑agent. +- Εκτέλεση `HTMLDocument` μέσα στο sandbox και εμφάνιση της εξόδου στην κονσόλα που επιβεβαιώνει τη ρύθμιση. + +Δεν απαιτούνται εξωτερικές βιβλιοθήκες πέρα από το Aspose.HTML, και ο κώδικας εκτελείται σε οποιοδήποτε περιβάλλον Java 17+. + +--- + +![στιγμιότυπο εξομοίωσης iPhone](https://example.com/images/iphone-emulation.png "πώς να εξομοιώσετε iPhone χρησιμοποιώντας το sandbox του Aspose.HTML") + +## Πώς να Εξομοιώσετε iPhone με το Aspose.HTML Sandbox + +Το πρώτο που χρειάζεται είναι ένα `Screen` που αντικατοπτρίζει τις φυσικές διαστάσεις του iPhone *και* την πυκνότητα των εικονοστοιχείων του. Αυτό είναι ο πυρήνας του **πώς να εξομοιώσετε iPhone** με ακρίβεια. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Γιατί είναι σημαντικό:** +- Το πλάτος = 375 px και το ύψος = 667 px είναι οι διαστάσεις CSS pixel που βλέπετε στα Chrome DevTools όταν επιλέγετε iPhone 8. +- Ορίζοντας το DPR σε 2 λέτε στη μηχανή απόδοσης να αντιμετωπίζει κάθε CSS pixel ως δύο φυσικά pixel, προσφέροντας καθαρό κείμενο και εικόνες — ακριβώς όπως κάνει μια πραγματική συσκευή. + +> *Pro tip:* Αν θέλετε να εξομοιώσετε ένα νεότερο iPhone (π.χ. iPhone 13), απλώς αλλάξτε τους αριθμούς σε 390 × 844 και DPR = 3. + +## Ορισμός Προσαρμοσμένου User Agent (set custom user agent) + +Στη συνέχεια, πρέπει να **ορίσουμε προσαρμοσμένο user agent** ώστε ο διακομιστής να σερβίρει το mobile‑specific HTML/CSS. Χωρίς αυτό, πολλά sites θα συνεχίσουν να πιστεύουν ότι βρίσκεστε σε desktop. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Πώς λειτουργεί:** +- Η κεφαλίδα `User-Agent` είναι το χέρι που χρησιμοποιούν τα προγράμματα περιήγησης για να ανακοινώσουν την ταυτότητά τους. +- Παρέχοντας την ακριβή συμβολοσειρά που στέλνει το Safari σε iOS 16, εξασφαλίζετε ότι ο διακομιστής επιστρέφει τα mobile‑optimized assets (π.χ. responsive images, adaptive scripts, κ.λπ.). + +Αν χρειαστεί ποτέ να **πώς να ορίσετε user-agent** για διαφορετική συσκευή, απλώς αντικαταστήστε τη συμβολοσειρά με την αντίστοιχη τιμή — Google Chrome, Firefox, ή ακόμη και ένα προσαρμοσμένο bot. + +## Ρύθμιση Device Pixel Ratio (set device pixel ratio) + +Τώρα θα **ορίσουμε το device pixel ratio** μέσα στο sandbox. Αυτό είναι το βήμα που απαντά άμεσα στο ερώτημα “**πώς να ορίσετε dpr**” για ένα προσομοιωμένο περιβάλλον. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Εξήγηση:** +- Το pattern `Builder` σας επιτρέπει να συνδέσετε ομαλά τόσο την οθόνη (που φέρει το DPR) όσο και το user‑agent. +- Όταν το sandbox αποδίδει ένα `HTMLDocument`, θα προσποιηθεί ότι τρέχει σε συσκευή με αυτήν την ακριβή πυκνότητα εικονοστοιχείων. + +> *Γιατί να σας ενδιαφέρει:* Κάποια CSS media queries χρησιμοποιούν `device-pixel-ratio` (π.χ. `@media (-webkit-min-device-pixel-ratio: 2)`). Αν δεν ορίσετε το DPR, οι κανόνες αυτοί δεν ενεργοποιούνται ποτέ, και θα χάσετε τα υψηλής ανάλυσης assets. + +## Επαλήθευση της Διαμόρφωσης του Sandbox (how to set user-agent) + +Ας θέσουμε το sandbox σε λειτουργία. Το παρακάτω απόσπασμα δημιουργεί ένα `HTMLDocument`, φορτώνει μια σελίδα, και εκτυπώνει μια επιβεβαίωση ότι το sandbox είναι ενεργό. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Αναμενόμενη έξοδος στην κονσόλα** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Αν τρέξετε το πρόγραμμα και δείτε αυτή τη γραμμή, έχετε επιτυχώς **πώς να εξομοιώσετε iPhone** με το σωστό DPR και user‑agent. Ανοίξτε τη σελίδα σε πραγματικό πρόγραμμα περιήγησης και ελέγξτε τις διαστάσεις του viewport — θα δείτε ότι ταιριάζουν με τις τιμές iPhone που ορίσαμε. + +## Συνηθισμένα Πιθανά Σφάλματα και Πώς να Ορίσετε σωστά το DPR (how to set dpr) + +Ακόμη και με τον σωστό κώδικα, μερικά μικρά προβλήματα μπορούν να σας κολλήσουν: + +| Πρόβλημα | Γιατί συμβαίνει | Διόρθωση | +|----------|-----------------|----------| +| **Το DPR παραμένει 1** | Παρέχετε ένα `Screen` χωρίς το τρίτο όρισμα (DPR). | Πάντα χρησιμοποιείτε `new Screen(width, height, dpr)`. | +| **Ο User‑Agent αγνοείται** | Το sandbox δεν συνδέθηκε με το `HTMLDocument`. | Περνάτε το `documentSandbox` ως δεύτερο όρισμα στον κατασκευαστή του `HTMLDocument`. | +| **Λανθασμένες διαστάσεις** | Χρήση pixel της συσκευής αντί για CSS pixel. | Θυμηθείτε: το πλάτος/ύψος είναι **CSS pixel**, όχι hardware pixel. | +| **Ο διακομιστής εξακολουθεί να στέλνει desktop CSS** | Κάποια sites χρησιμοποιούν JavaScript για ανίχνευση συσκευών, όχι μόνο την κεφαλίδα. | Σκεφτείτε επίσης την εισαγωγή ενός meta viewport tag αν χρειάζεται. | + +Κρατώντας αυτά στο μυαλό, σπάνια θα βρεθείτε σε κατάσταση όπου η εξομοίωση δεν συμπεριφέρεται όπως αναμένεται. + +## Επέκταση του Sandbox – Επόμενα Βήματα + +Τώρα που ξέρετε **πώς να ορίσετε προσαρμοσμένο user agent** και **πώς να ορίσετε dpr**, μπορείτε να πειραματιστείτε περαιτέρω: + +- **Αλλάξτε το μέγεθος της οθόνης** για να εξομοιώσετε tablets ή μεγαλύτερα τηλέφωνα. +- **Αλλάξτε το user‑agent** για να δοκιμάσετε Chrome σε Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Προσθέστε cookies ή headers** μέσω της μεθόδου `setHeaders` του sandbox για δοκιμές με αυθεντικοποίηση. +- **Καταγράψτε screenshot** χρησιμοποιώντας `HTMLDocument.renderToFile("output.png")` για να συγκρίνετε αυτόματα τις οπτικές διαφορές. + +Αυτές οι επεκτάσεις σας επιτρέπουν να χτίσετε ένα πλήρες testing harness χωρίς να φύγετε ποτέ από το IDE σας. + +--- + +## Συμπέρασμα + +Καλύψαμε **πώς να εξομοιώσετε iPhone** χρησιμοποιώντας το `DocumentSandbox` του Aspose.HTML, δείχνοντας σας ακριβώς **πώς να ορίσετε προσαρμοσμένο user agent**, **πώς να ορίσετε device pixel ratio**, και ακόμη τις λεπτές διαφορές μεταξύ “**πώς να ορίσετε user-agent**” και “**πώς να ορίσετε dpr**”. Το πλήρες, εκτελέσιμο παράδειγμα παρουσιάζει κάθε κομμάτι σε ένα σημείο, ώστε να μπορείτε να το αντιγράψετε, να το τροποποιήσετε, και να ξεκινήσετε αμέσως τις δοκιμές mobile layout. + +Δοκιμάστε το — αλλάξτε τις διαστάσεις της οθόνης, παίξτε με διαφορετικά user‑agents, και παρακολουθήστε πώς αντιδρούν οι σελίδες σας. Όταν κυριαρχήσετε αυτές τις ρυθμίσεις, η αποσφαλμάτωση responsive σχεδίων γίνεται παιχνιδάκι, και θα εξοικονομήσετε αμέτρητες ώρες κυνηγώντας σφάλματα σε πραγματικές συσκευές. + +Έχετε ερωτήσεις ή θέλετε να μοιραστείτε τις δικές σας παραλλαγές; Αφήστε ένα σχόλιο παρακάτω, και καλή εξομοίωση! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/advanced-usage/_index.md b/html/hindi/java/advanced-usage/_index.md index 930559a5a..573ec7d46 100644 --- a/html/hindi/java/advanced-usage/_index.md +++ b/html/hindi/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Aspose.HTML for Java का उपयोग करके PDF पेज आका Aspose.HTML for Java का उपयोग करके XPS पेज आकार को कैसे समायोजित करें, जानें। अपने XPS दस्तावेज़ों के आउटपुट आयाम को आसानी से नियंत्रित करें। ### [Java में JavaScript चलाना – पूर्ण गाइड](./how-to-run-javascript-in-java-complete-guide/) Java एप्लिकेशन में JavaScript को एम्बेड और निष्पादित करने के चरण‑दर‑चरण निर्देश। +### [टॉप‑लेवल await उदाहरण – JavaScript में await delay का उपयोग](./top-level-await-example-using-await-delay-in-javascript/) +JavaScript में टॉप‑लेवल await का उपयोग करके await delay को कैसे लागू करें, इस ट्यूटोरियल में सीखें। --- diff --git a/html/hindi/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/hindi/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..3058fec3f --- /dev/null +++ b/html/hindi/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,172 @@ +--- +category: general +date: 2026-03-26 +description: टॉप-लेवल अवेइट का उदाहरण, जिसमें जावास्क्रिप्ट में await delay, काउंटर + क्लास को इन्क्रीमेंट करना, और पब्लिक क्लास फ़ील्ड्स जावास्क्रिप्ट को लाइव डेमो में + दिखाया गया है। +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: hi +og_description: टॉप‑लेवल await का उदाहरण जो जावास्क्रिप्ट में await delay, काउंटर + क्लास को बढ़ाना, और पब्लिक क्लास फ़ील्ड्स को संक्षिप्त ट्यूटोरियल में प्रदर्शित + करता है। +og_title: टॉप लेवल अवेट उदाहरण – जावास्क्रिप्ट में अवेट डिले का उपयोग +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: टॉप लेवल अवेट उदाहरण – जावास्क्रिप्ट में अवेट डिले का उपयोग +url: /hi/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# टॉप लेवल अवेट उदाहरण – जावास्क्रिप्ट में await delay का उपयोग + +क्या आप कभी सोचते थे कि सभी को async IIFE में लपेटे बिना मॉड्यूल निष्पादन को कैसे रोकें? यही वह चीज़ है जो **टॉप लेवल अवेट उदाहरण** आपको करने देता है। इस ट्यूटोरियल में हम एक छोटा वेब पेज देखेंगे जो `await delay javascript` का उपयोग करके काम को स्थगित करता है, फिर एक `increment counter class` बनाता है जो **public class fields javascript** का लाभ उठाता है। अंत तक आपके पास एक पूर्ण, कॉपी‑पेस्ट करने योग्य स्निपेट होगा जो किसी भी आधुनिक ब्राउज़र में चल सके। + +हम सब कुछ कवर करेंगे—एक क्लास को सार्वजनिक फ़ील्ड के साथ परिभाषित करने से लेकर एक साधारण प्रॉमिस‑आधारित डिले हेल्पर को वायर करने तक। कोई बाहरी लाइब्रेरी नहीं, कोई बिल्ड स्टेप नहीं—सिर्फ साधारण HTML, एक ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### अपेक्षित कंसोल आउटपुट + +``` +Counter class initialized +Final count: 1 +``` + +यदि आप पेज को DevTools में खोलते हैं, तो आपको static‑block संदेश **डिले समाप्त होने से पहले** दिखाई देना चाहिए, जिससे पुष्टि होती है कि क्लास पहले मूल्यांकित हुई। + +## चरण 5 – कंस्ट्रक्टर की बजाय सार्वजनिक क्लास फ़ील्ड क्यों उपयोग करें? + +आप सोच सकते हैं कि हमने यह क्यों नहीं लिखा: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +दोनों तरीके काम करते हैं, लेकिन **public class fields javascript** आपको एक साफ़, अधिक घोषणात्मक सिंटैक्स देता है। फ़ील्ड एक बार परिभाषित होती है, हर कंस्ट्रक्टर कॉल में नहीं, जिससे क्लास बड़े होने पर पढ़ना आसान हो जाता है। अतिरिक्त रूप से, static blocks को कंस्ट्रक्टर के अंदर नहीं रखा जा सकता, इसलिए इनिशियलाइज़ेशन लॉजिक को अलग करना अधिक स्वाभाविक बन जाता है। + +## चरण 6 – वास्तविक‑दुनिया के ऐप्स के लिए उदाहरण को अनुकूलित करना + +प्रोडक्शन में आपको अक्सर एक से अधिक काउंटर की जरूरत पड़ेगी। यहाँ कुछ त्वरित विचार हैं: + +- **एकाधिक काउंटर:** उन्हें `Map` में स्टोर करें, जहाँ कुंजी पहचानकर्ता हो। +- **स्थायी स्थिति:** `console.log` को `localStorage` लिखने से बदलें। +- **Async इनिशियलाइज़ेशन:** static block का उपयोग करके सर्वर से कॉन्फ़िगरेशन फ़ेच करें, इससे पहले कि कोई इंस्टेंस बनाया जाए। + +इन सभी पैटर्न को अभी भी टॉप‑लेवल अवेट से लाभ मिलता है, क्योंकि आप मॉड्यूल लोड समय पर डेटा फ़ेच कर सकते हैं और यह सुनिश्चित कर सकते हैं कि यह हर कंज्यूमर के लिए तैयार है। + +## अक्सर पूछे जाने वाले प्रश्न + +**प्रश्न: क्या टॉप‑लेवल अवेट अन्य मॉड्यूल्स को ब्लॉक करता है?** +उत्तर: नहीं। प्रत्येक मॉड्यूल स्वतंत्र रूप से चलता है। केवल वह मॉड्यूल जो await रखता है, वह रुका रहता है; अन्य मॉड्यूल समानांतर में लोड होते रहते हैं। + +**प्रश्न: यदि डिले प्रॉमिस रेजेक्ट हो जाए तो क्या होगा?** +उत्तर: अनहैंडल्ड रेजेक्शन मॉड्यूल मूल्यांकन को रोक देगा और कंसोल में एरर के रूप में दिखेगा। यदि आपको ग्रेसफ़ुल फ़ॉलबैक चाहिए, तो await को `try…catch` में रैप करें। + +**प्रश्न: क्या `static` कीवर्ड आवश्यक है?** +उत्तर: काउंटर के लिए नहीं, लेकिन static block यह दर्शाने का एक सुविधाजनक तरीका है कि कोड *एक बार* लोड समय पर चलता है—लॉगिंग या फीचर‑डिटेक्शन के लिए बढ़िया। + +## निष्कर्ष + +आपने अभी एक **टॉप लेवल अवेट उदाहरण** बनाया है जो `await delay javascript`, एक **increment counter class**, और **public class fields javascript** की शक्ति को दर्शाता है। पूर्ण, चलने योग्य स्निपेट ऊपर मौजूद है, और कंसोल आउटपुट यह साबित करता है कि static block डिले वाले कोड चलने से पहले फायर होता है। + +अब आप अधिक जटिल async फ्लो के साथ प्रयोग कर सकते हैं, डिले को वास्तविक API कॉल से बदल सकते हैं, या क्लास में अतिरिक्त मेथड जोड़ सकते हैं। याद रखें, आधुनिक जावास्क्रिप्ट आपको मॉड्यूल्स को प्रथम‑श्रेणी के async एंटिटी के रूप में ट्रीट करने देता है—कोई अतिरिक्त रैपर नहीं चाहिए। + +हैप्पी कोडिंग, और अपने वैरिएशन कमेंट्स में शेयर करें। यदि आपको यह गाइड उपयोगी लगा, तो इसे उस टीममेट के साथ शेयर करें जो अभी भी async पैटर्न से जूझ रहा है! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/conversion-html-to-other-formats/_index.md b/html/hindi/java/conversion-html-to-other-formats/_index.md index 1c90698de..ec9f191ff 100644 --- a/html/hindi/java/conversion-html-to-other-formats/_index.md +++ b/html/hindi/java/conversion-html-to-other-formats/_index.md @@ -31,7 +31,7 @@ Java पर्यावरण में HTML को PDF में बदलन - **उच्च सटीकता रेंडरिंग** – CSS3, JavaScript, और आधुनिक वेब फ़ॉन्ट सटीक रूप से रेंडर होते हैं. - **कोई बाहरी निर्भरताएँ नहीं** – शुद्ध Java API, कोई नेटिव बाइनरी आवश्यक नहीं. - **व्यापक फ़ॉर्मेट समर्थन** – PDF के अलावा, आप MHTML, XPS, SVG, PNG, JPEG, आदि आउटपुट कर सकते हैं. -- **एंटरप्राइज़ के लिए स्केलेबल** – बड़े दस्तावेज़ और बैच प्रोसेसिंग को आसानी से संभालता है. +- **एंटरप्राइज़ के लिए स्केलेबल** – बड़े दस्तावेज़ और बैच प्रोसेसिंग को आसानी से संभालता है। ## मुख्य रूपांतरण विषय @@ -85,12 +85,20 @@ SVG ग्राफ़िक्स को XPS फ़ॉर्मेट में ### [HTML को PDF में बदलना](./convert-html-to-pdf/) Java में Aspose.HTML का उपयोग करके HTML को PDF में कैसे बदलें सीखें। अपने HTML कंटेंट से आसानी से उच्च‑गुणवत्ता वाले PDF बनाएं। +### [Java में HTML से PDF बनाएं – समानांतर बैच रूपांतरण गाइड](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Aspose.HTML का उपयोग करके Java में कई HTML फ़ाइलों को एक साथ PDF में बदलने की चरण‑दर‑गाइड। + +### [PDF कस्टम आकार बनाएं – Aspose के साथ HTML को PDF में बदलें](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Aspose.HTML का उपयोग करके HTML को कस्टम पेज आकार वाले PDF में बदलें। + ### [HTML को MHTML में बदलना](./convert-html-to-mhtml/) Aspose.HTML for Java का उपयोग करके HTML को MHTML में आसानी से बदलें। कुशल HTML‑to‑MHTML रूपांतरण के लिए हमारे चरण‑दर‑चरण गाइड का पालन करें। ### [HTML को XPS में बदलना](./convert-html-to-xps/) Aspose.HTML for Java का उपयोग करके HTML को XPS में आसानी से कैसे बदलें सीखें। आसानी से क्रॉस‑प्लेटफ़ॉर्म दस्तावेज़ बनाएं। +### [HTML को Markdown में बदलें Java में – मूल स्वरूप बनाए रखें](./convert-html-to-markdown-in-java-preserve-original-formattin/) + ### [Markdown को HTML में बदलना](./convert-markdown-to-html/) Aspose.HTML for Java के साथ Java में Markdown को HTML में सहजता से बदलें। अपने दस्तावेज़ रूपांतरण आवश्यकताओं को सुव्यवस्थित करने के लिए हमारे चरण‑दर‑चरण गाइड का पालन करें। @@ -103,8 +111,7 @@ Aspose.HTML के साथ Java में SVG को PDF में बदल ### [SVG को XPS में बदलना](./convert-svg-to-xps/) Aspose.HTML for Java के साथ SVG को XPS में कैसे बदलें सीखें। सहज रूपांतरण के लिए सरल, चरण‑दर‑चरण गाइड। -### [Java में HTML को PDF में बदलें – पेज आकार सेटिंग्स के साथ चरण‑दर‑चरण गाइड](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) -Aspose.HTML for Java के साथ पेज आकार सेटिंग्स को नियंत्रित करते हुए HTML को PDF में बदलने का विस्तृत गाइड। +### [Java में HTML को PDF में बदलें – पेज आकार सेटिंग्स के साथ चरण‑दर‑गाइड](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) ## अक्सर पूछे जाने वाले प्रश्न diff --git a/html/hindi/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/hindi/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..0a30391e0 --- /dev/null +++ b/html/hindi/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Java में Aspose HTML रूपांतरण का उपयोग करके मूल स्वरूपण को बनाए रखते + हुए HTML को मार्कडाउन में बदलें और मार्कडाउन फ़ाइल उत्पन्न करें। चरण‑दर‑चरण सीखें। +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: hi +og_description: Aspose HTML रूपांतरण for Java का उपयोग करके HTML को तेज़ी से मार्कडाउन + में बदलें, मार्कडाउन फ़ाइल बनाएं, और मूल फ़ॉर्मेटिंग को बनाए रखें। +og_title: जावा में HTML को Markdown में बदलें – फ़ॉर्मेटिंग बनाए रखें +tags: +- Aspose +- Java +- Markdown +title: जावा में HTML को Markdown में बदलें – मूल स्वरूप को बनाए रखें +url: /hi/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML को Markdown में Java के साथ बदलें – मूल फ़ॉर्मेटिंग बनाए रखें + +क्या आपको कभी **HTML को markdown में बदलने** की ज़रूरत पड़ी है लेकिन आप स्पेसिंग, टेबल्स या इनलाइन टैग्स खोने को लेकर चिंतित थे? आप अकेले नहीं हैं। कई डेवलपर्स को यह समस्या आती है जब वे वेब पेज की सामग्री को एक साफ़, संस्करण‑नियंत्रण‑अनुकूल फ़ॉर्मेट में ले जाना चाहते हैं। अच्छी खबर? कुछ Java लाइनों और Aspose HTML के साथ, आप **markdown फ़ाइल जेनरेट** कर सकते हैं जो स्रोत जैसा ही दिखे, व्हाइटस्पेस सहित। + +इस गाइड में हम पूरी प्रक्रिया को देखेंगे: एक जटिल HTML फ़ाइल लोड करना, रूपांतरण को इस तरह कॉन्फ़िगर करना कि वह **मूल फ़ॉर्मेटिंग बनाए रखे**, और अंत में आउटपुट को `preserved.md` में लिखना। अंत तक आपके पास एक तैयार‑चलाने‑योग्य स्निपेट होगा, समझेंगे कि *क्यों* प्रत्येक सेटिंग महत्वपूर्ण है, और जानेंगे कि कोड को कस्टम CSS या एम्बेडेड स्क्रिप्ट जैसे एज केसों के लिए कैसे अनुकूलित करें। + +## आपको क्या चाहिए + +- Java 17 (या कोई भी नया JDK) – API Java 8+ के साथ काम करता है लेकिन नए संस्करण बेहतर प्रदर्शन देते हैं। +- Aspose HTML for Java लाइब्रेरी (संस्करण 23.11 या बाद का)। आप इसे Maven Central से प्राप्त कर सकते हैं: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- एक सैंपल HTML फ़ाइल (`complex.html`) जिसमें हेडिंग्स, टेबल्स, कोड ब्लॉक्स, और संभवतः कुछ इनलाइन `` स्टाइलिंग हो। +- थोड़ी बहुत धैर्य और प्रयोग करने की इच्छा। + +बस इतना ही। कोई बाहरी टूल नहीं, कोई कमांड‑लाइन हैक्स नहीं—सिर्फ शुद्ध Java कोड। + +## चरण 1: स्रोत HTML दस्तावेज़ लोड करें + +पहला कदम यह है कि हम एक `HTMLDocument` इंस्टेंस बनाते हैं जो आपके स्रोत फ़ाइल की ओर इशारा करता है। Aspose HTML फ़ाइल को DOM के रूप में मानता है, जिसका मतलब है कि आप रूपांतरण से पहले इसे निरीक्षण या संशोधित कर सकते हैं यदि आवश्यकता हो। + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **यह क्यों महत्वपूर्ण है:** इस तरह दस्तावेज़ लोड करने से सुनिश्चित होता है कि सभी लिंक्ड रिसोर्सेज (स्टाइलशीट्स, इमेजेज) फ़ाइल लोकेशन के सापेक्ष हल हो जाएँ। यदि आप इस चरण को छोड़ते हैं और एक रॉ स्ट्रिंग पास करते हैं, तो आप बाहरी CSS खो सकते हैं जो स्पेसिंग को प्रभावित करता है—वही चीज़ जिसे आप **मूल फ़ॉर्मेटिंग बनाए रखने** के लिए चाहते हैं। + +## चरण 2: Markdown रूपांतरण विकल्प कॉन्फ़िगर करें + +Aspose HTML आपको एक `MarkdownConversionOptions` क्लास देता है। हमारे लिए मुख्य प्रॉपर्टी है `setPreserveOriginalFormatting(true)`। जब यह सक्षम हो, तो कन्वर्टर लाइन ब्रेक्स, इंडेंटेशन, और यहां तक कि रॉ HTML स्निपेट्स को भी रखता है जो markdown मूल रूप से प्रदर्शित नहीं कर सकता। + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **प्रो टिप:** यदि बाद में आप पाते हैं कि कुछ इनलाइन स्टाइल्स हटाए जा रहे हैं, तो आप `markdownOptions.setIncludeHtml(true)` भी कॉल कर सकते हैं ताकि रॉ HTML ब्लॉक्स को markdown आउटपुट में मजबूर किया जा सके। + +## चरण 3: रूपांतरण करें + +अब हम `HTMLDocument`, लक्ष्य फ़ाइल पाथ, और हमारे विकल्पों को स्थैतिक `Converter.convertHTML` मेथड को देते हैं। यह मेथड सभी भारी काम बैकग्राउंड में करता है। + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +जब कॉल समाप्त हो जाता है, तो आपको `preserved.md` अपनी स्रोत फ़ाइल के बगल में मिलेगा। इसे किसी भी एडिटर में खोलें—ध्यान दें कि मूल लाइन ब्रेक्स और टेबल अलाइनमेंट बरकरार हैं। + +## चरण 4: परिणाम सत्यापित करें (वैकल्पिक लेकिन अनुशंसित) + +एक त्वरित sanity check आपको बाद में सूक्ष्म बग्स से बचाता है। आप फ़ाइल को फिर से Java में पढ़ सकते हैं और पहले कुछ लाइनों को प्रिंट कर सकते हैं, या बस इसे VS Code में खोल सकते हैं। + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +आपको कुछ इस तरह दिखना चाहिए: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +`` टैग अभी भी मौजूद है क्योंकि markdown की मूल टेबल सिंटैक्स सटीक स्टाइलिंग को कैप्चर नहीं कर पाई—`preserve original formatting` के धन्यवाद। + +## चरण 5: सब कुछ एक साथ रखें – पूर्ण चलाने योग्य उदाहरण + +नीचे पूर्ण, तैयार‑चलाने‑योग्य क्लास दिया गया है। `YOUR_DIRECTORY` को अपने मशीन पर वास्तविक पाथ से बदलें। + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +`mvn exec:java` या अपने पसंदीदा IDE के साथ प्रोग्राम चलाएँ, और आपके पास एक **markdown फ़ाइल जेनरेट** होगी जो मूल HTML लेआउट को प्रतिबिंबित करती है। + +## सामान्य प्रश्न और एज केस + +### क्या यह बाहरी CSS फ़ाइलों के साथ काम करता है? + +हाँ। जब तक CSS फ़ाइलें रिलेटिव पाथ्स के माध्यम से पहुंच योग्य हैं, Aspose HTML उन्हें स्वचालित रूप से लोड करता है। यदि आप रिमोट URL से HTML खींच रहे हैं, तो आपको नेटवर्क एक्सेस की अनुमति देने के लिए एक कस्टम `ResourceLoadingOptions` ऑब्जेक्ट सेट करना पड़ सकता है। + +### यदि मैं markdown में कोई रॉ HTML नहीं चाहता तो क्या करें? + +सिर्फ विकल्प बदलें: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +कन्वर्टर तब सब कुछ शुद्ध markdown सिंटैक्स में बदलने की कोशिश करेगा, जिससे कुछ लेआउट फ़िडेलिटी खो सकती है। + +### क्या मैं फ़ाइल के बजाय स्ट्रिंग को बदल सकता हूँ? + +बिल्कुल। `String` को स्वीकार करने वाले कंस्ट्रक्टर का उपयोग करें: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +फिर `doc` को पहले की तरह `Converter.convertHTML` को पास करें। + +### यह Flexmark या pandoc जैसे अन्य लाइब्रेरीज़ से कैसे अलग है? + +अधिकांश ओपन‑सोर्स टूल्स HTML को प्लेन टेक्स्ट मानते हैं और व्हाइटस्पेस को आक्रामक रूप से हटाते हैं। Aspose HTML का `preserveOriginalFormatting` फ़्लैग एक **स्वामित्व वाला फीचर** है जो मूल स्रोत के व्हाइटस्पेस, लाइन ब्रेक्स, और यहां तक कि असमर्थित टैग्स को रॉ HTML ब्लॉक्स के रूप में रखता है। इसलिए यह ट्यूटोरियल Java डेवलपर्स के लिए **aspose html conversion** पर ज़ोर देता है जिन्हें सटीक फ़िडेलिटी चाहिए। + +## प्रोडक्शन उपयोग के लिए टिप्स + +- **बैच प्रोसेसिंग:** रूपांतरण लॉजिक को एक लूप में रखें ताकि एक बार में कई HTML फ़ाइलों को संभाला जा सके। +- **एरर हैंडलिंग:** `IOException` और `com.aspose.html.exceptions.AssertionFailedException` को कैच करें ताकि गायब रिसोर्सेज दिखाए जा सकें। +- **परफ़ॉर्मेंस:** बड़े साइट के फ्रैगमेंट्स को बदलते समय एक ही `HTMLDocument` इंस्टेंस को पुन: उपयोग करें; लाइब्रेरी पार्स्ड CSS को कैश करती है। + +## निष्कर्ष + +हमने अभी आपको दिखाया है कि कैसे Java में **HTML को markdown में बदलें** जबकि आउटपुट **मूल फ़ॉर्मेटिंग बनाए रखे**। यह छोटा, स्व-निहित स्निपेट पूरे वर्कफ़्लो को दर्शाता है—HTML दस्तावेज़ लोड करने से लेकर `MarkdownConversionOptions` कॉन्फ़िगर करने, रूपांतरण करने, और परिणाम सत्यापित करने तक। Aspose HTML के मजबूत API के साथ, आप अब प्रोग्रामेटिकली **markdown फ़ाइल जेनरेट** कर सकते हैं, चाहे आप एक static‑site जेनरेटर, डॉक्यूमेंटेशन पाइपलाइन, या कंटेंट‑माइग्रेशन टूल बना रहे हों। + +अगला, आप खोज सकते हैं: + +- **html to markdown java** का उपयोग करके वेबसाइट पर बड़े पैमाने पर माइग्रेशन। +- रूपांतरण विकल्पों को समायोजित करके GitHub‑flavored markdown टेबल्स आउटपुट करना। +- इस दृष्टिकोण को CI/CD स्टेप के साथ जोड़ना जो स्रोत HTML बदलने पर आपके डॉक्यूमेंट्स को स्वचालित रूप से अपडेट करता है। + +बिना झिझक प्रयोग करें, और यदि कोई समस्या आती है तो टिप्पणी छोड़ें। हैप्पी कोडिंग! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/hindi/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..4a34ceec2 --- /dev/null +++ b/html/hindi/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,195 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML for Java का उपयोग करके HTML से कस्टम आकार का PDF बनाएं। कुछ + ही चरणों में HTML को PDF में बदलना और PDF पेज साइज सेट करना सीखें। +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: hi +og_description: Aspose के साथ HTML से कस्टम आकार का PDF बनाएं। यह गाइड आपको दिखाता + है कि HTML को PDF में कैसे बदलें, PDF पेज का आकार कैसे बदलें, और PDF पेज का आकार + आसानी से सेट करें। +og_title: PDF कस्टम साइज बनाएं – HTML को PDF में बदलने के लिए त्वरित गाइड +tags: +- aspose +- java +- pdf +- html +title: PDF कस्टम आकार बनाएं – Aspose के साथ HTML को PDF में बदलें +url: /hi/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF कस्टम साइज बनाएं – Aspose के साथ HTML को PDF में बदलें + +क्या आपको कभी HTML फ़ाइल से **PDF कस्टम साइज** बनाने की ज़रूरत पड़ी है? इस ट्यूटोरियल में हम आपको दिखाएंगे कि कैसे **HTML को PDF** में बदलें और Aspose.HTML for Java का उपयोग करके PDF पेज साइज सेट करें। + +यदि आप इनवॉइस, रिपोर्ट या ई‑बुक बना रहे हैं, तो सटीक पेज डाइमेंशन होना बहुत महत्वपूर्ण है—अन्यथा आपका लेआउट ऑफ‑सेंटर दिखेगा या कट जाएगा। + +हम हर कदम को विस्तार से बताएँगे, स्रोत HTML को लोड करने से लेकर मार्जिन समायोजित करने तक, और अंत में तैयार‑उपयोग PDF देंगे। कोई अस्पष्ट संदर्भ नहीं, सिर्फ एक पूर्ण, चलाने योग्य उदाहरण जिसे आप आज ही कॉपी‑पेस्ट कर सकते हैं। + +## आपको क्या चाहिए + +- **Java 17** (या कोई भी नया JDK)। +- **Aspose.HTML for Java** JARs – आप नवीनतम संस्करण Maven रिपॉजिटरी या Aspose वेबसाइट से प्राप्त कर सकते हैं। +- एक साधारण `input.html` फ़ाइल जिसे आप नियंत्रित फ़ोल्डर में रखें। +- आपकी पसंद का IDE या टेक्स्ट एडिटर; मैं आमतौर पर IntelliJ IDEA में कोड करता हूँ, लेकिन Eclipse भी ठीक काम करता है। + +इन पूर्वापेक्षाओं को रखने से आप बीच में “class not found” त्रुटियों का सामना नहीं करेंगे। + +अब, चलिए शुरू करते हैं। + +![PDF कस्टम साइज बनाने का उदाहरण](/images/create-pdf-custom-size.png "स्क्रीनशॉट जिसमें कस्टम पेज साइज और मार्जिन के साथ जनरेट किया गया PDF दिखाया गया है – create pdf custom size") + +## PDF कस्टम साइज बनाना – मुख्य चरण + +नीचे वह पूरा Java प्रोग्राम है जो आपको मिलेगा। इसे `ConvertHtmlToPdfCustomPage.java` नामक फ़ाइल में कॉपी करने में संकोच न करें और Aspose डिपेंडेंसीज़ को प्रोजेक्ट में जोड़ने के बाद इसे चलाएँ। + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### चरण 1 – HTML को PDF में बदलें: दस्तावेज़ लोड करना + +पहला काम हम **HTML लोड** करना है जिसे हम PDF में बदलना चाहते हैं। +`HTMLDocument` फ़ाइल को पढ़ता है, रिलेटिव लिंक को हल करता है, और एक DOM बनाता है जिसे Aspose रेंडर कर सकता है। + +> **यह क्यों महत्वपूर्ण है:** यदि HTML में CSS या इमेजेज़ का रेफ़रेंस है, तो Aspose उन्हें फ़ाइल पाथ के सापेक्ष फ़ेच करेगा। एक एब्सॉल्यूट पाथ (`YOUR_DIRECTORY/input.html`) उपयोग करने से “file not found” जैसी आश्चर्यजनक त्रुटियों से बचा जा सकता है। + +### चरण 2 – PDF पेज साइज बदलें: विकल्प कॉन्फ़िगर करना + +यहाँ हम एक `PdfConversionOptions` ऑब्जेक्ट बनाते हैं। +- `setPageSize(PageSize.A4)` Aspose को मानक A4 डाइमेंशन (210 × 297 mm) उपयोग करने के लिए बताता है। +- `setPageOrientation(...)` पेज को लैंडस्केप में बदलता है यदि आपको आवश्यकता हो। +- `setMargins(new Margin(20, 20, 20, 20))` हर पक्ष पर 20‑पॉइंट मार्जिन देता है। + +आप `PageSize.A4` को `PageSize.LETTER` से बदल सकते हैं या यहाँ तक कि **कस्टम साइज** के लिए `SizeF` ऑब्जेक्ट पास कर सकते हैं, उदाहरण के लिए: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **प्रो टिप:** एक पॉइंट 1/72 इंच के बराबर होता है। यदि आप मिलीमीटर में सोचते हैं, तो पॉइंट पाने के लिए 2.83465 से गुणा करें। + +### चरण 3 – HTML से PDF जनरेट करें: कन्वर्ज़न चलाना + +`Converter.convertHTML` मुख्य कार्य करता है। यह लोड किए गए `HTMLDocument`, आउटपुट पाथ, और हमने अभी कॉन्फ़िगर किए गए विकल्पों को लेता है। + +यदि आप सामग्री के आधार पर **PDF पेज साइज** को डायनामिक रूप से सेट करना चाहते हैं, तो आप इस चरण से पहले आवश्यक डाइमेंशन की गणना कर सकते हैं और `pdfOptions` को उसी अनुसार समायोजित कर सकते हैं। + +### चरण 4 – परिणाम सत्यापित करें + +`System.out.println` लाइन वैकल्पिक है, लेकिन यह कंसोल से प्रोग्राम चलाने पर त्वरित फीडबैक देती है। निष्पादन के बाद, `custom_page.pdf` खोलें – आपको एक A4 पोर्ट्रेट PDF दिखना चाहिए जिसमें समान 20‑पॉइंट मार्जिन हो, बिल्कुल जैसा हमने निर्दिष्ट किया था। + +## HTML को PDF में बदलें – सामान्य विविधताएँ + +### फ़ाइल पाथ के बजाय स्ट्रीम का उपयोग + +कभी-कभी आपके पास वास्तविक फ़ाइल नहीं होती; शायद HTML डेटाबेस या API से आती है। ऐसे में स्ट्रिंग को `ByteArrayInputStream` में रैप करें: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +दूसरा आर्ग्यूमेंट रिलेटिव रिसोर्सेज़ को हल करने के लिए बेस URL है। + +### पेज ओरिएंटेशन बदलना + +यदि आपका रिपोर्ट चौड़ा है, तो लैंडस्केप में स्विच करें: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### मार्जिन का फाइन‑ट्यूनिंग + +मार्जिन फ्लोटिंग‑पॉइंट वैल्यू स्वीकार करता है, इसलिए आप 0.5 pt सेट कर सकते हैं एक बहुत पतली बॉर्डर के लिए: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### बड़े HTML फ़ाइलों को संभालना + +बड़े दस्तावेज़ों के लिए, **मेमोरी‑एफ़िशिएंट स्ट्रीमिंग** सक्षम करने पर विचार करें: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +यह Aspose को मध्यवर्ती डेटा को अस्थायी फ़ाइलों में लिखने को कहता है, बजाय सभी डेटा RAM में रखने के। + +## PDF पेज साइज सेट करना – किनारे के केस और संभावित समस्याएँ + +- **Missing Fonts:** यदि आपका HTML सर्वर पर स्थापित नहीं किए गए कस्टम फ़ॉन्ट का उपयोग करता है, तो PDF डिफ़ॉल्ट फ़ॉन्ट पर फ़ॉल बैक हो जाएगा। फ़ॉन्ट को एम्बेड करने के लिए `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` का उपयोग करें। +- **Image Scaling:** हाई‑रेज़ोल्यूशन इमेजेज़ PDF को बड़ा बना सकते हैं। गुणवत्ता बनाए रखते हुए डाउनस्केल करने के लिए `pdfOptions.setImageResolution(150);` उपयोग करें। +- **CSS Compatibility:** सभी CSS प्रॉपर्टीज़ पूरी तरह सपोर्टेड नहीं हैं। मानक लेआउट तकनीकों का उपयोग करें (flexbox काम करता है, लेकिन grid में कुछ गड़बड़ियां हो सकती हैं)। +- **Path Permissions:** सुनिश्चित करें कि प्रोसेस को `YOUR_DIRECTORY` में लिखने की अनुमति है। अन्यथा, `IOException` फेंका जाएगा। + +## अपेक्षित आउटपुट + +प्रोग्राम चलाने से एक PDF बनता है जो इस तरह दिखता है (संकल्पनात्मक चित्र): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- पेज साइज: **A4** (210 × 297 mm)। +- ओरिएंटेशन: **Portrait**। +- मार्जिन: प्रत्येक पक्ष पर **20 pt**। + +फ़ाइल को किसी भी PDF व्यूअर (Adobe Reader, Chrome, आदि) से खोलें ताकि पुष्टि हो सके। + +## समापन + +अब आप जानते हैं कि Aspose.HTML for Java का उपयोग करके HTML स्रोत से **PDF कस्टम साइज** कैसे बनाते हैं। ट्यूटोरियल ने पूरी पाइपलाइन को कवर किया: **HTML को PDF में बदलना**, **PDF पेज साइज बदलना**, **PDF पेज साइज सेट करना**, और **HTML से PDF जनरेट करना** कस्टम मार्जिन के साथ। + +बिना झिझक प्रयोग करें—`PageSize.LETTER` को लीगल साइज से बदलें, मार्जिन को समायोजित करें, या अपने फ़ॉन्ट एम्बेड करें। आगे आप **वॉटरमार्क जोड़ना**, **PDF एन्क्रिप्ट करना**, या **एकाधिक HTML फ़ाइलों को बैच‑प्रोसेस करना** का अन्वेषण कर सकते हैं। ये सभी विषय वही मूल अवधारणाओं पर आधारित हैं जो हमने अभी कवर किए। + +क्या आपके पास किसी विशेष किनारे के केस के बारे में प्रश्न है? नीचे टिप्पणी छोड़ें, मैं आपकी समस्या हल करने में मदद करूंगा। कोडिंग का आनंद लें! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/hindi/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..bb2441ff2 --- /dev/null +++ b/html/hindi/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: फ़िक्स्ड थ्रेड पूल के साथ HTML से तेज़ी से PDF बनाएं। बैच HTML‑to‑PDF + सीखें और जावा में समानांतर कार्य चलाएँ। +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: hi +og_description: स्थिर थ्रेड पूल के साथ HTML से तेज़ी से PDF बनाएं। जानें कि कैसे HTML + को PDF में बैच करें और जावा में समानांतर कार्य चलाएँ। +og_title: जावा में HTML से PDF बनाएं – समानांतर बैच रूपांतरण गाइड +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: जावा में HTML से PDF बनाएं – समानांतर बैच रूपांतरण गाइड +url: /hi/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML से PDF बनाएं Java में – समानांतर बैच रूपांतरण गाइड + +क्या आपको कभी **HTML से PDF बनाना** पड़ा है लेकिन एक‑थ्रेडेड रूपांतरण को हमेशा के लिए धीरे‑धीरे चलते देख कर फँस गए हैं? आप अकेले नहीं हैं। कई वास्तविक‑दुनिया प्रोजेक्ट्स में हमें दर्जनों HTML रिपोर्टें मिलती हैं जिन्हें दिन के अंत तक PDF में बदलना होता है, और उन्हें एक‑एक करके करना व्यावहारिक नहीं है। + +इसीलिए यह ट्यूटोरियल आपको **स्थिर थ्रेड पूल** का उपयोग करके **HTML को PDF में कैसे बदलें** दिखाता है, जिससे आप **HTML को PDF में बैच** कर सकते हैं और **समानांतर कार्य** बिना किसी परेशानी के चला सकते हैं। अंत तक आपके पास एक पूर्ण, तैयार‑चलाने‑योग्य प्रोग्राम होगा जो HTML फ़ाइलों के फ़ोल्डर को कुछ ही समय में PDF में बदल देगा। + +## आप क्या सीखेंगे + +आने वाले कुछ सेक्शन में हम सभी आवश्यक बातों को कवर करेंगे: + +* Aspose.HTML (वह लाइब्रेरी जो भारी काम करती है) के लिए सटीक Maven/Gradle डिपेंडेंसी। +* क्यों **स्थिर थ्रेड पूल** CPU‑बाउंड रूपांतरण कार्य के लिए सबसे उपयुक्त है। +* कैसे अपने स्रोत फ़ाइलों की सूची बनाएं ताकि प्रक्रिया सैकड़ों दस्तावेज़ों तक स्केल कर सके। +* वह सटीक कोड जिसे आप अपने IDE में पेस्ट करेंगे—कोई गायब इम्पोर्ट नहीं, कोई “TODO” टिप्पणी नहीं। +* त्रुटियों को संभालने, पूल आकार को ट्यून करने, और आउटपुट को सत्यापित करने के टिप्स। + +Aspose.HTML का कोई पूर्व ज्ञान आवश्यक नहीं है, बस एक बुनियादी Java सेटअप और प्रयोग करने की इच्छा चाहिए। चलिए शुरू करते हैं। + +--- + +![एक स्थिर थ्रेड पूल द्वारा कई HTML फ़ाइलों को समानांतर में PDF में बदलते हुए आरेख – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*छवि वैकल्पिक पाठ: create pdf from html – समानांतर रूपांतरण आरेख* + +## चरण 1: अपने प्रोजेक्ट को तैयार करें और Aspose.HTML जोड़ें + +सबसे पहले—आपके प्रोजेक्ट को Aspose.HTML लाइब्रेरी की जरूरत है। यदि आप Maven उपयोग कर रहे हैं, तो इसे अपने `pom.xml` में डालें: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle के लिए, यह बस इतना ही है: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Aspose.HTML क्यों? यह एक व्यावसायिक लाइब्रेरी है, लेकिन यह एक **convert html to pdf** API प्रदान करती है जो CSS, JavaScript, और जटिल लेआउट को बॉक्स से बाहर संभालती है। यदि आप कोई ओपन‑सोर्स विकल्प पसंद करते हैं तो बाद में `Converter.convertHTML` कॉल को बदल सकते हैं, लेकिन थ्रेडिंग लॉजिक वही रहेगा। + +> **Pro tip:** संस्करण संख्या को आधिकारिक रिलीज़ नोट्स के साथ सिंक में रखें; नए संस्करण अक्सर रेंडरिंग गति को सुधारते हैं, जो कई कार्यों को समानांतर चलाते समय महत्वपूर्ण होता है। + +## चरण 2: समानांतर रूपांतरण के लिए स्थिर थ्रेड पूल बनाएं + +जब आपके पास फ़ाइलों का एक बैच हो, तो अनियंत्रित संख्या में थ्रेड्स स्पॉन नहीं करना चाहते—आपका OS थ्रैशिंग शुरू कर देगा। एक **स्थिर थ्रेड पूल** आपको पूर्वानुमेय समकालिकता देता है जबकि मेमोरी उपयोग को नियंत्रण में रखता है। + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +चार क्यों? एक सामान्य 8‑कोर मशीन पर, आधे कोर I/O और OS के लिए मुक्त रह सकते हैं। आप प्रयोग कर सकते हैं: `Runtime.getRuntime().availableProcessors()` कोर काउंट देता है, और एक सामान्य नियम `cores / 2` है। याद रखें, प्रत्येक रूपांतरण CPU‑गहन होता है, इसलिए कोर से अधिक थ्रेड्स आमतौर पर प्रदर्शन को घटाते हैं। + +## चरण 3: उन HTML फ़ाइलों को इकट्ठा करें जिन्हें आप बदलना चाहते हैं + +पज़ल का अगला हिस्सा **बैच html to pdf** सूची है। आप एरे को हार्ड‑कोड कर सकते हैं (जैसे उदाहरण में) या किसी डायरेक्टरी को स्कैन कर सकते हैं। यहाँ एक लचीला संस्करण है जो किसी फ़ोल्डर से सभी `.html` फ़ाइलें पढ़ता है: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +यह तरीका आपको नई फ़ाइलें फ़ोल्डर में ड्रॉप करने की अनुमति देता है और प्रोग्राम उन्हें स्वतः उठाएगा—रात‑भर के बैच जॉब के लिए एकदम उपयुक्त। + +## चरण 4: प्रत्येक फ़ाइल के लिए एक रूपांतरण कार्य सबमिट करें (समानांतर कार्य चलाएँ) + +अब मज़े का हिस्सा: प्रत्येक फ़ाइल एक **Runnable** (या `Callable`) बन जाती है जिसे पूल निष्पादित करता है। नीचे दिया गया कोड मूल उदाहरण को दर्शाता है लेकिन त्रुटि संभालना और एक छोटा लॉग संदेश जोड़ता है। + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**रूपांतरण को try‑catch में क्यों रखें?** जब आप **समानांतर कार्य चलाते** हैं, तो एक ही खराब HTML फ़ाइल पूरी एक्सीक्यूटर को नीचे गिरा सकती है। स्थानीय रूप से अपवाद पकड़कर हम सुनिश्चित करते हैं कि बैच का बाकी हिस्सा बिना रुकावट चले। + +## चरण 5: एक्सीक्यूटर को शट डाउन करें और पूर्णता की प्रतीक्षा करें + +सभी जॉब सबमिट करने के बाद, आपको पूल को नई कार्य स्वीकार न करने के लिए बताना होगा और फिर सब कुछ समाप्त होने तक इंतजार करना होगा। यह सुनिश्चित करता है कि JVM समय से पहले बाहर न निकले। + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +यदि आपके पास हजारों फ़ाइलों वाला बड़ा फ़ोल्डर है तो आप टाइमआउट बढ़ा सकते हैं या प्रोग्रेस मॉनिटर लागू कर सकते हैं। मुख्य बात है **सौम्य शटडाउन**—यह उत्पादन‑तैयार कोड की पहचान है। + +## पूर्ण कार्यशील उदाहरण + +सब कुछ मिलाकर, यहाँ एक स्व-समाहित क्लास है जिसे आप `src/main/java` में कॉपी‑पेस्ट करके चला सकते हैं: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**अपेक्षित आउटपुट** (उदाहरण): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +यदि आप उत्पन्न `.pdf` फ़ाइलें खोलते हैं तो आपको मूल HTML लेआउट संरक्षित दिखेगा—फ़ॉन्ट, टेबल, और यहाँ तक कि बेसिक JavaScript‑ड्रिवेन कंटेंट भी सही ढंग से रेंडर होगा। + +## सामान्य प्रश्न एवं किनारे के मामले + +| प्रश्न | उत्तर | +|----------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/conversion-html-to-various-image-formats/_index.md b/html/hindi/java/conversion-html-to-various-image-formats/_index.md index 80e69492a..94ef152b2 100644 --- a/html/hindi/java/conversion-html-to-various-image-formats/_index.md +++ b/html/hindi/java/conversion-html-to-various-image-formats/_index.md @@ -113,8 +113,11 @@ Aspose.HTML के साथ Java में HTML को PNG इमेज मे ### [HTML को TIFF में बदलना](./convert-html-to-tiff/) Aspose.HTML for Java का उपयोग करके HTML को TIFF में आसानी से कैसे बदलें सीखें। प्रभावी दस्तावेज़ हैंडलिंग के लिए चरण‑दर‑चरण गाइड। -### [HTML को WebP में बदलना](./convert-html-to-webp-complete-java-guide-with-aspose-html/) -Aspose.HTML for Java का उपयोग करके HTML को WebP इमेज में बदलने के चरण‑दर‑चरण निर्देश। +### [Java में SVG से मल्टीपेज TIFF बनाना – चरण‑दर‑चरण गाइड](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Aspose.HTML for Java का उपयोग करके SVG फ़ाइलों से कई पृष्ठों वाला TIFF इमेज कैसे बनाएं, इस गाइड में सीखें। + +### [HTML को WebP में बदलना](./convert-html-to-webp-complete-java-guide/) +Aspose.HTML for Java का उपयोग करके HTML को WebP इमेज में बदलने के चरण‑दर‑... ## अक्सर पूछे जाने वाले प्रश्न diff --git a/html/hindi/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/hindi/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..b5037f48b --- /dev/null +++ b/html/hindi/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,226 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML के साथ HTML को जल्दी से WebP में बदलें। सीखें कि कैसे HTML + को WebP के रूप में सहेजें, HTML को WebP के रूप में रेंडर करें, और कुछ ही चरणों में + HTML से WebP उत्पन्न करें। +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: hi +og_description: Aspose.HTML के साथ HTML को जल्दी से WebP में बदलें। यह ट्यूटोरियल + दिखाता है कि कैसे HTML को WebP के रूप में रेंडर किया जाए और Java में HTML से WebP + उत्पन्न किया जाए। +og_title: HTML को WebP में बदलें – पूर्ण जावा गाइड +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML को WebP में बदलें – पूर्ण जावा गाइड +url: /hi/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML को WebP में बदलें – पूर्ण Java गाइड + +क्या आपको कभी **HTML को WebP में बदलने** की ज़रूरत पड़ी है लेकिन यह नहीं पता था कि कौन‑सी लाइब्रेरी बिना किसी झंझट के यह काम कर सकेगी? आप अकेले नहीं हैं। कई डेवलपर्स को यह समस्या आती है जब वे डायनामिक पेजों से उत्पन्न हल्की छवियों को सर्व करने की कोशिश करते हैं। अच्छी ख़बर? Aspose.HTML for Java के साथ आप *HTML को WebP के रूप में सहेज* सकते हैं एक ही मेथड कॉल में, और पूरी प्रक्रिया मक्खन की तरह स्मूद है। + +इस ट्यूटोरियल में हम वह सब कवर करेंगे जो आपको जानना आवश्यक है: Aspose.HTML डिपेंडेंसी सेटअप से लेकर कॉम्प्रेशन सेटिंग्स को ट्यून करने तक, और अंत में HTML दस्तावेज़ को WebP फ़ाइल के रूप में रेंडर करना जिसे आप वेब पर सर्व कर सकते हैं। अंत तक आप **HTML को WebP के रूप में रेंडर** कर पाएँगे, **HTML से WebP जेनरेट** कर पाएँगे, और प्रत्येक कॉन्फ़िगरेशन विकल्प के “क्यों” को समझ पाएँगे। कोई बाहरी स्क्रिप्ट नहीं, कोई कमांड‑लाइन जिम्नास्टिक नहीं—सिर्फ़ साफ़ Java कोड। + +## Prerequisites + +शुरू करने से पहले सुनिश्चित करें कि आपके पास निम्नलिखित हैं: + +- Java 8 या उससे नया संस्करण इंस्टॉल हो (लाइब्रेरी JDK 8+ को सपोर्ट करती है)। +- Maven या Gradle डिपेंडेंसी मैनेजमेंट के लिए (हम Maven स्निपेट दिखाएँगे)। +- एक साधारण HTML फ़ाइल (`input.html`) जिसे आप WebP इमेज में बदलना चाहते हैं। +- आपका पसंदीदा IDE या टेक्स्ट एडिटर—IntelliJ IDEA बहुत अच्छा काम करता है, लेकिन कोई भी चलेगा। + +सब तैयार है? बढ़िया, चलिए शुरू करते हैं। + +## Step 1: Add Aspose.HTML to Your Project + +सबसे पहले, आपको अपने क्लासपाथ में Aspose.HTML लाइब्रेरी जोड़नी होगी। यदि आप Maven उपयोग कर रहे हैं, तो इसे अपने `pom.xml` में डालें: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle के लिए, यह इस प्रकार दिखता है: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +यह चरण इतना महत्वपूर्ण क्यों है? बिना JAR के, `HTMLDocument`, `Converter`, या `WebpConversionOptions` क्लासेज़ मौजूद नहीं होंगी, और कंपाइलर `ClassNotFoundException` फेंकेगा। डिपेंडेंसी जोड़ने से WebP एन्कोडिंग के लिए आवश्यक नेटिव बाइनरी भी शामिल हो जाते हैं, इसलिए आपको बाहरी DLLs या `.so` फ़ाइलों की तलाश नहीं करनी पड़ेगी। + +> **Pro tip:** अपनी डिपेंडेंसीज़ को हमेशा अपडेट रखें। नए Aspose रिलीज़ अक्सर WebP कॉम्प्रेशन एल्गोरिदम को बेहतर बनाते हैं और नए HTML5 फीचर्स का समर्थन जोड़ते हैं। + +## Step 2: Load the Source HTML Document + +अब लाइब्रेरी तैयार है, हम वह HTML लोड कर सकते हैं जिसे आप बदलना चाहते हैं। `HTMLDocument` क्लास फ़ाइल को पार्स करता है और एक DOM बनाता है, जिसे बाद में कन्वर्टर रेंडर करेगा। + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +ध्यान दें टिप्पणी “Load the source HTML document” – यह याद दिलाता है कि आप कन्वर्ज़न से पहले CSS या JavaScript भी इन्जेक्ट कर सकते हैं यदि आपका पेज डायनामिक स्टाइलिंग पर निर्भर करता है। यदि आप इस चरण को छोड़ देते हैं, तो कन्वर्टर के पास रेंडर करने के लिए कुछ नहीं रहेगा, और परिणामस्वरूप एक खाली इमेज बनेगी। + +## Step 3: Configure WebP Conversion Options + +Aspose.HTML आपको आउटपुट पर सूक्ष्म नियंत्रण देता है। अधिकांश मामलों में, **lossy** WebP जिसमें क्वालिटी सेटिंग लगभग 85 हो, दृश्य गुणवत्ता और फ़ाइल आकार के बीच अच्छा संतुलन बनाता है। + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +लॉसी क्यों चुनें? WebP का लॉसी मोड प्रेडिक्टिव कोडिंग का उपयोग करता है, जिससे फ़ाइलें PNG की तुलना में 30‑50 % तक छोटी हो जाती हैं जबकि अधिकांश दृश्य विवरण बरकरार रहता है। यदि आपको पिक्सेल‑परफ़ेक्ट परिणाम चाहिए (जैसे लोगो के लिए), तो `CompressionMode` को `Lossless` में बदलें और `quality` को 100 तक बढ़ाएँ। + +## Step 4: Convert and Save the WebP Image + +डॉक्यूमेंट और विकल्प तैयार होने के बाद, कन्वर्ज़न स्वयं एक‑लाइनर है। स्टैटिक `Converter.convertHTML` मेथड सभी भारी काम करता है: यह DOM को बिटमैप पर रेंडर करता है, उसे WebP में एन्कोड करता है, और फ़ाइल को डिस्क पर लिख देता है। + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +बस इतना ही! प्रोग्राम समाप्त होने के बाद, आप `output.webp` को अपने स्रोत HTML के बगल में पाएँगे। अब आप इसे सीधे वेब सर्वर से सर्व कर सकते हैं, `` एलिमेंट में एम्बेड कर सकते हैं, या किसी भी ऐसे कॉन्टेक्स्ट में उपयोग कर सकते हैं जो WebP को सपोर्ट करता है। + +## Step 5: Verify the Result (Optional but Recommended) + +कन्वर्ज़न सफल रहा और इमेज अपेक्षित दिख रही है, यह दोबारा चेक करना हमेशा अच्छा विचार है। आप WebP फ़ाइल को Chrome, Firefox, या किसी भी इमेज व्यूअर में खोल सकते हैं जो इस फ़ॉर्मेट को सपोर्ट करता है। एक तेज़ प्रोग्रामेटिक चेक के लिए, आप फ़ाइल का साइज और डाइमेंशन पढ़ सकते हैं: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +यदि फ़ाइल अनपेक्षित रूप से बड़ी है या डाइमेंशन गलत हैं, तो **Step 3** पर वापस जाएँ और `quality` या स्रोत HTML के viewport सेटिंग्स को ट्यून करें। याद रखें, WebP रूट एलिमेंट के CSS `width`/`height` को सम्मानित करता है, इसलिए यदि `` टैग गायब है तो आश्चर्यजनक परिणाम मिल सकते हैं। + +## Full Working Example + +सब कुछ मिलाकर, यहाँ पूर्ण, तैयार‑चलाने योग्य Java क्लास है: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +इस फ़ाइल को `HtmlToWebp.java` के रूप में सेव करें, `YOUR_DIRECTORY` को वास्तविक फ़ोल्डर पाथ से बदलें, `javac` से कंपाइल करें, और `java HtmlToWebp` से चलाएँ। आपको कंसोल पर फ़ाइल साइज और डाइमेंशन की पुष्टि मिलनी चाहिए, उसके बाद अंतिम सफलता संदेश दिखेगा। + +![HTML को WebP में बदलने का उदाहरण](/images/convert-html-to-webp.png "HTML से उत्पन्न WebP छवि का स्क्रीनशॉट – HTML को WebP में बदलें") + +## Common Questions & Edge Cases + +### What if my HTML references external resources (CSS, images)? + +Aspose.HTML `input.html` के स्थान के आधार पर रिलेटिव URL को ऑटोमैटिकली रिजॉल्व कर लेता है। बस यह सुनिश्चित करें कि संसाधन फ़ाइल सिस्टम या वेब सर्वर से पहुँच योग्य हों। यदि आपको कस्टम बेस URL इन्जेक्ट करना है, तो `HTMLDocument` के ओवरलोडेड कंस्ट्रक्टर का उपयोग करें जो `URI` बेस स्वीकार करता है। + +### Can I generate multiple WebP images from the same HTML (e.g., different viewport sizes)? + +बिल्कुल। कन्वर्ज़न लॉजिक को लूप में रखें, प्रत्येक कॉल से पहले `webpOptions.setWidth()` और `setHeight()` को समायोजित करें, और प्रत्येक आउटपुट को एक अनोखा फ़ाइलनाम दें। यह रिस्पॉन्सिव डिज़ाइन के लिए उपयोगी है जहाँ आप मोबाइल और डेस्कटॉप के लिए अलग‑अलग इमेज साइज सर्व करते हैं। + +### How do I switch to lossless compression? + +लाइन को बदलें: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +से: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless पिक्सेल‑परफ़ेक्ट फ़िडेलिटी गारंटी देता है लेकिन फ़ाइलें बड़ी बनती हैं—इसे केवल आवश्यक होने पर ही उपयोग करें। + +### Does this work on Linux/macOS? + +हाँ। Aspose.HTML JAR में Windows, Linux, और macOS के लिए नेटिव बाइनरी शामिल हैं, इसलिए वही Java कोड हर जगह चलता है। बस सुनिश्चित करें कि आपके पास उपयुक्त JRE इंस्टॉल हो। + +## Conclusion + +आपने अभी **HTML को WebP में बदलना** Aspose.HTML for Java का उपयोग करके सीख लिया है, जिसमें डिपेंडेंसी सेटअप से लेकर कॉम्प्रेशन ट्यूनिंग और परिणाम की वैरिफिकेशन तक सब कुछ शामिल है। इस ज्ञान के साथ आप **HTML को WebP के रूप में सहेज** सकते हैं, **HTML को WebP में रेंडर** कर सकते हैं, और **HTML से WebP जेनरेट** कर सकते हैं—डायनामिक इमेज पाइपलाइन, ईमेल न्यूज़लेटर, या किसी भी ऐसे परिदृश्य के लिए परफेक्ट जहाँ हल्की विज़ुअल्स मायने रखती हैं। + +अब क्या अगला कदम? विभिन्न `quality` वैल्यूज़ के साथ प्रयोग करें, `Lossless` मोड एक्सप्लोर करें, या इस कन्वर्टर को एक Spring Boot REST एंडपॉइंट में इंटीग्रेट करें ताकि आपका वेब सर्विस ऑन‑डिमांड WebP इमेज रिटर्न कर सके। आप फ़ोल्डर में मौजूद कई HTML फ़ाइलों को बैच‑प्रोसेस करने या इसे हेडलेस Chrome के साथ मिलाकर SVG‑to‑WebP कन्वर्ज़न करने पर भी विचार कर सकते हैं। + +क्या आपके पास **HTML को अन्य भाषाओं में बदलने** के बारे में और सवाल हैं, या किसी विशिष्ट एज केस में मदद चाहिए? नीचे कमेंट करें, और हैप्पी कोडिंग! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/hindi/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..fc58088e0 --- /dev/null +++ b/html/hindi/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML के साथ जावा में SVG से मल्टीपेज TIFF बनाएं। सीखें कि SVG + को TIFF में कैसे बदलें, जावा में SVG दस्तावेज़ लोड करें, और मल्टीपेज TIFF फ़ाइलें + बनाएं। +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: hi +og_description: जावा में SVG से मल्टीपेज TIFF बनाएं। यह ट्यूटोरियल दिखाता है कि कैसे + SVG दस्तावेज़ लोड करें, TIFF विकल्प कॉन्फ़िगर करें, और एक लॉसलेस मल्टीपेज TIFF उत्पन्न + करें। +og_title: जावा में SVG से मल्टीपेज TIFF बनाएं – पूर्ण गाइड +tags: +- Java +- Aspose.HTML +- Image Conversion +title: जावा में SVG से मल्टीपेज TIFF बनाएं – चरण‑दर‑चरण मार्गदर्शिका +url: /hi/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# जावा में SVG से मल्टीपेज TIFF बनाएं – चरण‑दर‑चरण गाइड + +क्या आपको **SVG से मल्टीपेज TIFF** बनाना था लेकिन शुरुआत नहीं पता थी? आप अकेले नहीं हैं—कई डेवलपर्स को वही समस्या आती है जब उन्हें कई पृष्ठों वाला प्रिंटेबल, लॉस‑लेस दस्तावेज़ चाहिए होता है। इस गाइड में हम एक पूर्ण, तैयार‑चलाने‑योग्य समाधान दिखाएंगे जो **SVG को TIFF में कैसे बदलें**, जावा में SVG दस्तावेज़ को लोड करें, और आउटपुट को इस तरह कॉन्फ़िगर करें कि आप **मल्टीपेज TIFF** फ़ाइलें LZW कम्प्रेशन के साथ बना सकें। + +हम Aspose.HTML लाइब्रेरी सेटअप से लेकर बड़े SVG एसेट्स जैसे किनारे के मामलों को संभालने तक सब कुछ कवर करेंगे। ट्यूटोरियल के अंत तक आपके पास एक सिंगल जावा क्लास होगा जिसे आप किसी भी प्रोजेक्ट में डाल सकते हैं और तुरंत मल्टी‑पेज TIFF जनरेट कर सकते हैं। + +## आपको क्या चाहिए + +- **Java Development Kit (JDK) 8+** – कोड मानक जावा API का उपयोग करता है। +- **Aspose.HTML for Java** (संस्करण 23.5 या बाद का) – यह एकमात्र थर्ड‑पार्टी डिपेंडेंसी है। +- एक **सैंपल SVG फ़ाइल** (कोई भी वेक्टर ग्राफ़िक चलेगा; हम इसे `input.svg` कहेंगे)। +- आपका पसंदीदा IDE या एक साधारण टेक्स्ट एडिटर और टर्मिनल। + +कोई अतिरिक्त बिल्ड टूल्स की जरूरत नहीं है; उदाहरण `javac` से कंपाइल होता है और `java` से चलता है। यदि आप Maven या Gradle पसंद करते हैं, तो बस Aspose.HTML JAR को अपने प्रोजेक्ट की क्लासपाथ में जोड़ दें। + +![Create multipage tiff example](create-multipage-tiff.png){alt="मल्टीपेज TIFF आउटपुट का उदाहरण"} + +## चरण 1 – SVG दस्तावेज़ लोड करें (load svg document java) + +सबसे पहले हमें SVG को एक `HTMLDocument` ऑब्जेक्ट में पढ़ना है। Aspose.HTML SVG फ़ाइलों को HTML दस्तावेज़ की तरह ट्रीट करता है, जिससे हमें कन्वर्ज़न के लिए एकीकृत API मिलती है। + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**क्यों महत्वपूर्ण है:** SVG को `HTMLDocument` के रूप में लोड करने से हमें पूरी रेंडरिंग इंजन तक पहुंच मिलती है, जिससे सभी स्टाइल, फ़ॉन्ट और एम्बेडेड इमेज़ सही ढंग से व्याख्यायित होते हैं। इस चरण को छोड़कर सीधे बाइट्स को कन्वर्टर में फीड करने से अक्सर एलिमेंट्स गायब या रंग गलत हो जाते हैं। + +## चरण 2 – TIFF विकल्प कॉन्फ़िगर करें (how to create multipage tiff) + +अब हम `TiffConversionOptions` सेट करते हैं। यह ऑब्जेक्ट पेज लेआउट से लेकर कम्प्रेशन तक सब कुछ नियंत्रित करता है। सच्चे मल्टीपेज आउटपुट के लिए हम `setMultipage(true)` को एनेबल करते हैं, और **LZW** कम्प्रेशन चुनते हैं क्योंकि यह लॉसलेस है और व्यापक रूप से सपोर्टेड है। + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**क्यों महत्वपूर्ण है:** यदि आप `setMultipage(true)` को छोड़ देते हैं, तो लाइब्रेरी एक सिंगल‑पेज TIFF जनरेट करेगी और SVG से निकाले गए अतिरिक्त पेजों को डिस्कार्ड कर देगी (उदाहरण के लिए, जब SVG में कई `` रूट एलिमेंट हों)। LZW फ़ाइल आकार को उचित रखता है बिना इमेज़ फ़िडेलिटी खोए—आर्काइव या प्रिंटिंग पाइपलाइन के लिए परफेक्ट। + +## चरण 3 – कन्वर्ज़न करें (how to convert svg to tiff) + +अब असली काम होता है। स्टैटिक `Converter.convertSVG` मेथड लोडेड डॉक्यूमेंट, डेस्टिनेशन पाथ, और हमने अभी जो विकल्प परिभाषित किए हैं, उन्हें लेता है। + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**क्यों महत्वपूर्ण है:** स्टैटिक `convertSVG` कॉल का उपयोग सबसे सीधा तरीका है कन्वर्ज़न ट्रिगर करने का। बैकएंड में, Aspose.HTML वेक्टर डेटा को डिफ़ॉल्ट 96 dpi पर रास्टराइज़ करता है; यदि उच्च क्वालिटी चाहिए तो आप `tiffOptions.setResolution(...)` से DPI समायोजित कर सकते हैं। + +## चरण 4 – परिणाम की पुष्टि करें + +कन्वर्ज़न समाप्त होने के बाद, यह अच्छा रहेगा कि आप फ़ाइल की मौजूदगी और अपेक्षित पेजों की संख्या की जाँच करें। कोई भी इमेज़ व्यूअर जो मल्टीपेज TIFF सपोर्ट करता हो (जैसे IrfanView, XnView, या यहाँ तक कि जावा का `ImageIO`) से जल्दी से चेक किया जा सकता है। + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +प्रोग्राम चलाएँ: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +आपको कंसोल पर सफलता का संदेश दिखना चाहिए, और `output.tiff` खोलने पर प्रत्येक SVG रूट एलिमेंट के लिए एक पेज (या यदि SVG में केवल एक कैनवास है तो एक ही पेज) दिखेगा। + +## सामान्य समस्याएँ एवं प्रो टिप्स + +| समस्या | क्यों होता है | समाधान | +|-------|----------------|---------------| +| **फ़ॉन्ट्स गायब** | SVG सिस्टम फ़ॉन्ट्स को रेफ़र करता है जो सर्वर पर इंस्टॉल नहीं हैं। | फ़ॉन्ट्स को SVG में एम्बेड करें या Aspose.HTML में `FontSettings` का उपयोग करके कस्टम फ़ॉन्ट फ़ोल्डर प्रदान करें। | +| **फ़ाइल आकार बड़ा** | हाई‑रिज़ॉल्यूशन रास्टराइज़ेशन से TIFF का आकार बढ़ जाता है। | DPI को `tiffOptions.setResolution(150)` से कम करें या डिबगिंग के लिए `Compression.NONE` पर स्विच करें। | +| **मल्टीपेज नहीं बन रहा** | SVG में केवल एक `` एलिमेंट है। | स्रोत को अलग‑अलग SVG फ़ाइलों में विभाजित करें या प्रत्येक लॉजिकल पेज को `` टैग में रैप करें फिर कन्वर्ट करें। | +| **Unsupported SVG features** | कुछ फ़िल्टर या एनीमेशन रेंडर नहीं होते। | SVG को सरल बनाएं या Inkscape जैसे टूल से प्री‑प्रोसेस करके फ़िल्टर को फ्लैट करें। | + +**प्रो टिप:** यदि आपको विशिष्ट पेज क्रम चाहिए, तो अपनी SVG फ़ाइलों का नाम `page1.svg`, `page2.svg` आदि रखें, और उन्हें लूप में प्रोसेस करें, प्रत्येक कन्वर्ज़न परिणाम को उसी TIFF में `tiffOptions.setMultipage(true)` के साथ जोड़ते रहें। + +## पूर्ण कार्यशील उदाहरण + +नीचे पूरा, स्व-निहित जावा क्लास दिया गया है जिसे आप `SvgToMultipageTiff.java` नाम की फ़ाइल में कॉपी‑पेस्ट कर सकते हैं। इसमें इम्पोर्ट स्टेटमेंट्स, कमेंट्स, और प्रोडक्शन उपयोग के लिए एरर हैंडलिंग शामिल है। + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +कोड चलाने पर एक TIFF बनता है जहाँ प्रत्येक SVG रूट एक अलग पेज बन जाता है—बिल्कुल वही जो आपको **मल्टीपेज TIFF** फ़ाइलें प्रिंटिंग या आर्काइविंग के लिए चाहिए। + +## निष्कर्ष + +हमने दिखाया कि जावा और Aspose.HTML का उपयोग करके **SVG से मल्टीपेज TIFF** कैसे बनाते हैं। ट्यूटोरियल ने SVG लोड करना (`load svg document java`), कन्वर्ज़न विकल्प कॉन्फ़िगर करना, कन्वर्ज़न करना (`how to convert svg to tiff`), और आउटपुट की पुष्टि करना कवर किया। पूर्ण सोर्स कोड के साथ, आप इस समाधान को सैकड़ों SVG को बैच‑प्रोसेस करने, DPI सेटिंग्स को ट्यून करने, या बड़े डॉक्यूमेंट‑जनरेशन पाइपलाइन में इंटीग्रेट करने के लिए अनुकूलित कर सकते हैं। + +अगली चुनौती के लिए तैयार हैं? एक फ़ोल्डर के सभी SVG को एक ही मल्टीपेज TIFF में बदलें, विभिन्न कम्प्रेशन स्कीम्स के साथ प्रयोग करें, या `TiffConversionOptions` को `PdfConversionOptions` से बदलकर PDF आउटपुट देखें। वही सिद्धांत लागू होते हैं, इसलिए आप इस पैटर्न को अन्य फॉर्मैट्स में भी आसानी से एक्सटेंड कर पाएँगे। + +कोई सवाल या अजीब SVG एज़ केस मिला? नीचे कमेंट करें, और हैप्पी कोडिंग! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/html5-canvas-rendering/_index.md b/html/hindi/java/html5-canvas-rendering/_index.md index de1ea656e..787f7a2e9 100644 --- a/html/hindi/java/html5-canvas-rendering/_index.md +++ b/html/hindi/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ url: /hi/java/html5-canvas-rendering/ Java के लिए Aspose.HTML के साथ HTML5 कैनवस बनाएँ और रेंडर करें। इस शक्तिशाली Java लाइब्रेरी का उपयोग करके चरण-दर-चरण सीखें कि कैसे ड्रा करें, स्टाइल करें और PDF में निर्यात करें। ### [जावा के लिए Aspose.HTML के साथ HTML5 कैनवस में महारत हासिल करना](./html5-canvas/) जानें कि Aspose.HTML for Java का उपयोग करके HTML5 कैनवास को PDF में कैसे बनाया और परिवर्तित किया जाए। यह गाइड उन डेवलपर्स के लिए एकदम सही है जो अपने वेब प्रोजेक्ट को बेहतर बनाना चाहते हैं। +### [Aspose.HTML के साथ iPhone का अनुकरण – पूर्ण गाइड](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Aspose.HTML का उपयोग करके iPhone का अनुकरण करने की पूरी गाइड, जिसमें सेटअप, रेंडरिंग और परीक्षण शामिल हैं। + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hindi/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/hindi/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..bb6a33405 --- /dev/null +++ b/html/hindi/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML का उपयोग करके जावा में iPhone को एमीुलेट करना सीखें। सटीक + मोबाइल रेंडरिंग के लिए कस्टम यूज़र एजेंट सेट करने और डिवाइस पिक्सेल रेशियो सेट करने + के चरण शामिल हैं। +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: hi +og_description: जावा में iPhone को कैसे एमुलेट करें? यह ट्यूटोरियल दिखाता है कि Aspose.HTML + का उपयोग करके कस्टम यूज़र एजेंट और डिवाइस पिक्सेल रेशियो कैसे सेट करें, जिससे पिक्सेल‑परफेक्ट + मोबाइल पेजेज़ मिलें। +og_title: iPhone को कैसे एमुलेट करें – चरण-दर-चरण Aspose.HTML गाइड +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: iPhone को कैसे एमुलेट करें – Aspose.HTML के साथ पूर्ण गाइड +url: /hi/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# iPhone को एम्यूलेट कैसे करें – Aspose.HTML के साथ पूर्ण गाइड + +क्या आपने कभी स्थानीय रूप से वेब पेज का परीक्षण करते समय **iPhone को एम्यूलेट करने** के बारे में सोचा है? शायद आप एक रिस्पॉन्सिव लेआउट को डिबग कर रहे हैं और डेस्कटॉप ब्राउज़र काम नहीं कर रहा। अच्छी खबर यह है कि आपको वास्तविक डिवाइस की ज़रूरत नहीं है—Aspose.HTML का `DocumentSandbox` आपको कुछ Java लाइनों के साथ iPhone की स्क्रीन, यूज़र‑एजेंट, और डिवाइस‑पिक्सेल‑रैशियो (DPR) की नकल करने देता है। + +इस ट्यूटोरियल में हम **custom user agent** सेट करने, **device pixel ratio** कॉन्फ़िगर करने, और यह सत्यापित करने के सटीक चरणों से गुजरेंगे कि सब कुछ अपेक्षित रूप से काम कर रहा है। अंत तक आपके पास एक पुन: उपयोग योग्य सैंडबॉक्स होगा जो पेज को iPhone 8 की तरह रेंडर करता है, और आप समझेंगे कि प्रत्येक सेटिंग क्यों महत्वपूर्ण है। + +## आप क्या प्राप्त करेंगे + +- एक `Screen` ऑब्जेक्ट बनाएं जो iPhone के आयाम और DPR को प्रतिबिंबित करता है। +- एक **custom user agent** स्ट्रिंग लागू करें ताकि सर्वर समझें कि अनुरोध iOS पर Safari से आया है। +- एक `DocumentSandbox` बनाएं जो स्क्रीन और यूज़र‑एजेंट को जोड़ता है। +- सैंडबॉक्स के भीतर एक `HTMLDocument` चलाएँ और कंसोल आउटपुट देखें जो कॉन्फ़िगरेशन की पुष्टि करता है। + +Aspose.HTML के अलावा कोई बाहरी लाइब्रेरी आवश्यक नहीं है, और कोड किसी भी Java 17+ पर्यावरण पर चलता है। + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## iPhone को Aspose.HTML Sandbox के साथ एम्यूलेट कैसे करें + +पहली चीज़ जो हमें चाहिए वह है एक `Screen` जो iPhone के भौतिक आयाम *और* उसकी पिक्सेल घनत्व को दर्शाता है। यह **iPhone को सटीक रूप से एम्यूलेट करने** का मूल है। + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**यह क्यों महत्वपूर्ण है:** +- चौड़ाई = 375 px और ऊँचाई = 667 px वह CSS पिक्सेल आयाम हैं जो आप Chrome DevTools में iPhone 8 चुनने पर देखेंगे। +- DPR को 2 सेट करने से रेंडरिंग इंजन प्रत्येक CSS पिक्सेल को दो फिजिकल पिक्सेल मानता है, जिससे आपको स्पष्ट टेक्स्ट और इमेज मिलती हैं—बिल्कुल वही जो वास्तविक डिवाइस करता है। + +> *Pro tip:* यदि आपको एक नया iPhone (जैसे iPhone 13) एम्यूलेट करना है, तो केवल संख्याएँ 390 × 844 और DPR = 3 में बदल दें। + +## कस्टम यूज़र एजेंट सेट करना (set custom user agent) + +अब हमें **custom user agent** सेट करना है ताकि सर्वर मोबाइल‑विशिष्ट HTML/CSS सर्व करे। इसके बिना कई साइटें अभी भी समझेंगी कि आप डेस्कटॉप पर हैं। + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**यह कैसे काम करता है:** +- `User-Agent` हेडर वह हैंडशेक है जो ब्राउज़र अपने आप को घोषित करने के लिए उपयोग करते हैं। +- iOS 16 पर Safari द्वारा भेजी गई सटीक स्ट्रिंग प्रदान करके, आप सुनिश्चित करते हैं कि सर्वर मोबाइल‑ऑप्टिमाइज़्ड एसेट्स (जैसे रिस्पॉन्सिव इमेज, एडैप्टिव स्क्रिप्ट्स, आदि) लौटाए। + +यदि आपको किसी अन्य डिवाइस के लिए **how to set user-agent** की ज़रूरत पड़े, तो बस स्ट्रिंग को उपयुक्त मान (Google Chrome, Firefox, या कस्टम बॉट) से बदल दें। + +## डिवाइस पिक्सेल रैशियो कॉन्फ़िगर करना (set device pixel ratio) + +अब हम वास्तव में सैंडबॉक्स के भीतर **device pixel ratio** सेट करते हैं। यह वह चरण है जो सीधे “**how to set dpr**” का उत्तर देता है। + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**व्याख्या:** +- `Builder` पैटर्न आपको स्क्रीन (जो DPR रखता है) और यूज़र‑एजेंट दोनों को सहजता से जोड़ने देता है। +- जब सैंडबॉक्स एक `HTMLDocument` रेंडर करता है, तो यह ऐसा दिखाएगा कि वह ठीक उसी पिक्सेल डेंसिटी वाले डिवाइस पर चल रहा है। + +> *Why you should care:* कुछ CSS मीडिया क्वेरीज़ `device-pixel-ratio` का उपयोग करती हैं (उदा., `@media (-webkit-min-device-pixel-ratio: 2)`)। यदि आप DPR सेट नहीं करते, तो ये नियम कभी नहीं चलेंगे, और आप हाई‑रेज़ोल्यूशन एसेट्स से वंचित रहेंगे। + +## सैंडबॉक्स कॉन्फ़िगरेशन की पुष्टि (how to set user-agent) + +आइए सैंडबॉक्स को काम पर लगाएँ। नीचे दिया गया स्निपेट एक `HTMLDocument` बनाता है, पेज लोड करता है, और पुष्टि प्रिंट करता है कि सैंडबॉक्स सक्रिय है। + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**अपेक्षित कंसोल आउटपुट** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +यदि आप प्रोग्राम चलाते हैं और वह लाइन देखते हैं, तो आपने सफलतापूर्वक **iPhone को एम्यूलेट** किया है सही DPR और यूज़र‑एजेंट के साथ। पेज को वास्तविक ब्राउज़र में खोलें और व्यूपोर्ट आयाम जांचें—आप देखेंगे कि वे हमारे सेट किए गए iPhone मानों से मेल खाते हैं। + +## सामान्य समस्याएँ और DPR सही तरीके से सेट करना (how to set dpr) + +भले ही कोड सही हो, कुछ छोटी‑छोटी चीज़ें आपको फँसा सकती हैं: + +| समस्या | क्यों होता है | समाधान | +|-------|----------------|-----| +| **DPR 1 पर ही रहता है** | `Screen` को तीसरे आर्ग्यूमेंट (DPR) के बिना पास किया। | हमेशा `new Screen(width, height, dpr)` का उपयोग करें। | +| **User‑Agent अनदेखा** | सैंडबॉक्स `HTMLDocument` से जुड़ा नहीं था। | `documentSandbox` को `HTMLDocument` कंस्ट्रक्टर के दूसरे आर्ग्यूमेंट के रूप में पास करें। | +| **गलत आयाम** | डिवाइस पिक्सेल को CSS पिक्सेल की बजाय उपयोग करना। | ध्यान रखें: चौड़ाई/ऊँचाई **CSS पिक्सेल** हैं, हार्डवेयर पिक्सेल नहीं। | +| **सर्वर अभी भी डेस्कटॉप CSS भेजता है** | कुछ साइटें डिवाइस का पता लगाने के लिए केवल हेडर नहीं, बल्कि जावास्क्रिप्ट का उपयोग करती हैं। | यदि आवश्यक हो तो एक viewport meta टैग भी इन्जेक्ट करने पर विचार करें। | + +इन बातों को ध्यान में रखकर, आप शायद ही कभी ऐसी स्थिति का सामना करेंगे जहाँ एम्यूलेशन अपेक्षित रूप से व्यवहार नहीं करता। + +## सैंडबॉक्स का विस्तार – अगले कदम + +अब जब आप **how to set custom user agent** और **how to set dpr** जानते हैं, तो आप आगे प्रयोग कर सकते हैं: + +- **स्क्रीन आकार बदलें** ताकि टैबलेट या बड़े फ़ोन को एम्यूलेट किया जा सके। +- **यूज़र‑एजेंट बदलें** ताकि Android पर Chrome का परीक्षण किया जा सके (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **कुकीज़ या हेडर्स जोड़ें** सैंडबॉक्स के `setHeaders` मेथड के माध्यम से ऑथेंटिकेशन परीक्षण के लिए। +- **स्क्रीनशॉट कैप्चर करें** `HTMLDocument.renderToFile("output.png")` का उपयोग करके विज़ुअल अंतर को स्वचालित रूप से तुलना करने के लिए। + +ये एक्सटेंशन आपको बिना IDE छोड़े एक पूर्ण‑फ़ीचर परीक्षण हर्नेस बनाने की अनुमति देते हैं। + +--- + +## निष्कर्ष + +हमने Aspose.HTML के `DocumentSandbox` का उपयोग करके **iPhone को एम्यूलेट** करने का तरीका कवर किया, जिसमें **how to set custom user agent**, **how to set device pixel ratio**, और “**how to set user-agent**” व “**how to set dpr**” के बीच सूक्ष्म अंतर भी दिखाए। पूरा, चलाने योग्य उदाहरण हर भाग को एक ही जगह प्रदर्शित करता है, ताकि आप कॉपी‑पेस्ट, संशोधित कर, और तुरंत मोबाइल लेआउट्स का परीक्षण शुरू कर सकें। + +इसे आज़माएँ—स्क्रीन आयाम बदलें, विभिन्न यूज़र‑एजेंट्स के साथ खेलें, और देखें कि आपके पेज कैसे प्रतिक्रिया देते हैं। जब आप इन सेटिंग्स में निपुण हो जाएंगे, तो रिस्पॉन्सिव डिज़ाइन डिबगिंग एक आसान काम बन जाएगा, और आप वास्तविक डिवाइसों पर बग्स का पीछा करने में अनगिनत घंटे बचा लेंगे। + +कोई प्रश्न है या अपनी खुद की वैरिएशन शेयर करना चाहते हैं? नीचे टिप्पणी छोड़ें, और खुशहाल एम्यूलेशन! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/advanced-usage/_index.md b/html/hongkong/java/advanced-usage/_index.md index 01c084ba6..04fefa1a0 100644 --- a/html/hongkong/java/advanced-usage/_index.md +++ b/html/hongkong/java/advanced-usage/_index.md @@ -135,6 +135,9 @@ A: 不需要。單一的 Aspose.HTML for Java 授權即涵蓋所有輸出格式 ### [如何在 Java 中執行 JavaScript – 完整指南](./how-to-run-javascript-in-java-complete-guide/) 學習在 Java 應用程式中使用 Rhino、Nashorn 或 GraalVM 執行 JavaScript 程式碼的完整步驟。 +### [頂層 await 範例 – 在 JavaScript 中使用 await delay](./top-level-await-example-using-await-delay-in-javascript/) +示範如何在 JavaScript 中使用頂層 await 搭配 await delay 進行非同步操作。 + --- **最後更新日期:** 2025-11-29 diff --git a/html/hongkong/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/hongkong/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..4e55254e5 --- /dev/null +++ b/html/hongkong/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: 即時示範中展示頂層 await 範例,包含 await 延遲 JavaScript、遞增計數器類別與公共類別欄位 JavaScript。 +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: zh-hant +og_description: 頂層 await 範例,示範 await 延遲 JavaScript、遞增計數器類別及公共類別欄位 JavaScript 的簡潔教學。 +og_title: 頂層 await 範例 – 在 JavaScript 中使用 await 延遲 +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: 頂層 await 範例 – 在 JavaScript 中使用 await 延遲 +url: /zh-hant/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await 範例 – 在 JavaScript 中使用 await delay + +有沒有想過在不把所有程式碼包在 async IIFE 裡的情況下,暫停模組執行?這正是 **top level await 範例** 能做到的事。在本教學中,我們會一步步示範一個小型網頁,使用 `await delay javascript` 來延遲工作,接著建立一個利用 **public class fields javascript** 的 **increment counter class**。完成後,你將得到一段可直接複製貼上的程式碼,能在任何現代瀏覽器中執行。 + +我們會從定義帶有 public 欄位的 class 開始,接著串接一個簡易的基於 Promise 的 delay 輔助函式。全程不需要外部函式庫、建置步驟——只要純 HTML、` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### 預期的 Console 輸出 + +``` +Counter class initialized +Final count: 1 +``` + +在 DevTools 開啟此頁面時,應先看到 static‑block 訊息 **先於** 延遲結束的輸出,證明 class 先被評估。 + +## Step 5 – 為什麼使用 Public Class Fields 而不是 Constructor? + +你可能會想,為什麼不直接寫成: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +兩種寫法都可行,但 **public class fields javascript** 提供了更簡潔、宣告式的語法。欄位只會定義一次,而不是在每次 constructor 呼叫時重複寫入,當 class 變得較大時更易閱讀。此外,static 區塊無法放在 constructor 內,因此將初始化邏輯分離會更自然。 + +## Step 6 – 將範例套用到實務應用 + +在正式環境中,往往不只需要一個計數器。以下提供幾個快速擴充的想法: + +- **多個計數器:** 使用 `Map` 以 identifier 為鍵儲存多個實例。 +- **持久化狀態:** 把 `console.log` 換成寫入 `localStorage`。 +- **非同步初始化:** 在 static 區塊中先向伺服器取得設定,確保所有實例建立前已完成。 + +這些模式同樣受惠於 top‑level await,因為你可以在模組載入時一次取得資料,保證所有消費者都能即時使用。 + +## 常見問答 + +**Q: top‑level await 會阻塞其他模組嗎?** +A: 不會。每個模組獨立執行。只有包含 await 的模組會暫停,其他模組仍會平行載入。 + +**Q: 若 delay 的 Promise 被 reject 會怎樣?** +A: 未處理的 reject 會中止模組評估,並在 console 顯示錯誤。若需要優雅的回退,請將 await 包在 `try…catch` 中。 + +**Q: `static` 關鍵字是必須的嗎?** +A: 對計數器本身不是必須,但 static 區塊是一個方便的方式,示範程式碼在載入時只執行一次——非常適合寫日誌或做功能偵測。 + +## 結論 + +你剛完成一個 **top level await 範例**,展示了 `await delay javascript`、**increment counter class**,以及 **public class fields javascript** 的威力。完整、可執行的程式碼已在上方提供,Console 輸出也證明 static 區塊會在延遲程式碼之前觸發。 + +接下來,你可以嘗試更複雜的 async 流程、把 delay 換成真實的 API 呼叫,或為 class 加入更多方法。記住,現代 JavaScript 讓模組本身就能作為第一級的 async 實體——不需要額外的包裝。 + +祝開發順利,歡迎在留言區分享你的變化。如果本教學對你有幫助,別忘了分享給仍在與 async 模式奮戰的同事! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/conversion-html-to-other-formats/_index.md b/html/hongkong/java/conversion-html-to-other-formats/_index.md index bcd12f00f..85d2ae1c9 100644 --- a/html/hongkong/java/conversion-html-to-other-formats/_index.md +++ b/html/hongkong/java/conversion-html-to-other-formats/_index.md @@ -83,8 +83,12 @@ Aspose.HTML for Java 簡化了 HTML‑to‑PDF 工作流程。請參考專屬教 ## Conversion - HTML to Other Formats Tutorials ### [Converting HTML to PDF](./convert-html-to-pdf/) 了解如何使用 Aspose.HTML 在 Java 中將 HTML 轉換為 PDF,輕鬆產生高品質的 PDF 文件。 +### [建立自訂尺寸 PDF – 使用 Aspose 將 HTML 轉換為 PDF](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +說明如何在 Java 中使用 Aspose.HTML 設定 PDF 自訂頁面尺寸,將 HTML 轉換為符合需求的 PDF 文件。 ### [在 Java 中將 HTML 轉換為 PDF – 逐步指南與頁面大小設定](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) 提供在 Java 中使用 Aspose.HTML 逐步將 HTML 轉換為 PDF,並設定頁面尺寸的完整教學。 +### [在 Java 中從 HTML 建立 PDF – 平行批次轉換指南](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +說明如何使用 Aspose.HTML 在 Java 中執行平行批次將 HTML 轉換為 PDF,提高轉換效能。 ### [Converting HTML to MHTML](./convert-html-to-mhtml/) 使用 Aspose.HTML for Java 輕鬆將 HTML 轉換為 MHTML,依照步驟指南完成高效的 HTML‑to‑MHTML 轉換。 ### [Converting HTML to XPS](./convert-html-to-xps/) @@ -97,6 +101,8 @@ Aspose.HTML for Java 簡化了 HTML‑to‑PDF 工作流程。請參考專屬教 使用 Aspose.HTML 在 Java 中將 SVG 轉為 PDF,提供高品質文件轉換的無縫解決方案。 ### [Converting SVG to XPS](./convert-svg-to-xps/) 學習如何使用 Aspose.HTML for Java 將 SVG 轉為 XPS,提供簡單、步驟式的無縫轉換指南。 +### [在 Java 中將 HTML 轉換為 Markdown – 保留原始格式](./convert-html-to-markdown-in-java-preserve-original-formattin/) +使用 Aspose.HTML for Java 將 HTML 內容轉換為 Markdown,同時保留原始排版與樣式。 ## 常見問題 diff --git a/html/hongkong/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/hongkong/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..49418dd69 --- /dev/null +++ b/html/hongkong/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,203 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose HTML 轉換(Java)將 HTML 轉換為 Markdown,並在保留原始格式的同時產生 Markdown 檔案。一步一步學習。 +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: zh-hant +og_description: 快速將 HTML 轉換為 Markdown,生成 Markdown 檔案,並使用 Aspose HTML 轉換(Java 版)保持原始格式。 +og_title: 在 Java 中將 HTML 轉換為 Markdown – 保留格式 +tags: +- Aspose +- Java +- Markdown +title: 在 Java 中將 HTML 轉換為 Markdown – 保留原始格式 +url: /zh-hant/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 將 HTML 轉換為 Markdown(Java) – 保留原始格式 + +是否曾需要**將 HTML 轉換為 markdown**,但又擔心會失去空格、表格或內嵌標籤?你並不是唯一遇到這個問題的人。許多開發者在嘗試將網頁內容搬移到乾淨、適合版本控制的格式時,都會碰到這個問題。好消息是?只要幾行 Java 程式碼加上 Aspose HTML,就能**產生 markdown 檔案**,外觀與原始檔案完全相同,連空白字元都保留。 + +在本指南中,我們將逐步說明整個流程:載入複雜的 HTML 檔案、設定轉換以**保留原始格式**,最後將輸出寫入 `preserved.md`。完成後,你將擁有可直接執行的程式碼片段,了解每個設定*為何*重要,並知道如何針對自訂 CSS 或嵌入腳本等特殊情況調整程式碼。 + +## 需要的環境 + +- Java 17(或任何較新的 JDK) – API 支援 Java 8 以上,但較新版本可提供更佳效能。 +- Aspose HTML for Java 函式庫(版本 23.11 或更新)。可從 Maven Central 取得: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- 一個範例 HTML 檔案(`complex.html`),內含標題、表格、程式碼區塊,甚至可能有內嵌的 `` 樣式。 +- 一點耐心與願意嘗試的精神。 + +就這樣。無需外部工具,亦不需要命令列技巧——只要純粹的 Java 程式碼。 + +## 步驟 1:載入來源 HTML 文件 + +首先,我們會建立指向來源檔案的 `HTMLDocument` 實例。Aspose HTML 會將檔案視為 DOM,這表示你在轉換前可以檢查或修改它(若有需要的話)。 + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **為什麼這很重要:** 以此方式載入文件可確保所有連結的資源(樣式表、圖片)皆相對於檔案位置解析。若跳過此步驟直接傳入原始字串,可能會遺失影響間距的外部 CSS——這正是你想要**保留原始格式**的情況。 + +## 步驟 2:設定 Markdown 轉換選項 + +Aspose HTML 提供 `MarkdownConversionOptions` 類別。我們關注的關鍵屬性是 `setPreserveOriginalFormatting(true)`。啟用後,轉換器會保留換行、縮排,甚至是 markdown 本身無法直接表示的原始 HTML 片段。 + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **專業提示:** 若之後發現某些內嵌樣式被剝除,你也可以呼叫 `markdownOptions.setIncludeHtml(true)`,將原始 HTML 區塊強制寫入 markdown 輸出。 + +## 步驟 3:執行轉換 + +現在,我們將 `HTMLDocument`、目標檔案路徑以及設定選項傳給靜態的 `Converter.convertHTML` 方法。此方法會在背後完成所有繁重的轉換工作。 + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +當呼叫完成後,你會在來源檔案旁看到 `preserved.md`。用任何編輯器開啟它——會發現原始的換行與表格對齊仍然完整保留。 + +## 步驟 4:驗證結果(可選但建議執行) + +快速的合理性檢查可以避免日後出現微妙的錯誤。你可以將檔案重新讀回 Java 並印出前幾行,或直接在 VS Code 中開啟它。 + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +你應該會看到類似以下內容: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +`` 標籤仍然存在,因為 markdown 原生的表格語法無法完整捕捉其樣式——這全拜 `preserve original formatting` 所賜。 + +## 步驟 5:完整範例 – 可直接執行的程式 + +以下是完整、可直接執行的類別。請將 `YOUR_DIRECTORY` 替換為你機器上的實際路徑。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +使用 `mvn exec:java` 或你喜愛的 IDE 執行程式,即可得到一個**產生 markdown 檔案**,其版面與原始 HTML 完全相符。 + +## 常見問題與特殊情況 + +### 這能與外部 CSS 檔案一起使用嗎? + +可以。只要 CSS 檔案可透過相對路徑取得,Aspose HTML 會自動載入。若你是從遠端 URL 取得 HTML,可能需要設定自訂的 `ResourceLoadingOptions` 物件以允許網路存取。 + +### 如果我不想在 markdown 中保留任何原始 HTML 該怎麼辦? + +只要切換此選項即可: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +轉換器將嘗試將所有內容轉換為純 markdown 語法,可能會失去部分版面忠實度。 + +### 我可以轉換字串而非檔案嗎? + +當然可以。使用接受 `String` 的建構子: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +然後如同之前一樣將 `doc` 傳給 `Converter.convertHTML`。 + +### 與 Flexmark 或 pandoc 等其他函式庫有何不同? + +大多數開源工具會將 HTML 視為純文字,並積極剔除空白。Aspose HTML 的 `preserveOriginalFormatting` 旗標是一項**專有功能**,會保留原始來源的空白、換行,甚至將不支援的標籤保留為原始 HTML 區塊。這也是本教學特別強調**aspose html conversion**,適合需要精確忠實度的 Java 開發者。 + +## 生產環境使用建議 + +- **批次處理:** 將轉換邏輯包在迴圈中,一次處理多個 HTML 檔案。 +- **錯誤處理:** 捕獲 `IOException` 與 `com.aspose.html.exceptions.AssertionFailedException`,以顯示缺失的資源。 +- **效能:** 在轉換大型網站的片段時重複使用同一個 `HTMLDocument` 實例;函式庫會快取已解析的 CSS。 + +## 結論 + +我們剛剛示範了如何在 Java 中**將 HTML 轉換為 markdown**,同時確保輸出**保留原始格式**。這段簡短且自足的程式碼展示了完整工作流程——從載入 HTML 文件、設定 `MarkdownConversionOptions`、執行轉換,到驗證結果。藉助 Aspose HTML 強大的 API,你現在可以以程式方式**產生 markdown 檔案**,無論是建構靜態網站產生器、文件管線,或是內容遷移工具。 + +接下來,你可以探索: + +- 使用 **html to markdown java** 進行全站大量遷移。 +- 調整轉換選項,以輸出符合 GitHub 風格的 markdown 表格。 +- 將此方法結合 CI/CD 步驟,讓文件在來源 HTML 變更時自動更新。 + +歡迎自行嘗試,若遇到任何問題請留下評論。祝開發愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/hongkong/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..899882501 --- /dev/null +++ b/html/hongkong/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,194 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose.HTML for Java 從 HTML 建立自訂尺寸的 PDF。了解如何將 HTML 轉換為 PDF,並在幾個步驟內設定 + PDF 頁面尺寸。 +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: zh-hant +og_description: 使用 Aspose 從 HTML 建立自訂尺寸 PDF。本指南將示範如何將 HTML 轉換為 PDF、變更 PDF 頁面尺寸,以及輕鬆設定 + PDF 頁面尺寸。 +og_title: 建立自訂尺寸 PDF – 快速指南:將 HTML 轉換為 PDF +tags: +- aspose +- java +- pdf +- html +title: 建立自訂尺寸 PDF – 使用 Aspose 將 HTML 轉換為 PDF +url: /zh-hant/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 建立自訂尺寸 PDF – 使用 Aspose 將 HTML 轉換為 PDF + +有沒有需要從 HTML 檔案 **建立自訂尺寸 PDF**?在本教學中,我們將示範如何 **將 HTML 轉換為 PDF**,並使用 Aspose.HTML for Java 設定 PDF 頁面尺寸。 + +如果您正在製作發票、報告或電子書,精確的頁面尺寸相當重要——否則版面會偏移或被截斷。 + +我們會一步步說明,從載入原始 HTML、微調邊距,到產生可直接使用的 PDF。沒有模糊的參考,只有完整、可執行的範例,您今天就能直接複製貼上使用。 + +## 您需要的環境 + +- **Java 17**(或任何較新的 JDK)。 +- **Aspose.HTML for Java** JAR 檔案 – 您可從 Maven 套件庫或 Aspose 官方網站取得最新版本。 +- 一個簡單的 `input.html` 檔案,放置於您可控制的資料夾中。 +- 您慣用的 IDE 或文字編輯器;我通常使用 IntelliJ IDEA,但 Eclipse 也同樣適用。 + +具備這些前置條件即可避免在執行過程中遇到「class not found」錯誤。 + +現在,讓我們深入探討。 + +![建立自訂尺寸 PDF 範例](/images/create-pdf-custom-size.png "螢幕截圖顯示使用自訂頁面尺寸與邊距產生的 PDF – create pdf custom size") + +## 建立自訂尺寸 PDF – 核心步驟 + +以下是最終的完整 Java 程式碼。您可以將它複製到名為 `ConvertHtmlToPdfCustomPage.java` 的檔案中,並在加入 Aspose 相依套件後執行。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### 步驟 1 – 將 HTML 轉換為 PDF:載入文件 + +首先,我們 **載入要轉換成 PDF 的 HTML**。 +`HTMLDocument` 會讀取檔案、解析相對連結,並建立 Aspose 可渲染的 DOM。 + +> **為什麼重要:** 若 HTML 內引用了 CSS 或圖片,Aspose 會依檔案路徑相對取得。使用絕對路徑 (`YOUR_DIRECTORY/input.html`) 可避免「找不到檔案」的意外。 + +### 步驟 2 – 更改 PDF 頁面尺寸:設定選項 + +這裡我們建立一個 `PdfConversionOptions` 物件。 +- `setPageSize(PageSize.A4)` 告訴 Aspose 使用標準 A4 尺寸(210 × 297 mm)。 +- `setPageOrientation(...)` 若需要橫向則翻轉頁面。 +- `setMargins(new Margin(20, 20, 20, 20))` 為每一側設定 20 點的邊距。 + +您可以將 `PageSize.A4` 換成 `PageSize.LETTER`,甚至傳入 `SizeF` 物件自行定義 **自訂尺寸**,例如: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **小技巧:** 1 點等於 1/72 英吋。若習慣以毫米計算,乘以 2.83465 即可得到點數。 + +### 步驟 3 – 從 HTML 產生 PDF:執行轉換 + +`Converter.convertHTML` 承擔主要工作。它接收已載入的 `HTMLDocument`、輸出路徑以及剛才設定的選項。 + +若想根據內容動態 **設定 PDF 頁面尺寸**,可在此步驟前先計算所需尺寸,然後調整 `pdfOptions`。 + +### 步驟 4 – 驗證結果 + +`System.out.println` 行為可有可無,但在控制台執行程式時能快速提供回饋。執行完畢後,開啟 `custom_page.pdf` – 您應該會看到一個 A4 直向 PDF,四邊均為 20 點的均勻邊距,正如我們所指定的。 + +## 將 HTML 轉換為 PDF – 常見變化 + +### 使用串流取代檔案路徑 + +有時候沒有實體檔案;HTML 可能來自資料庫或 API。此時可將字串包裝成 `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +第二個參數是用來解析相對資源的基礎 URL。 + +### 更改頁面方向 + +若報表較寬,切換為橫向: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### 微調邊距 + +邊距接受浮點數值,您可以設定 0.5 pt 以得到極細的邊框: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### 處理大型 HTML 檔案 + +面對巨量文件時,建議啟用 **記憶體效能串流**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +這會指示 Aspose 將中間資料寫入暫存檔,而非全部保留在 RAM 中。 + +## 設定 PDF 頁面尺寸 – 邊緣情況與陷阱 + +- **缺少字型:** 若 HTML 使用的自訂字型未安裝於伺服器,PDF 會退回預設字型。可使用 `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` 內嵌字型。 +- **影像縮放:** 高解析度影像會使 PDF 體積膨脹。使用 `pdfOptions.setImageResolution(150);` 可在保留品質的同時降低解析度。 +- **CSS 相容性:** 並非所有 CSS 屬性皆受支援。建議使用標準布局技術(flexbox 可用,grid 可能有怪異行為)。 +- **路徑權限:** 確保執行程序對 `YOUR_DIRECTORY` 具有寫入權限,否則會拋出 `IOException`。 + +## 預期輸出 + +執行程式會產生如下概念圖所示的 PDF: + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- 頁面尺寸:**A4**(210 × 297 mm)。 +- 方向:**Portrait**(直向)。 +- 邊距:每側 **20 pt**。 + +使用任何 PDF 閱讀器(Adobe Reader、Chrome 等)開啟檔案即可確認。 + +## 總結 + +您現在已掌握如何使用 Aspose.HTML for Java 從 HTML 來源 **建立自訂尺寸 PDF**。本教學涵蓋了完整流程:**將 HTML 轉換為 PDF**、**更改 PDF 頁面尺寸**、**設定 PDF 頁面尺寸**,以及使用自訂邊距 **從 HTML 產生 PDF**。 + +歡迎自行實驗——將 `PageSize.LETTER` 換成 Legal 尺寸、調整邊距,或內嵌自己的字型。接下來,您可以探索 **加入浮水印**、**加密 PDF**,或 **批次處理多個 HTML 檔案**。所有這些主題皆建立在我們剛剛討論的核心概念上。 + +對特定邊緣情況有疑問嗎?在下方留言,我會協助您排除問題。祝開發愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/hongkong/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..bd468a966 --- /dev/null +++ b/html/hongkong/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,235 @@ +--- +category: general +date: 2026-03-26 +description: 使用固定執行緒池快速將 HTML 轉換為 PDF。學習批次 HTML 轉 PDF,並在 Java 中執行平行任務。 +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: zh-hant +og_description: 使用固定執行緒池快速將 HTML 轉換為 PDF。了解如何批次將 HTML 轉為 PDF 以及在 Java 中執行平行任務。 +og_title: 在 Java 中將 HTML 轉換為 PDF – 並行批量轉換指南 +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: 在 Java 中從 HTML 建立 PDF – 平行批次轉換指南 +url: /zh-hant/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Java 從 HTML 建立 PDF – 平行批次轉換指南 + +有沒有曾經需要 **create PDF from HTML**,卻被單執行緒的轉換速度拖慢到幾乎無法繼續?你並不孤單。在許多實務專案中,我們會收到數十份 HTML 報告,必須在當天結束前轉成 PDF,而逐一處理根本不切實際。 + +因此本教學將示範如何使用 **fixed thread pool** 來 **how to convert HTML to PDF**,讓你能 **batch HTML to PDF** 並 **run parallel tasks**,毫不費力。完成後,你將擁有一個完整、可直接執行的程式,能在極短時間內將整個資料夾的 HTML 檔案轉成 PDF。 + +## 你將學到什麼 + +* Aspose.HTML(負責繁重工作的函式庫)的正確 Maven/Gradle 相依性。 +* 為什麼 **fixed thread pool** 是 CPU 密集型轉換工作的最佳選擇。 +* 如何列出來源檔案,使處理流程能擴展至數百份文件。 +* 可直接貼到 IDE 的完整程式碼——不會缺少 import,也沒有 “TODO” 註解。 +* 處理錯誤、調整執行緒池大小以及驗證輸出的技巧。 + +不需要事先了解 Aspose.HTML,只要具備基本的 Java 環境與實驗精神即可。讓我們開始吧。 + +![顯示固定執行緒池平行將多個 HTML 檔案轉換為 PDF 的圖示 – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*圖片說明文字:create pdf from html – 平行轉換示意圖* + +## 步驟 1:準備專案並加入 Aspose.HTML + +首先,你的專案需要 Aspose.HTML 函式庫。如果使用 Maven,請將以下內容放入 `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle 的寫法則如下: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +為什麼選擇 Aspose.HTML?它是商業函式庫,但提供 **convert html to pdf** API,能即時處理 CSS、JavaScript 以及複雜版面。如果你偏好開源替代方案,之後可以改用其他函式取代 `Converter.convertHTML` 呼叫,但執行緒的邏輯保持不變。 + +> **Pro tip:** 請將版本號與官方發行說明保持同步;較新版通常會提升渲染速度,這在大量平行執行任務時相當重要。 + +## 步驟 2:建立 Fixed Thread Pool 以進行平行轉換 + +當你一次處理多個檔案時,不希望產生無限制的執行緒——作業系統會因此發生資源爭用。**fixed thread pool** 能提供可預測的併發數量,同時控制記憶體使用。 + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +為什麼是四個?在一般 8 核心的機器上,保留一半的核心給 I/O 與作業系統使用較為理想。你可以自行測試:`Runtime.getRuntime().availableProcessors()` 會回傳核心數,常用的經驗法則是 `cores / 2`。請記住,每次轉換都是 CPU 密集型工作,執行緒數量超過核心數通常會降低效能。 + +## 步驟 3:收集要轉換的 HTML 檔案 + +接下來的關鍵是 **batch html to pdf** 清單。你可以像範例一樣硬編碼陣列,或是掃描目錄。以下提供一個彈性的寫法,會讀取資料夾內所有 `.html` 檔案: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +這種做法讓你只要把新檔案放入資料夾,程式就會自動偵測——非常適合夜間批次作業。 + +## 步驟 4:為每個檔案提交轉換任務(執行平行任務) + +現在進入有趣的部分:每個檔案會被包裝成 **Runnable**(或 `Callable`),由執行緒池執行。以下程式碼與原範例相同,但加入了錯誤處理與簡短的日誌訊息。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**為什麼要在 try‑catch 中包住轉換程式?** 當你 **run parallel tasks** 時,單一格式錯誤的 HTML 檔案可能會導致整個執行緒池崩潰。透過在本地捕捉例外,我們能確保批次的其他工作持續執行。 + +## 步驟 5:關閉 Executor 並等待完成 + +所有工作提交完畢後,你必須告訴執行緒池停止接受新任務,並等待所有工作結束。這樣可確保 JVM 不會過早結束。 + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +若資料夾非常龐大(上千檔案),可以延長逾時時間或實作進度監控。重點是要 **gracefully shut down**——這是生產環境就緒程式碼的標誌。 + +## 完整範例程式 + +將上述所有步驟整合起來,以下是一個可直接複製貼上至 `src/main/java` 並執行的完整類別: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**預期輸出**(範例): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +若開啟產生的 `.pdf` 檔案,你會看到原始 HTML 版面完整保留——字型、表格,甚至基本的 JavaScript 動態內容皆正確渲染。 + +## 常見問題與邊緣案例 + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/conversion-html-to-various-image-formats/_index.md b/html/hongkong/java/conversion-html-to-various-image-formats/_index.md index c9fd2e665..2d1b103d3 100644 --- a/html/hongkong/java/conversion-html-to-various-image-formats/_index.md +++ b/html/hongkong/java/conversion-html-to-various-image-formats/_index.md @@ -94,9 +94,14 @@ weight: 24 學習如何在 Java 中使用 Aspose.HTML 將 HTML 轉換為 PNG 圖像。完整教學提供詳細步驟說明。 ### [將 HTML 轉換為 WebP](./convert-html-to-webp-complete-java-guide-with-aspose-html/) + +### [將 HTML 轉換為 WebP](./convert-html-to-webp-complete-java-guide/) + ### [將 HTML 轉換為 TIFF](./convert-html-to-tiff/) 了解如何使用 Aspose.HTML for Java 輕鬆將 HTML 轉換為 TIFF。提供高效的文件處理步驟說明。 +### [在 Java 中從 SVG 建立多頁 TIFF – 步驟說明指南](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) + ## 常見問題集 **Q: 我可以在 Java 中將 HTML 轉換為 PNG 而不使用額外的圖像函式庫嗎?** diff --git a/html/hongkong/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/hongkong/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..d32bfdf93 --- /dev/null +++ b/html/hongkong/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose.HTML 快速將 HTML 轉換為 WebP。了解如何將 HTML 保存為 WebP、將 HTML 渲染為 WebP,以及僅需幾個步驟即可從 + HTML 生成 WebP。 +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: zh-hant +og_description: 使用 Aspose.HTML 快速將 HTML 轉換為 WebP。本教學說明如何在 Java 中將 HTML 渲染為 WebP 以及從 + HTML 產生 WebP。 +og_title: 將 HTML 轉換為 WebP – 完整 Java 指南 +tags: +- Java +- Aspose.HTML +- Image Conversion +title: 將 HTML 轉換為 WebP – 完整 Java 教程 +url: /zh-hant/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 將 HTML 轉換為 WebP – 完整 Java 指南 + +是否曾經需要 **將 HTML 轉換為 WebP**,卻不確定哪個函式庫能夠毫無痛苦地完成這項工作?你並不孤單。許多開發者在嘗試為動態頁面產生輕量圖像時,都會遇到這個難題。好消息是:使用 Aspose.HTML for Java,你只需要一次方法呼叫就能 *將 HTML 儲存為 WebP*,整個流程順暢如奶油。 + +在本教學中,我們將一步步說明所有必備知識:從設定 Aspose.HTML 相依性、微調壓縮設定,到最終將 HTML 文件渲染為可在網路上提供的 WebP 檔案。完成後,你將能 **將 HTML 渲染為 WebP**、**從 HTML 產生 WebP**,並了解每個設定選項背後的「為什麼」。不需要外部腳本,也不需要命令列雜耍——只要乾淨的 Java 程式碼。 + +## 前置條件 + +在深入之前,請先確認你已具備以下條件: + +- 已安裝 Java 8 或更新版本(函式庫支援 JDK 8+)。 +- 有 Maven 或 Gradle 來管理相依性(我們會示範 Maven 片段)。 +- 一個想要轉換成 WebP 圖像的簡易 HTML 檔案(`input.html`)。 +- 你慣用的 IDE 或文字編輯器——IntelliJ IDEA 表現優異,其他也同樣可行。 + +全部準備好了嗎?太好了,讓我們開始吧。 + +## 步驟 1:將 Aspose.HTML 加入專案 + +首先,你必須在 classpath 中加入 Aspose.HTML 函式庫。若使用 Maven,請將以下內容放入 `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle 的寫法則是: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +為什麼這一步很重要?如果沒有這個 JAR,`HTMLDocument`、`Converter` 或 `WebpConversionOptions` 等類別根本不存在,編譯時會拋出 `ClassNotFoundException`。此外,加入相依性同時會自動下載 WebP 編碼所需的原生二進位檔,讓你不必自行尋找外部的 DLL 或 `.so` 檔案。 + +> **專業小技巧:** 請保持相依性為最新版本。較新的 Aspose 版本常會改進 WebP 壓縮演算法,並支援更新的 HTML5 功能。 + +## 步驟 2:載入來源 HTML 文件 + +函式庫就緒後,我們即可載入要轉換的 HTML。`HTMLDocument` 類別會解析檔案並建立 DOM,之後的轉換器會以此為基礎渲染。 + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +請注意註解「Load the source HTML document」——這提醒你若頁面需要動態樣式,亦可在轉換前注入 CSS 或 JavaScript。若跳過此步,轉換器將無內容可渲染,最終只會得到空白圖像。 + +## 步驟 3:設定 WebP 轉換選項 + +Aspose.HTML 為輸出提供細緻的控制。對於大多數情況而言,使用 **有損** WebP 且品質設定約 85,能在視覺保真度與檔案大小之間取得良好平衡。 + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +為什麼選擇有損模式?WebP 的有損模式採用預測編碼,與 PNG 相比可縮減 30‑50 % 的檔案大小,同時保留大部分視覺細節。如果你需要像素完美(例如商標),只要將 `CompressionMode` 改為 `Lossless`,並把 `quality` 提升至 100 即可。 + +## 步驟 4:轉換並儲存 WebP 圖像 + +文件與選項都備妥後,轉換只需要一行程式碼。靜態的 `Converter.convertHTML` 方法會完成所有繁重工作:將 DOM 渲染到位圖、編碼為 WebP,最後寫入磁碟。 + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +就這樣!程式執行完畢後,你會在原始 HTML 同目錄下看到 `output.webp`。接著即可直接從 Web 伺服器提供,或放入 `` 元素,或在任何支援 WebP 的情境中使用。 + +## 步驟 5:驗證結果(可選但建議執行) + +最好再次確認轉換是否成功,且圖像外觀符合預期。你可以在 Chrome、Firefox 或任何支援 WebP 的圖像檢視器中開啟檔案。若想快速以程式方式檢查,亦可讀取檔案大小與尺寸: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +若檔案意外過大或尺寸不符,請回到 **步驟 3**,調整 `quality` 或來源 HTML 的視口設定。記得,WebP 會遵循根元素的 CSS `width`/`height`,缺少 `` 標籤可能會導致意外結果。 + +## 完整範例程式 + +以下是整合所有步驟的完整、可直接執行的 Java 類別: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +將此檔案存為 `HtmlToWebp.java`,將 `YOUR_DIRECTORY` 替換為實際資料夾路徑,使用 `javac` 編譯,然後以 `java HtmlToWebp` 執行。你應該會在主控台看到檔案大小與尺寸的輸出,最後顯示成功訊息。 + +![將 HTML 轉換為 WebP 示例](/images/convert-html-to-webp.png "從 HTML 產生的 WebP 圖像截圖 – 將 HTML 轉換為 WebP") + +## 常見問題與邊緣案例 + +### 我的 HTML 參考了外部資源(CSS、圖片)怎麼辦? + +Aspose.HTML 會自動根據 `input.html` 的位置解析相對 URL。只要確保這些資源在檔案系統或網路伺服器上可被存取。若需要自訂基礎 URL,可使用接受 `URI` 基礎路徑的 `HTMLDocument` 建構子。 + +### 能否從同一份 HTML 產生多張不同視口大小的 WebP 圖片? + +絕對可以。將轉換邏輯包在迴圈中,於每次呼叫前調整 `webpOptions.setWidth()` 與 `setHeight()`,並為每個輸出指定唯一檔名。這在響應式設計中相當實用,可為行動裝置與桌面端提供不同尺寸的圖像。 + +### 如何切換為無損壓縮? + +將以下程式碼: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +改為: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +無損模式保證像素完美,但檔案會較大——僅在必要時使用。 + +### 這在 Linux/macOS 上可行嗎? + +可以。Aspose.HTML JAR 內含 Windows、Linux 與 macOS 的原生二進位檔,故相同的 Java 程式碼可在所有平台執行。只要確保已安裝相容的 JRE 即可。 + +## 結論 + +你已學會使用 Aspose.HTML for Java **將 HTML 轉換為 WebP**,涵蓋從相依性設定、壓縮微調到結果驗證的完整流程。掌握這項技術後,你可以 **將 HTML 儲存為 WebP**、**將 HTML 渲染為 WebP**,以及 **即時產生 WebP**——非常適合動態影像管線、電子報或任何需要輕量視覺的情境。 + +接下來可以嘗試不同的 `quality` 值、探索 `Lossless` 模式,或將此轉換器整合到 Spring Boot REST 端點,讓你的 Web 服務即時回傳 WebP 圖像。亦可批次處理整個資料夾的 HTML 檔,或結合無頭 Chrome 進行 SVG → WebP 轉換。 + +對 **如何在其他語言中轉換 HTML** 有更多疑問,或需要針對特定邊緣案例除錯?歡迎在下方留言,祝開發順利! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/hongkong/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..2b41a376e --- /dev/null +++ b/html/hongkong/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,165 @@ +--- +category: general +date: 2026-03-26 +description: 使用 Aspose.HTML 在 Java 中將 SVG 轉換為多頁 TIFF。了解如何將 SVG 轉換為 TIFF、在 Java 中載入 + SVG 文件,以及建立多頁 TIFF 檔案。 +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: zh-hant +og_description: 在 Java 中從 SVG 建立多頁 TIFF。本教學示範如何載入 SVG 文件、設定 TIFF 選項,並產生無損的多頁 TIFF。 +og_title: 在 Java 中從 SVG 建立多頁 TIFF – 完整指南 +tags: +- Java +- Aspose.HTML +- Image Conversion +title: 在 Java 中從 SVG 建立多頁 TIFF – 逐步指南 +url: /zh-hant/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Java 從 SVG 建立多頁 TIFF – 步驟指南 + +有沒有曾經需要從 SVG **建立多頁 TIFF**,卻不知從何入手?你並不孤單——許多開發者在需要可列印、無損且跨多頁的文件時,都會碰到這個問題。在本指南中,我們將一步步示範完整、可直接執行的解決方案,說明 **如何將 SVG 轉換為 TIFF**、在 Java 中載入 SVG 文件,並設定輸出,以便使用 LZW 壓縮 **建立多頁 TIFF** 檔案。 + +我們會從設定 Aspose.HTML 函式庫說明到處理大型 SVG 資源等邊緣案例。完成本教學後,你將擁有一個可直接放入任何專案的單一 Java 類別,即可立即產生多頁 TIFF。 + +## 需要的環境 + +- **Java Development Kit (JDK) 8+** – 此程式碼使用標準 Java API。 +- **Aspose.HTML for Java**(版本 23.5 或更新)– 這是唯一的第三方相依性。 +- **範例 SVG 檔案**(任何向量圖形皆可,我們稱之為 `input.svg`)。 +- 你喜愛的 IDE、簡易文字編輯器或終端機。 + +不需要額外的建置工具;範例可使用 `javac` 編譯、`java` 執行。若你偏好 Maven 或 Gradle,只需將 Aspose.HTML JAR 加入專案的 classpath 即可。 + +![Create multipage tiff example](create-multipage-tiff.png){alt="建立多頁 TIFF 輸出"} + +## 步驟 1 – 載入 SVG 文件 (load svg document java) + +我們首先要做的事是將 SVG 讀取為 `HTMLDocument` 物件。Aspose.HTML 將 SVG 檔案視為 HTML 文件,提供統一的 API 進行轉換。 + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**為什麼這很重要:** 將 SVG 以 `HTMLDocument` 載入,可存取完整的渲染引擎,確保所有樣式、字型與嵌入圖像在轉換前正確解讀。若跳過此步驟,直接將原始位元組送入轉換器,常會導致元素遺失或顏色不正確。 + +## 步驟 2 – 設定 TIFF 選項 (how to create multipage tiff) + +接著我們設定 `TiffConversionOptions`。此物件控制從頁面版面到壓縮的所有設定。為了產生真正的多頁輸出,我們啟用 `setMultipage(true)`,並選擇 **LZW** 壓縮,因為它是無損且廣受支援。 + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**為什麼這很重要:** 若未設定 `setMultipage(true)`,函式庫將產生單頁 TIFF,會捨棄從 SVG 推斷出的其他頁面(例如 SVG 含有多個 `` 根元素時)。LZW 在不犧牲影像品質的前提下,保持檔案大小合理——非常適合保存或列印流程。 + +## 步驟 3 – 執行轉換 (how to convert svg to tiff) + +現在開始執行繁重的轉換工作。靜態的 `Converter.convertSVG` 方法接受已載入的文件、目標路徑以及我們剛剛定義的選項。 + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**為什麼這很重要:** 使用靜態的 `convertSVG` 呼叫是觸發轉換最直接的方式。底層上,Aspose.HTML 會以預設 96 dpi 將向量資料光柵化;若需更高品質,可透過 `tiffOptions.setResolution(...)` 調整 DPI。 + +## 步驟 4 – 驗證結果 + +轉換完成後,建議確認檔案是否存在且頁數符合預期。可使用任何支援多頁 TIFF 的影像檢視器快速檢查(例如 IrfanView、XnView,或甚至 Java 的 `ImageIO`)。 + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +執行程式: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +你應該會在主控台看到成功訊息,開啟 `output.tiff` 後會看到每個 SVG 根元素對應一頁(若 SVG 只有一個畫布則為單頁)。 + +## 常見問題與專業技巧 + +| Issue | Why it Happens | How to Fix It | +|-------|----------------|---------------| +| **缺少字型** | SVG 參考了系統字型,但伺服器上未安裝這些字型。 | 在 SVG 中嵌入字型,或在 Aspose.HTML 使用 `FontSettings` 提供自訂字型資料夾。 | +| **檔案過大** | 高解析度光柵化會導致 TIFF 檔案體積激增。 | 透過 `tiffOptions.setResolution(150)` 降低 DPI,或僅在除錯時切換至 `Compression.NONE`。 | +| **未產生多頁** | SVG 只包含一個 `` 元素。 | 將來源分割為多個 SVG 檔,或在轉換前將每個邏輯頁面包在 `` 標籤中。 | +| **不支援的 SVG 功能** | 某些濾鏡或動畫無法被渲染。 | 簡化 SVG,或使用 Inkscape 等工具預先處理以平坦化濾鏡。 | + +**專業提示:** 若需要特定的頁面順序,請將 SVG 檔案重新命名為 `page1.svg`、`page2.svg` 等,然後迴圈處理,使用 `tiffOptions.setMultipage(true)` 每次將轉換結果附加到同一個 TIFF 中。 + +## 完整範例程式 + +以下是完整、獨立的 Java 類別,你可以直接複製貼上至名為 `SvgToMultipageTiff.java` 的檔案中。內含匯入語句、註解與生產環境的錯誤處理。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +執行程式會產生一個 TIFF,將每個 SVG 根元素轉為獨立頁面——這正是你在列印或保存時需要 **建立多頁 TIFF** 檔案的情況。 + +## 結論 + +我們剛剛示範了如何使用 Java 與 Aspose.HTML **建立多頁 TIFF**,從 SVG 轉換。教學涵蓋載入 SVG(`load svg document java`)、設定轉換選項、執行轉換(`how to convert svg to tiff`)以及驗證輸出。擁有完整原始碼後,你可以將此解決方案套用於批次處理數十個 SVG、調整 DPI 設定,或整合至更大的文件產生流程中。 + +準備好接受下一個挑戰了嗎?試著將整個 SVG 資料夾轉換為單一多頁 TIFF,或實驗不同的壓縮方式,亦或將 `TiffConversionOptions` 換成 `PdfConversionOptions` 以產生 PDF。相同的原理適用於其他格式,讓你能輕鬆擴充此模式。 + +有任何問題或遇到奇怪的 SVG 邊緣案例嗎?在下方留下評論,祝開發愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/html5-canvas-rendering/_index.md b/html/hongkong/java/html5-canvas-rendering/_index.md index 48c4e662d..65a6c3ec8 100644 --- a/html/hongkong/java/html5-canvas-rendering/_index.md +++ b/html/hongkong/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ url: /zh-hant/java/html5-canvas-rendering/ 使用 Aspose.HTML for Java 建立和渲染 HTML5 Canvas。逐步學習如何使用這個功能強大的 Java 程式庫進行繪圖、設計樣式以及匯出為 PDF。 ### [使用 Aspose.HTML for Java 掌握 HTML5 Canvas](./html5-canvas/) 了解如何使用 Aspose.HTML for Java 建立 HTML5 Canvas 並將其轉換為 PDF。本指南非常適合希望增強 Web 專案的開發人員。 +### [如何模擬 iPhone – 使用 Aspose.HTML 的完整指南](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +了解如何使用 Aspose.HTML 模擬 iPhone 瀏覽器環境,並將渲染結果匯出為 PDF 或圖像。 {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hongkong/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/hongkong/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..c87e662ce --- /dev/null +++ b/html/hongkong/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: 學習如何在 Java 中使用 Aspose.HTML 模擬 iPhone。包括設定自訂使用者代理以及設定裝置像素比,以達到精準的行動渲染。 +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: zh-hant +og_description: 如何在 Java 中模擬 iPhone?本教學示範如何使用 Aspose.HTML 設定自訂使用者代理與裝置像素比,呈現像素完美的行動頁面。 +og_title: 如何模擬 iPhone – Aspose.HTML 逐步指南 +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: 如何模擬 iPhone – 使用 Aspose.HTML 的完整指南 +url: /zh-hant/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 如何模擬 iPhone – 完整指南(使用 Aspose.HTML) + +有沒有想過在本機測試網頁時 **如何模擬 iPhone**?也許你正在除錯響應式版面,而桌面瀏覽器根本無法滿足需求。好消息是,你不需要實體裝置——Aspose.HTML 的 `DocumentSandbox` 只需幾行 Java 程式碼,即可模擬 iPhone 的螢幕、使用者代理(user‑agent)以及裝置像素比(device‑pixel‑ratio,簡稱 DPR)。 + +在本教學中,我們將逐步說明如何設定 **自訂使用者代理**、配置 **裝置像素比**,並驗證一切如預期運作。完成後,你將擁有一個可重複使用的 sandbox,能像 iPhone 8 一樣渲染頁面,並了解每個設定的意義。 + +## 你將達成的目標 + +- 建立一個 `Screen` 物件,映射 iPhone 的尺寸與 DPR。 +- 套用 **自訂使用者代理** 字串,讓伺服器以為請求來自 iOS 上的 Safari。 +- 建構一個將螢幕與使用者代理結合的 `DocumentSandbox`。 +- 在 sandbox 中執行 `HTMLDocument`,並在主控台輸出確認設定的訊息。 + +不需要除 Aspose.HTML 之外的任何外部函式庫,程式碼可在任何 Java 17+ 環境下執行。 + +--- + +![如何模擬 iPhone 截圖](https://example.com/images/iphone-emulation.png "使用 Aspose.HTML sandbox 模擬 iPhone 的方法") + +## 使用 Aspose.HTML Sandbox 模擬 iPhone + +我們首先需要一個 `Screen`,能同時反映 iPhone 的實體尺寸 *以及* 像素密度。這是 **如何模擬 iPhone** 的核心。 + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**為什麼這很重要:** +- 寬度 = 375 px、高度 = 667 px 是在 Chrome DevTools 中選取 iPhone 8 時看到的 CSS 像素尺寸。 +- 將 DPR 設為 2 會告訴渲染引擎將每個 CSS 像素視為兩個實體像素,從而呈現清晰的文字與圖像——正如真實裝置的表現。 + +> *小技巧:* 若需模擬較新的 iPhone(例如 iPhone 13),只要把數值改成 390 × 844 並將 DPR 設為 3 即可。 + +## 設定自訂使用者代理 (set custom user agent) + +接下來,我們需要 **設定自訂使用者代理**,讓伺服器回傳行動版的 HTML/CSS。若未設定,許多網站仍會以桌面版回應。 + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**運作原理:** +- `User-Agent` 標頭是瀏覽器用來向伺服器自我介紹的握手資訊。 +- 提供 iOS 16 Safari 所使用的完整字串,即可確保伺服器回傳行動版資源(例如響應式圖片、適應性腳本等)。 + +如果你需要 **設定使用者代理** 給其他裝置,只要把字串換成相應的值——Google Chrome、Firefox,甚至自訂機器人皆可。 + +## 設定裝置像素比 (set device pixel ratio) + +現在我們真的在 sandbox 中 **設定裝置像素比**。這一步直接回答「**如何設定 DPR**」的問題。 + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**說明:** +- `Builder` 模式讓你流暢地同時加入螢幕(攜帶 DPR)與使用者代理。 +- 當 sandbox 渲染 `HTMLDocument` 時,它會假裝自己在具有該像素密度的裝置上執行。 + +> *為什麼要在意:* 某些 CSS 媒體查詢會使用 `device-pixel-ratio`(例如 `@media (-webkit-min-device-pixel-ratio: 2)`)。若未設定 DPR,這類規則永遠不會觸發,導致無法載入高解析度資源。 + +## 驗證 Sandbox 設定 (how to set user-agent) + +讓 sandbox 真正上場。以下程式碼片段會建立 `HTMLDocument`、載入頁面,並印出 sandbox 已啟用的確認訊息。 + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**預期的主控台輸出** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +如果執行程式後看到上述訊息,代表你已成功 **模擬 iPhone**,且 DPR 與使用者代理皆正確。於真實瀏覽器開啟該頁面並檢查視口尺寸,你會發現它們正好與我們設定的 iPhone 數值相符。 + +## 常見陷阱與正確設定 DPR 方法 (how to set dpr) + +即使程式碼正確,仍有幾個常見問題可能讓你卡關: + +| 問題 | 發生原因 | 解決方法 | +|------|----------|----------| +| **DPR stays at 1** | 你在建立 `Screen` 時未傳入第三個參數(DPR)。 | 請始終使用 `new Screen(width, height, dpr)`。 | +| **User‑Agent ignored** | sandbox 未與 `HTMLDocument` 連結。 | 在 `HTMLDocument` 建構子中將 `documentSandbox` 作為第二個參數傳入。 | +| **Wrong dimensions** | 使用裝置像素而非 CSS 像素。 | 請記住:width/height 為 **CSS 像素**,而非硬體像素。 | +| **Server still sends desktop CSS** | 某些網站會使用 JavaScript 來偵測裝置,而不僅僅依賴標頭。 | 如有需要,亦可注入 viewport meta 標籤。 | + +只要留意上述要點,你就不會常碰到模擬結果與預期不符的情況。 + +## 擴充 Sandbox – 後續步驟 + +既然你已掌握 **如何設定自訂使用者代理** 與 **如何設定 DPR**,可以進一步嘗試: + +- **變更螢幕尺寸** 以模擬平板或更大的手機。 +- **切換使用者代理**,測試 Android 上的 Chrome(`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`)。 +- **透過 sandbox 的 `setHeaders` 方法** 加入 Cookie 或其他標頭,以進行驗證測試。 +- **使用 `HTMLDocument.renderToFile("output.png")` 捕捉螢幕截圖**,自動比較視覺差異。 + +這些擴充功能讓你在 IDE 中即可建構完整的測試環境,無需離開開發工具。 + +--- + +## 結論 + +我們已說明如何使用 Aspose.HTML 的 `DocumentSandbox` **模擬 iPhone**,並示範 **如何設定自訂使用者代理**、**如何設定裝置像素比**,以及「**如何設定使用者代理**」與「**如何設定 DPR**」之間的細微差異。完整、可執行的範例一次呈現所有步驟,讓你可以直接複製、調整,立即開始測試行動版布局。 + +不妨試試看——更換螢幕尺寸、切換不同的使用者代理,觀察頁面如何回應。掌握這些設定後,除錯響應式設計將變得輕而易舉,省下大量在實體裝置上追蹤錯誤的時間。 + +有任何問題或想分享自己的變化嗎?歡迎在下方留言,祝模擬愉快! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/advanced-usage/_index.md b/html/hungarian/java/advanced-usage/_index.md index 0731111f5..2bfbe1563 100644 --- a/html/hungarian/java/advanced-usage/_index.md +++ b/html/hungarian/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Tanulja meg, hogyan állíthatja be a PDF oldalméretet az Aspose.HTML for Java Ismerje meg, hogyan állíthatja be az XPS oldalméretet az Aspose.HTML for Java segítségével. Könnyedén szabályozza XPS dokumentumai kimeneti méreteit. ### [JavaScript futtatása Java-ban – Teljes útmutató](./how-to-run-javascript-in-java-complete-guide/) Ismerje meg, hogyan integrálhatja és futtathatja a JavaScript kódot Java alkalmazásokban Aspose.HTML segítségével. +### [top level await példa – Await delay használata JavaScriptben](./top-level-await-example-using-await-delay-in-javascript/) +Ismerje meg, hogyan használhatja a top‑level await‑ot és az await delay‑t JavaScriptben az Aspose.HTML segítségével. --- diff --git a/html/hungarian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/hungarian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..da7984630 --- /dev/null +++ b/html/hungarian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,171 @@ +--- +category: general +date: 2026-03-26 +description: Top‑level await példa, amely élő demóban mutatja be az await delay JavaScriptet, + a számláló növelő osztályt és a nyilvános osztálymezőket JavaScriptben. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: hu +og_description: Felső szintű await példa, amely bemutatja az await delay JavaScript-et, + a számláló növelő osztályt és a nyilvános osztálymezőket JavaScriptben egy tömör + útmutatóban. +og_title: Felső szintű await példa – Await késleltetés használata JavaScriptben +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: top level await példa – Await késleltetés használata JavaScriptben +url: /hu/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await példa – await delay használata JavaScriptben + +Gondolkodtál már azon, hogyan lehet megállítani egy modul végrehajtását anélkül, hogy mindent egy async IIFE‑be csomagolnál? Erre pontosan a **top level await példa** szolgál. Ebben az útmutatóban egy apró weboldalon keresztül mutatjuk be, hogyan használjuk az `await delay javascript`‑et a munka elhalasztásához, majd hogyan hozunk létre egy `increment counter class`‑t, amely a **public class fields javascript**‑et használja. A végére egy teljes, másol‑és‑beilleszthető kódrészletet kapsz, amely bármely modern böngészőben fut. + +Mindent lefedünk, a nyilvános mezővel rendelkező osztály definiálásától a egyszerű promise‑alapú késleltető segédfüggvény összekötéséig. Nincs külső könyvtár, nincs build lépés – csak tiszta HTML, egy ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Várható konzolkimenet + +``` +Counter class initialized +Final count: 1 +``` + +Ha a DevTools‑ban nyitod meg az oldalt, a statikus‑blokk üzenetnek **előbb** kell megjelennie, mint a késleltetés befejeződik, ezzel bizonyítva, hogy az osztály előbb lett kiértékelve. + +## 5. lépés – Miért használjunk nyilvános osztálymezőket a konstruktor helyett? + +Lehet, hogy azt kérdezed, miért nem írtuk így: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Mindkét megközelítés működik, de a **public class fields javascript** tisztább, deklaratívabb szintaxist biztosít. A mező egyszer definiálódik, nem minden konstruktorhívásnál, ami olvashatóbbá teszi a kódot, ha az osztály nagyobb lesz. Emellett a statikus blokkok nem helyezhetők konstruktorba, így az inicializációs logika szétválasztása természetesebb. + +## 6. lépés – A példa adaptálása valós alkalmazásokhoz + +Éles környezetben gyakran több számlálóra lesz szükség. Néhány gyors ötlet: + +- **Több számláló:** Tárold őket egy `Map`‑ben, amelynek kulcsa egy azonosító. +- **Állandó állapot:** Cseréld le a `console.log`‑ot `localStorage` írásokra. +- **Aszinkron inicializáció:** Használd a statikus blokkot konfiguráció lekérésére a szerverről, mielőtt bármely példány létrejönne. + +Ezek a minták továbbra is profitálnak a top‑level await‑ból, mivel egyszer le tudod kérni az adatot a modul betöltésekor, és garantálhatod, hogy minden fogyasztó számára készen áll. + +## Gyakran Ismételt Kérdések + +**Q: Blokkolja a top‑level await a többi modult?** +A: Nem. Minden modul önállóan fut. Csak az a modul, amelyik await‑ot tartalmaz, szünetel; a többi modul továbbra is párhuzamosan töltődik. + +**Q: Mi van, ha a késleltető promise elutasítódik?** +A: A nem kezelt elutasítás megszakítja a modul kiértékelését, és hibaként jelenik meg a konzolon. Ha elegáns visszaesést szeretnél, csomagold az await‑ot `try…catch`‑be. + +**Q: Kötelező a `static` kulcsszó?** +A: A számláló maga számára nem, de a statikus blokk kényelmes módja annak, hogy a kód *egyszer* fusson le betöltéskor – ideális naplózáshoz vagy funkció‑detektáláshoz. + +## Összegzés + +Épp most építettél egy **top level await példát**, amely bemutatja az `await delay javascript`‑et, egy **increment counter class**‑t, és a **public class fields javascript** erejét. A teljes, futtatható kódrészlet fent található, és a konzolkimenet bizonyítja, hogy a statikus blokk a késleltetett kód előtt fut le. + +Innen tovább kísérletezhetsz összetettebb async folyamatokkal, kicserélheted a késleltetést egy valódi API‑hívásra, vagy bővítheted az osztályt további metódusokkal. Ne feledd, a modern JavaScript lehetővé teszi, hogy a modulokat elsőrendű async entitásként kezeld – extra csomagolók nélkül. + +Boldog kódolást, és nyugodtan oszd meg a saját változataidat a kommentekben. Ha hasznosnak találtad ezt az útmutatót, oszd meg egy kollégáddal, aki még küzd az async mintákkal! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/conversion-html-to-other-formats/_index.md b/html/hungarian/java/conversion-html-to-other-formats/_index.md index 1c7d52b93..540dcef2b 100644 --- a/html/hungarian/java/conversion-html-to-other-formats/_index.md +++ b/html/hungarian/java/conversion-html-to-other-formats/_index.md @@ -91,12 +91,16 @@ Könnyedén konvertálja a HTML‑t MHTML‑re az Aspose.HTML for Java segítsé Ismerje meg, hogyan konvertálhatja könnyedén a HTML‑t XPS‑re az Aspose.HTML for Java használatával. Készítsen többplatformos dokumentumokat egyszerűen. ### [Markdown átalakítása HTML-re](./convert-markdown-to-html/) Konvertálja a Markdown‑t HTML‑re Java‑ban zökkenőmentesen az Aspose.HTML for Java segítségével. Kövesse lépésről‑lépésre útmutatónkat, hogy egyszerűsítse dokumentumkonverziós igényeit. +### [HTML átalakítása Markdownra Java‑ban – Az eredeti formázás megőrzése](./convert-html-to-markdown-in-java-preserve-original-formattin/) ### [SVG átalakítása képre](./convert-svg-to-image/) Ismerje meg, hogyan konvertálhatja az SVG‑t képekké Java‑ban az Aspose.HTML‑el. Átfogó útmutató a magas minőségű kimenethez. ### [SVG átalakítása PDF-re](./convert-svg-to-pdf/) Konvertálja az SVG‑t PDF‑re Java‑ban az Aspose.HTML‑el. Zökkenőmentes megoldás a magas minőségű dokumentumkonverzióhoz. ### [SVG átalakítása XPS-re](./convert-svg-to-xps/) Ismerje meg, hogyan konvertálhatja az SVG‑t XPS‑re az Aspose.HTML for Java segítségével. Egyszerű, lépésről‑lépésre útmutató a zökkenőmentes átalakításokhoz. +### [Egyedi méretű PDF létrehozása – HTML PDF-re konvertálás Aspose-szal](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +### [PDF létrehozása HTML-ből Java-ban – Párhuzamos kötegelt konverziós útmutató](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Tanulja meg, hogyan konvertálhat több HTML fájlt egyszerre PDF‑re Java‑ban párhuzamosan az Aspose.HTML segítségével. ## Gyakran Ismételt Kérdések diff --git a/html/hungarian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/hungarian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..a6a68d5b9 --- /dev/null +++ b/html/hungarian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-26 +description: Konvertálja a HTML-t markdown formátumba, és generáljon markdown fájlt + az eredeti formázás megőrzésével az Aspose HTML konverzió segítségével Java-ban. + Tanulja meg lépésről lépésre. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: hu +og_description: Konvertálja gyorsan a HTML-t markdown formátumba, generáljon markdown + fájlt, és tartsa meg az eredeti formázást az Aspose HTML konverzióval Java-ban. +og_title: HTML konvertálása Markdownra Java-ban – Formázás megőrzése +tags: +- Aspose +- Java +- Markdown +title: HTML konvertálása Markdown-re Java-ban – Az eredeti formázás megőrzése +url: /hu/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML konvertálása Markdown-re Java‑ban – Az eredeti formázás megőrzése + +Szükséged volt már **HTML‑t Markdown‑re konvertálni**, de aggódtál, hogy elvesznek a szóközök, táblázatok vagy beágyazott címkék? Nem vagy egyedül. Sok fejlesztő ütközik ebbe a problémába, amikor egy weboldal tartalmát egy tiszta, verzió‑kezelés‑barát formátumba akarja átvinni. A jó hír? Néhány Java‑sor és az Aspose HTML segítségével **markdown fájlt generálhatsz**, amely pontosan úgy néz ki, mint a forrás, a whitespace‑tel együtt. + +Ebben az útmutatóban végigvezetünk a teljes folyamaton: egy összetett HTML‑fájl betöltése, a konverzió beállítása úgy, hogy **megőrizze az eredeti formázást**, majd a kimenet írása a `preserved.md` fájlba. A végére egy futtatható kódrészletet kapsz, megérted, *miért* fontos minden beállítás, és tudni fogod, hogyan adaptáld a kódot speciális esetekre, mint egyedi CSS vagy beágyazott szkriptek. + +## Amire szükséged lesz + +- Java 17 (vagy bármely friss JDK) – az API Java 8‑tól működik, de az újabb verziók jobb teljesítményt nyújtanak. +- Aspose HTML for Java könyvtár (23.11 vagy újabb verzió). Maven Central‑ról szerezhető be: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Egy minta HTML‑fájl (`complex.html`), amely tartalmaz címsorokat, táblázatokat, kódrészleteket és esetleg néhány beágyazott `` stílust. +- Egy kis türelem és a kísérletezésre való hajlandóság. + +Ennyi. Nincs külső eszköz, nincs parancssori hack – csak tiszta Java kód. + +## 1. lépés: A forrás HTML dokumentum betöltése + +Az első dolog, amit teszünk, egy `HTMLDocument` példány létrehozása, amely a forrásfájlra mutat. Az Aspose HTML a fájlt DOM‑ként kezeli, ami azt jelenti, hogy a konverzió előtt is megvizsgálhatod vagy módosíthatod, ha szükséges. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Miért fontos:** Így a dokumentum betöltése biztosítja, hogy minden hivatkozott erőforrás (stíluslapok, képek) a fájl helyéhez relatívan legyen feloldva. Ha ezt a lépést kihagyod, és egy nyers stringet adsz át, elveszítheted a külső CSS‑t, amely a szóközöket befolyásolja – éppen azt a dolgot, amit **meg akarunk őrizni az eredeti formázásban**. + +## 2. lépés: Markdown konverziós beállítások konfigurálása + +Az Aspose HTML egy `MarkdownConversionOptions` osztályt biztosít. Számunkra a kulcsfontosságú tulajdonság a `setPreserveOriginalFormatting(true)`. Engedélyezve a konverter megtartja a sortöréseket, a behúzásokat és még a nyers HTML‑részleteket is, amelyeket a markdown natívan nem képes ábrázolni. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro tipp:** Ha később azt veszed észre, hogy bizonyos beágyazott stílusok le vannak vágva, meghívhatod a `markdownOptions.setIncludeHtml(true)` metódust, hogy a nyers HTML blokkokat kényszerítve belehelyezd a markdown kimenetbe. + +## 3. lépés: A konverzió végrehajtása + +Most átadjuk a `HTMLDocument`‑et, a célfájl útvonalát és a beállításainkat a statikus `Converter.convertHTML` metódusnak. A metódus a háttérben elvégzi a nehéz munkát. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Amikor a hívás befejeződik, a `preserved.md` a forrásfájl mellett fog megjelenni. Nyisd meg bármely szerkesztőben – észre fogod venni, hogy az eredeti sortörések és a táblázat igazítások megmaradtak. + +## 4. lépés: Az eredmény ellenőrzése (opcionális, de ajánlott) + +Egy gyors ellenőrzés megakadályozza a későbbi finom hibákat. Beolvashatod a fájlt Java‑ban, és kiírhatod az első néhány sort, vagy egyszerűen megnyithatod VS Code‑ban. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +A kimenet valami ilyesmi lesz: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +A `` címke még mindig jelen van, mert a markdown natív táblázat szintaxisa nem tudta pontosan visszaadni a stílust – köszönhetően a `preserve original formatting` beállításnak. + +## 5. lépés: Összeállítás – Teljes, futtatható példa + +Az alábbiakban a komplett, azonnal futtatható osztály látható. Cseréld le a `YOUR_DIRECTORY`‑t a saját géped tényleges útvonalára. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Futtasd a programot `mvn exec:java`‑val vagy a kedvenc IDE‑ddel, és egy **markdown fájlt generálsz**, amely tükrözi az eredeti HTML elrendezést. + +## Gyakori kérdések és speciális esetek + +### Működik-e külső CSS fájlokkal? + +Igen. Amíg a CSS fájlok elérhetők relatív útvonalakon, az Aspose HTML automatikusan betölti őket. Ha távoli URL‑ről húzol HTML‑t, előfordulhat, hogy egy egyedi `ResourceLoadingOptions` objektumot kell beállítanod a hálózati hozzáférés engedélyezéséhez. + +### Mit tegyek, ha nem akarok nyers HTML‑t a markdown‑ban? + +Egyszerűen váltsd át a beállítást: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +A konverter ekkor megpróbál mindent tiszta markdown szintaxisba fordítani, ami esetleg a layout hűségét csökkentheti. + +### Konvertálhatok-e stringet fájl helyett? + +Természetesen. Használd azt a konstruktort, amely egy `String`‑et fogad: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Ezután a `doc`‑ot ugyanúgy átadhatod a `Converter.convertHTML`‑nek, mint korábban. + +### Miben különbözik ez más könyvtáraktól, mint a Flexmark vagy a pandoc? + +A legtöbb nyílt forráskódú eszköz a HTML‑t egyszerű szövegként kezeli, és agresszívan eltávolítja a whitespace‑t. Az Aspose HTML `preserveOriginalFormatting` zászlója egy **proprietary feature**, amely tiszteletben tartja a forrás whitespace‑ét, sortöréseit, sőt a nem támogatott címkéket is nyers HTML blokkokként hagyja meg. Ezért hangsúlyozzuk az **aspose html conversion** használatát Java fejlesztőknek, akik pontos hűséget igényelnek. + +## Tippek a termelésben való használathoz + +- **Kötegelt feldolgozás:** Csomagold a konverziós logikát egy ciklusba, hogy egyszerre több HTML fájlt is kezelj. +- **Hibakezelés:** Kapd el az `IOException`‑t és a `com.aspose.html.exceptions.AssertionFailedException`‑t, hogy hiányzó erőforrások esetén megfelelő üzenetet kapj. +- **Teljesítmény:** Egy nagy oldal fragmentumainak konvertálásakor újrahasználd ugyanazt a `HTMLDocument` példányt; a könyvtár cache‑eli a feldolgozott CSS‑t. + +## Összegzés + +Megmutattuk, hogyan **konvertálhatod HTML‑t Markdown‑re** Java‑ban, miközben a kimenet **megőrzi az eredeti formázást**. A rövid, önálló kódrészlet bemutatja a teljes munkafolyamatot – a HTML dokumentum betöltésétől a `MarkdownConversionOptions` konfigurálásáig, a konverzió végrehajtásáig és az eredmény ellenőrzéséig. Az Aspose HTML robusztus API‑jával most már **markdown fájlt generálhatsz** programozottan, legyen szó statikus weboldal generátorról, dokumentációs pipeline‑ról vagy tartalom‑migrációs eszközről. + +A következő lépések lehetnek: + +- **html to markdown java** használata tömeges migrációkhoz egy weboldalon. +- A konverziós beállítások finomhangolása GitHub‑flavored markdown táblázatok előállításához. +- Ennek a megközelítésnek a kombinálása egy CI/CD lépéssel, amely automatikusan frissíti a dokumentációt, amikor a forrás HTML változik. + +Kísérletezz nyugodtan, és hagyj egy megjegyzést, ha elakadnál. Boldog kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/hungarian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..60837d6a9 --- /dev/null +++ b/html/hungarian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,196 @@ +--- +category: general +date: 2026-03-26 +description: Készíts egyedi méretű PDF-et HTML-ből az Aspose.HTML for Java segítségével. + Tanulja meg, hogyan konvertálhat HTML-t PDF-be, és állíthatja be a PDF oldalméretét + néhány lépésben. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: hu +og_description: PDF egyedi méret létrehozása HTML-ből az Aspose-szal. Ez az útmutató + megmutatja, hogyan konvertálhat HTML-t PDF-be, hogyan változtathatja meg a PDF oldal + méretét, és hogyan állíthatja be könnyedén a PDF oldal méretét. +og_title: PDF egyedi méret létrehozása – Gyors útmutató a HTML PDF-re konvertálásához +tags: +- aspose +- java +- pdf +- html +title: PDF egyedi méret létrehozása – HTML PDF-re konvertálása az Aspose-szal +url: /hu/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF egyedi méret létrehozása – HTML PDF‑re konvertálása Aspose‑szal + +Szükséged volt már **PDF egyedi méret** létrehozására egy HTML‑fájlból? Ebben az útmutatóban megmutatjuk, hogyan **konvertálhatod a HTML‑t PDF‑re**, és állíthatod be a PDF oldalméretét az Aspose.HTML for Java segítségével. + +Ha számlákat, jelentéseket vagy e‑könyveket készítesz, a pontos oldalméretek kulcsfontosságúak – különben a layout eltolódik vagy levágódik. + +Lépésről lépésre végigvezetünk a forrás‑HTML betöltésétől a margók finomhangolásáig, és egy használatra kész PDF‑et adunk át. Nincs homályos hivatkozás, csak egy teljes, futtatható példa, amit ma másolhatsz‑beilleszthetsz. + +## Amire szükséged lesz + +- **Java 17** (vagy bármely friss JDK). +- **Aspose.HTML for Java** JAR‑ok – a legújabb verziót a Maven tárolóból vagy az Aspose weboldaláról töltheted le. +- Egy egyszerű `input.html` fájl, amelyet egy általad irányított mappában helyezel el. +- Egy IDE vagy szövegszerkesztő – általában IntelliJ IDEA‑t használok, de az Eclipse is tökéletesen működik. + +Ezek a feltételek biztosítják, hogy ne kapj “class not found” hibát a folyamat közepén. + +Most merüljünk el a részletekben. + +![Create PDF custom size example](/images/create-pdf-custom-size.png "Screenshot showing a PDF generated with custom page size and margins – create pdf custom size") + +## PDF egyedi méret létrehozása – Alaplépések + +Az alábbiakban a teljes Java programot láthatod, amelyet a végén kapsz. Nyugodtan másold be egy `ConvertHtmlToPdfCustomPage.java` nevű fájlba, és futtasd, miután hozzáadtad az Aspose függőségeket a projektedhez. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### 1. lépés – HTML konvertálása PDF‑re: Dokumentum betöltése + +Az első dolog, amit teszünk, **betölti a HTML‑t**, amelyet PDF‑vé akarunk alakítani. +`HTMLDocument` beolvassa a fájlt, feloldja a relatív hivatkozásokat, és felépít egy DOM‑ot, amelyet az Aspose renderelni tud. + +> **Miért fontos:** Ha a HTML CSS‑t vagy képeket hivatkozik, az Aspose a fájl útvonala alapján tölti le őket. Egy abszolút útvonal (`YOUR_DIRECTORY/input.html`) használata elkerüli a “file not found” meglepetéseket. + +### 2. lépés – PDF oldalméret módosítása: Opciók beállítása + +Itt hozunk létre egy `PdfConversionOptions` objektumot. +- `setPageSize(PageSize.A4)` azt mondja az Aspose‑nak, hogy a szabványos A4 méretet (210 × 297 mm) használja. +- `setPageOrientation(...)` elforgatja az oldalt, ha tájolásra van szükség. +- `setMargins(new Margin(20, 20, 20, 20))` minden oldalra 20 pont margót ad. + +A `PageSize.A4` helyett használhatod a `PageSize.LETTER`‑t vagy akár **egyedi méretet** is, ha egy `SizeF` objektumot adsz meg, például: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Pro tipp:** Egy pont 1/72 hüvelyknek felel meg. Ha milliméterben gondolkodsz, szorozd meg 2,83465‑tel a pontértékhez. + +### 3. lépés – PDF generálása HTML‑ből: Konverzió futtatása + +A `Converter.convertHTML` végzi a nehéz munkát. Átveszi a betöltött `HTMLDocument`‑et, a kimeneti útvonalat és a most beállított opciókat. + +Ha **dinamikusan** szeretnéd beállítani a PDF oldalméretet a tartalom alapján, a lépés előtt kiszámíthatod a szükséges méreteket, és ennek megfelelően módosíthatod a `pdfOptions`‑t. + +### 4. lépés – Az eredmény ellenőrzése + +A `System.out.println` sor opcionális, de gyors visszajelzést ad, ha a programot konzolból futtatod. A futtatás után nyisd meg a `custom_page.pdf`‑t – egy A4 álló PDF‑et kell látnod, egyenletes 20 pont margóval, pontosan úgy, ahogy megadtuk. + +## HTML konvertálása PDF‑re – Gyakori variációk + +### Fájlútvonal helyett stream használata + +Előfordulhat, hogy nincs fizikai fájl; a HTML egy adatbázisból vagy API‑ból érkezik. Ebben az esetben a stringet egy `ByteArrayInputStream`‑be csomagolhatod: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +A második argumentum a relatív erőforrások feloldásához használt alap‑URL. + +### Oldalorientáció módosítása + +Ha a jelentésed széles, válts tájolásra: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Margók finomhangolása + +A margók lebegőpontos értékeket is elfogadnak, így beállíthatsz 0,5 pt‑t egy szál‑vékony kerethez: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Nagy HTML‑fájlok kezelése + +Masszív dokumentumok esetén fontold meg a **memóriahatékony streaming** engedélyezését: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Ez azt mondja az Aspose‑nak, hogy a köztes adatokat ideiglenes fájlokba írja, a RAM helyett. + +## PDF oldalméret beállítása – Szélsőséges esetek és buktatók + +- **Hiányzó betűkészletek:** Ha a HTML egy, a szerveren nem telepített egyedi betűtípust használ, a PDF egy alapértelmezett betűtípusra fog visszaesni. A betűtípust beágyazhatod a `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` segítségével. +- **Képméret csökkentése:** A nagy felbontású képek felrobbanthatják a PDF‑et. Használd a `pdfOptions.setImageResolution(150);`‑t a felbontás csökkentéséhez, miközben megőrzöd a minőséget. +- **CSS kompatibilitás:** Nem minden CSS‑tulajdonság támogatott teljes mértékben. Maradj a szabványos elrendezési technikáknál (a flexbox működik, de a grid‑nek lehetnek sajátosságai). +- **Útvonal jogosultságok:** Győződj meg róla, hogy a folyamatnak írási joga van a `YOUR_DIRECTORY`‑hez. Ellenkező esetben `IOException` keletkezik. + +## Várt kimenet + +A program futtatása után a PDF a következőhöz hasonlóan néz ki (konceptuális ábra): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Oldalméret: **A4** (210 × 297 mm). +- Orientáció: **Álló**. +- Margók: **20 pt** minden oldalon. + +Nyisd meg a fájlt bármely PDF‑olvasóval (Adobe Reader, Chrome, stb.) a megerősítéshez. + +## Összegzés + +Most már tudod, hogyan **hozhatsz létre PDF egyedi méretet** egy HTML forrásból az Aspose.HTML for Java segítségével. Az útmutató lefedte a teljes folyamatot: **HTML konvertálása PDF‑re**, **PDF oldalméret módosítása**, **PDF oldalméret beállítása**, és **PDF generálása HTML‑ből** egyedi margókkal. + +Nyugodtan kísérletezz – cseréld le a `PageSize.LETTER`‑t jogi méretre, finomítsd a margókat, vagy ágyazz be saját betűtípusokat. Következő lépésként felfedezheted a **vízjelek hozzáadását**, **PDF titkosítását**, vagy **tömeges HTML‑fájlok feldolgozását**. Mindezek a témák ugyanazokra az alapelvekre épülnek, amelyeket most megtanultál. + +Van kérdésed egy konkrét szélsőséges esettel kapcsolatban? Írj egy megjegyzést alul, és segítek a hibaelhárításban. Boldog kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/hungarian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..a1b77a95e --- /dev/null +++ b/html/hungarian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-26 +description: Készíts PDF-et HTML-ből gyorsan egy fix szálkészlettel. Tanuld meg a + kötegelt HTML‑PDF konvertálást, és futtass párhuzamos feladatokat Java‑ban. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: hu +og_description: Készíts PDF-et HTML-ből gyorsan egy fix szálkészlettel. Tanuld meg, + hogyan kötegeld az HTML-t PDF-re, és futtass párhuzamos feladatokat Java‑ban. +og_title: PDF létrehozása HTML-ből Java-ban – Párhuzamos kötegelt konvertálási útmutató +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: PDF létrehozása HTML‑ből Java‑ban – Párhuzamos kötegelt konverzió útmutató +url: /hu/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF létrehozása HTML-ből Java-ban – Párhuzamos kötegelt konverziós útmutató + +Valaha is szükséged volt **PDF létrehozására HTML-ből**, de úgy érezted, hogy egy egy‑szálas konverzió örökké lassan halad? Nem vagy egyedül. Sok valós projektben tucatnyi HTML jelentést kapunk, amelyeket a nap végére PDF‑vé kell alakítani, és egyesével feldolgozni egyszerűen nem praktikus. + +Ezért mutatja meg ez a tutorial, hogyan **konvertálhatod a HTML-t PDF‑re** egy **fix szálú pool** használatával, lehetővé téve, hogy **HTML‑t PDF‑re kötegben** alakítsd, és **párhuzamos feladatokat futtass** anélkül, hogy izzadnál. A végére egy teljes, azonnal futtatható programod lesz, amely egy HTML fájlokból álló mappát PDF‑ekké alakít át az idő töredékében. + +## Amit megtanulsz + +* A pontos Maven/Gradle függőség az Aspose.HTML-hez (az a könyvtár, amely a nehéz munkát végzi). +* Miért a **fix szálú pool** a legjobb választás CPU‑igényes konverziós feladatokhoz. +* Hogyan listázhatod a forrásfájlokat, hogy a folyamat több száz dokumentumra is skálázhasson. +* A pontos kód, amelyet beilleszthetsz az IDE-be – hiányzó importok nélkül, “TODO” megjegyzések nélkül. +* Tippek a hibakezeléshez, a pool méretének finomhangolásához és a kimenet ellenőrzéséhez. + +Nem szükséges előzetes ismeret az Aspose.HTML-ről, csak egy alap Java környezet és a kísérletezésre való hajlandóság. Kezdjünk bele. + +--- + +![Diagram, amely egy fix szálú pool-t mutat, amely több HTML fájlt konvertál párhuzamosan PDF‑re – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Kép alternatív szövege: create pdf from html – párhuzamos konverziós diagram* + +## 1. lépés: Projekt előkészítése és Aspose.HTML hozzáadása + +Először is—a projektednek szüksége van az Aspose.HTML könyvtárra. Ha Maven-t használsz, helyezd ezt a `pom.xml`‑be: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle-hez egyszerűen: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Miért Aspose.HTML? Ez egy kereskedelmi könyvtár, de egy **convert html to pdf** API-t biztosít, amely alapból kezeli a CSS-t, a JavaScript-et és a komplex elrendezéseket. Ha inkább nyílt forráskódú alternatívát szeretnél, később kicserélheted a `Converter.convertHTML` hívást, de a szálkezelési logika változatlan marad. + +> **Pro tipp:** Tartsd a verziószámot szinkronban a hivatalos kiadási jegyzékekkel; az újabb verziók gyakran javítják a renderelési sebességet, ami fontos, ha sok feladatot futtatsz párhuzamosan. + +## 2. lépés: Fix szálú pool létrehozása párhuzamos konverzióhoz + +Amikor egy köteg fájlod van, nem szeretnél korlátlan számú szálat indítani—az operációs rendszer túlterhelődhet. Egy **fix szálú pool** előre meghatározott szintű párhuzamosságot biztosít, miközben a memóriahasználatot kordában tartja. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Miért négy? Egy tipikus 8‑magos gépen a magok fele szabad maradhat I/O-ra és az OS-nek. Kísérletezhetsz: a `Runtime.getRuntime().availableProcessors()` visszaadja a magok számát, és egy általános szabály a `magok / 2`. Ne feledd, minden konverzió CPU‑igényes, így a magok számánál több szál általában rontja a teljesítményt. + +## 3. lépés: Gyűjtsd össze a konvertálni kívánt HTML fájlokat + +A kirakós következő darabja a **batch html to pdf** lista. Kódolhatsz egy tömböt (ahogy a példában), vagy beolvashatsz egy könyvtárat. Íme egy rugalmas változat, amely minden `.html` fájlt beolvas egy mappából: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Ez a megközelítés lehetővé teszi, hogy új fájlokat helyezz a mappába, és a program automatikusan feldolgozza őket – tökéletes egy éjszakai kötegelt feladathoz. + +## 4. lépés: Küldj konverziós feladatot minden fájlhoz (párhuzamos feladatok futtatása) + +Most jön a szórakoztató rész: minden fájl **Runnable** (vagy `Callable`) lesz, amelyet a pool végrehajt. Az alábbi kód tükrözi az eredeti példát, de hibakezelést és egy kis naplóüzenetet ad hozzá. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Miért csomagoljuk a konverziót try‑catch-be?** Amikor **párhuzamos feladatokat futtatsz**, egyetlen hibás HTML fájl leállíthatja az egész végrehajtót. A kivételek helyi elkapásával biztosítjuk, hogy a többi köteg tovább fusson. + +## 5. lépés: Az executor leállítása és a befejezésre várakozás + +Miután minden feladatot benyújtottad, el kell mondanod a poolnak, hogy ne fogadjon új munkát, majd várni kell, amíg minden befejeződik. Ez garantálja, hogy a JVM ne lépjen ki idő előtt. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Ha hatalmas mappád van (ezrek fájl), növelheted a timeout-ot vagy megvalósíthatsz egy előrehaladási monitorozót. A lényeg a **kifinomult leállítás** – ez a termelésre kész kód jellemzője. + +## Teljes működő példa + +Mindent összerakva, itt egy önálló osztály, amelyet beilleszthetsz a `src/main/java` könyvtárba és futtathatsz: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Várható kimenet** (példa): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Ha megnyitod a generált `.pdf` fájlokat, látni fogod, hogy az eredeti HTML elrendezés megmaradt – betűtípusok, táblázatok, sőt az alapvető JavaScript-alapú tartalom is helyesen renderelődik. + +## Gyakori kérdések és szélhelyzetek + +| Kérdés | Válasz | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/conversion-html-to-various-image-formats/_index.md b/html/hungarian/java/conversion-html-to-various-image-formats/_index.md index 81fb522d5..bc78a656b 100644 --- a/html/hungarian/java/conversion-html-to-various-image-formats/_index.md +++ b/html/hungarian/java/conversion-html-to-various-image-formats/_index.md @@ -100,6 +100,10 @@ Ismerje meg, hogyan konvertálhat HTML‑t PNG képekké Java‑ban az Aspose.HT Tanulja meg, hogyan konvertálhat HTML‑t TIFF‑be az Aspose.HTML for Java segítségével. Lépésről‑lépésre útmutató a hatékony dokumentumkezeléshez. ### [HTML konvertálása WebP‑be – Teljes Java útmutató az Aspose.HTML‑el](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Ismerje meg, hogyan konvertálhat HTML‑t WebP‑be Java‑ban az Aspose.HTML használatával. Részletes, lépésről‑lépésre útmutató a WebP konverzióhoz. +### [HTML konvertálása WebP‑be – Teljes Java útmutató](./convert-html-to-webp-complete-java-guide/) +Fedezze fel, hogyan konvertálhat HTML‑t WebP‑be Java‑ban az Aspose.HTML‑el. Részletes, lépésről‑lépésre útmutató a WebP képek előállításához. +### [Multipage TIFF létrehozása SVG‑ből Java‑ban – Lépésről‑lépésre útmutató](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Ismerje meg, hogyan hozhat létre többoldalas TIFF fájlt SVG‑ből Java‑ban az Aspose.HTML segítségével. Részletes útmutató a konverzióhoz. ## Gyakran ismételt kérdések diff --git a/html/hungarian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/hungarian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..1025982ce --- /dev/null +++ b/html/hungarian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-26 +description: Konvertálja a HTML-t gyorsan WebP formátumba az Aspose.HTML segítségével. + Ismerje meg, hogyan menthet HTML-t WebP-ként, hogyan renderelhet HTML-t WebP-ként, + és hogyan generálhat WebP-t HTML-ből néhány lépésben. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: hu +og_description: Konvertálja gyorsan a HTML-t WebP formátumba az Aspose.HTML segítségével. + Ez az útmutató bemutatja, hogyan lehet HTML-t WebP-ként renderelni, és hogyan generálhat + WebP-t Java-ban a HTML-ből. +og_title: HTML konvertálása WebP-re – Teljes Java útmutató +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML konvertálása WebP-re – Teljes Java útmutató +url: /hu/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML konvertálása WebP‑re – Teljes Java útmutató + +Valaha is szükséged volt **HTML WebP‑re konvertálására**, de nem tudtad, melyik könyvtár tudja ezt fejfájás nélkül megoldani? Nem vagy egyedül. Sok fejlesztőre akad ez a probléma, amikor dinamikus oldalakból generált könnyű képeket szeretne kiszolgálni. A jó hír? Az Aspose.HTML for Java‑val *HTML‑t mentheted WebP‑ként* egyetlen metódushívással, és az egész folyamat olyan sima, mint a vaj. + +Ebben az útmutatóban mindent végigvázolunk, amit tudnod kell: a Aspose.HTML függőség beállításától a tömörítési beállítások finomhangolásáig, egészen addig, hogy a HTML dokumentumot WebP fájlként rendereljük, amit a weben szolgálhatsz ki. A végére képes leszel **HTML‑t WebP‑ként renderelni**, **WebP‑t generálni HTML‑ből**, és megérted a „miértet” minden konfigurációs opció mögött. Nincs külső szkript, nincs parancssori akrobátika – csak tiszta Java kód. + +## Előfeltételek + +- Java 8 vagy újabb telepítve (a könyvtár támogatja a JDK 8+ verziót). +- Maven vagy Gradle a függőségkezeléshez (a Maven példát mutatjuk). +- Egy egyszerű HTML fájl (`input.html`), amelyet WebP képpé szeretnél alakítani. +- Egy általad választott IDE vagy szövegszerkesztő – az IntelliJ IDEA remekül működik, de bármelyik megfelel. + +Megvan minden? Remek, kezdjünk bele. + +## 1. lépés: Aspose.HTML hozzáadása a projekthez + +Először is szükséged van az Aspose.HTML könyvtárra a classpath‑on. Ha Maven‑t használsz, helyezd ezt a `pom.xml`‑be: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle esetén így néz ki: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Miért kulcsfontosságú ez a lépés? JAR nélkül a `HTMLDocument`, `Converter` vagy `WebpConversionOptions` osztályok egyike sem létezik, és a fordító `ClassNotFoundException`‑t dob. A függőség hozzáadása emellett betölti a WebP kódoláshoz szükséges natív bináris fájlokat, így nem kell külső DLL‑eket vagy `.so` fájlokat keresned. + +> **Pro tip:** Tartsd naprakészen a függőségeket. Az újabb Aspose kiadások gyakran javítják a WebP tömörítési algoritmusokat és új HTML5 funkciókat támogatnak. + +## 2. lépés: A forrás HTML dokumentum betöltése + +Most, hogy a könyvtár készen áll, betölthetjük a konvertálni kívánt HTML‑t. A `HTMLDocument` osztály beolvassa a fájlt és felépít egy DOM‑ot, amelyet a konverter később renderel. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Vedd észre a „Load the source HTML document” megjegyzést – ez egy emlékeztető, hogy a konvertálás előtt CSS‑t vagy JavaScript‑et is beilleszthetsz, ha az oldal dinamikus stílusra támaszkodik. Ha kihagyod ezt a lépést, a konverternek nincs mit renderelnie, és üres képet kapunk. + +## 3. lépés: WebP konverziós beállítások konfigurálása + +Az Aspose.HTML finomhangolt vezérlést biztosít a kimenet felett. A legtöbb esetben egy **lossy** WebP körülbelül 85‑ös minőségi beállítással jó egyensúlyt teremt a vizuális hűség és a fájlméret között. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Miért válassz lossy‑t? A WebP veszteséges módja prediktív kódolást használ, amely 30‑50 %-kal csökkentheti a fájlméretet a PNG‑hez képest, miközben a legtöbb vizuális részlet megmarad. Ha pixel‑tökéletes eredményre van szükséged (pl. logók esetén), állítsd a `CompressionMode`‑t `Lossless`‑re, és a `quality`‑t 100‑ra. + +## 4. lépés: WebP kép konvertálása és mentése + +A dokumentum és a beállítások készen állnak, a konvertálás maga egyetlen soros kód. A statikus `Converter.convertHTML` metódus elvégzi a nehéz munkát: rendereli a DOM‑ot egy bitmapre, WebP‑ként kódolja, és a lemezre írja a fájlt. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Ennyi! A program befejezése után a `output.webp` a forrás HTML mellett fog megjelenni. Most már közvetlenül egy webszerverről kiszolgálhatod, beágyazhatod egy `` elembe, vagy bármilyen WebP‑t támogató környezetben használhatod. + +## 5. lépés: Az eredmény ellenőrzése (opcionális, de ajánlott) + +Mindig jó ötlet dupla ellenőrzést végezni, hogy a konvertálás sikeres volt-e, és a kép a várt módon néz ki. Megnyithatod a WebP fájlt Chrome‑ban, Firefox‑ban vagy bármelyik, a formátumot támogató képnézőben. Egy gyors programozott ellenőrzéshez kiolvashatod a fájlméretet és a méreteket: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Ha a fájl váratlanul nagy vagy a méretek nem megfelelőek, nézd át újra a **3. lépést**, és finomítsd a `quality`‑t vagy a forrás HTML viewport beállításait. Ne feledd, a WebP tiszteletben tartja a gyökérelem CSS `width`/`height` értékeit, így egy hiányzó `` címke meglepő eredményeket okozhat. + +## Teljes működő példa + +Mindent összegezve, itt a teljes, azonnal futtatható Java osztály: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Mentsd el ezt a fájlt `HtmlToWebp.java` néven, cseréld le a `YOUR_DIRECTORY`‑t a tényleges mappára, fordítsd `javac`‑vel, és futtasd `java HtmlToWebp`‑val. A konzolon látnod kell a fájlméretet és a méreteket megerősítő üzenetet, majd a végső sikerüzenetet. + +![HTML‑ről WebP‑re konvertálás példája](/images/convert-html-to-webp.png "Képernyőkép egy HTML‑ből generált WebP képről – HTML‑ről WebP‑re konvertálás") + +## Gyakori kérdések és speciális esetek + +### Mi van, ha a HTML külső erőforrásokra (CSS, képek) hivatkozik? + +Az Aspose.HTML automatikusan feloldja a relatív URL‑eket az `input.html` helye alapján. Csak győződj meg róla, hogy az erőforrások elérhetők a fájlrendszerről vagy egy webszerverről. Ha egyedi alap‑URL‑t kell beillesztened, használd a `HTMLDocument` túlterhelt konstruktorát, amely egy `URI` alapot fogad. + +### Generálhatok több WebP képet ugyanabból a HTML‑ből (pl. különböző viewport méretek)? + +Természetesen. A konvertálási logikát egy ciklusba helyezheted, a `webpOptions.setWidth()` és `setHeight()` hívásokat minden egyes alkalommal módosítva, és minden kimenetnek egyedi fájlnevet adva. Ez hasznos reszponzív tervezésnél, amikor mobil és asztali eszközökhöz különböző képméreteket szolgálsz ki. + +### Hogyan válthatok veszteségmentes tömörítésre? + +Cseréld le a következő sort: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +erre: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +A veszteségmentes mód pixel‑tökéletes hűséget garantál, de nagyobb fájlokat eredményez – csak akkor használd, ha feltétlenül szükséges. + +### Működik ez Linux‑on/macOS‑on? + +Igen. Az Aspose.HTML JAR tartalmazza a natív binárisokat Windows, Linux és macOS számára, így ugyanaz a Java kód mindenhol fut. Csak győződj meg róla, hogy a megfelelő JRE telepítve van. + +## Összegzés + +Most megtanultad, **hogyan konvertálj HTML‑t WebP‑re** az Aspose.HTML for Java segítségével, a függőség beállításától a tömörítés finomhangolásáig és az eredmény ellenőrzéséig. Ezzel a tudással **HTML‑t menthetsz WebP‑ként**, **HTML‑t renderelhetsz WebP‑ként**, és **WebP‑t generálhatsz HTML‑ből** futás közben – tökéletes dinamikus képcsővezetékekhez, hírlevelekhez vagy bármilyen olyan szituációhoz, ahol a könnyű vizuális elemek számítanak. + +Mi a következő? Kísérletezz különböző `quality` értékekkel, fedezd fel a `Lossless` módot, vagy integráld ezt a konvertálót egy Spring Boot REST végpontra, hogy a webszolgáltatásod igény szerint WebP képeket adjon vissza. Érdemes lehet egy mappában lévő HTML fájlok kötegelt feldolgozását is megvalósítani, vagy a headless Chrome‑nal kombinálni SVG‑t WebP‑re konvertáláshoz. + +További kérdéseid vannak **HTML konvertálásáról** más nyelveken, vagy segítségre van szükséged egy konkrét speciális eset megoldásához? Írj egy megjegyzést alább, és jó kódolást kívánok! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/hungarian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..ee5303acb --- /dev/null +++ b/html/hungarian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Multipage TIFF létrehozása SVG-ből Java-ban az Aspose.HTML segítségével. + Tanulja meg, hogyan konvertálja az SVG-t TIFF-re, hogyan töltsön be SVG-dokumentumot + Java-ban, és hogyan hozzon létre többoldalas TIFF-fájlokat. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: hu +og_description: Készíts többoldalas TIFF-et SVG-ből Java-ban. Ez az útmutató bemutatja, + hogyan töltsünk be egy SVG-dokumentumot, állítsuk be a TIFF-beállításokat, és generáljunk + veszteségmentes többoldalas TIFF-et. +og_title: Többoldalas TIFF létrehozása SVG-ből Java-ban – Teljes útmutató +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Többoldalas TIFF létrehozása SVG-ből Java-ban – Lépésről‑lépésre útmutató +url: /hu/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Többoldalas TIFF létrehozása SVG-ből Java‑ban – Lépésről‑lépésre útmutató + +Valaha is szükséged volt **többoldalas TIFF** létrehozására SVG‑ből, de nem tudtad, hol kezdjed? Nem vagy egyedül – sok fejlesztő találkozik ezzel a problémával, amikor nyomtatható, veszteségmentes dokumentumra van szükség, amely több oldalon terjed. Ebben az útmutatóban egy teljes, azonnal futtatható megoldáson keresztül vezetünk, amely bemutatja, **hogyan konvertáljuk az SVG‑t TIFF‑re**, hogyan töltsük be az SVG dokumentumot Java‑ban, és hogyan konfiguráljuk a kimenetet, hogy **többoldalas TIFF** fájlokat hozzunk létre LZW tömörítéssel. + +Mindent lefedünk a Aspose.HTML könyvtár beállításától a nagy SVG‑eszközökkel kapcsolatos széljegyek kezeléséig. A tutorial végére egyetlen Java osztályod lesz, amelyet bármely projektbe beilleszthetsz, és azonnal elkezdhetsz többoldalas TIFF‑eket generálni. + +## Amire szükséged lesz + +- **Java Development Kit (JDK) 8+** – a kód a standard Java API‑kat használja. +- **Aspose.HTML for Java** (version 23.5 or later) – ez az egyetlen harmadik‑féltől származó függőség. +- Egy **sample SVG file** (bármilyen vektorgrafika megfelel; `input.svg`‑nek hívjuk). +- Kedvenc IDE‑d vagy egy egyszerű szövegszerkesztő és egy terminál. + +Nem szükséges további build eszköz; a példa `javac`‑el fordítható és `java`‑val futtatható. Ha Maven‑t vagy Gradle‑t részesíted előnyben, egyszerűen add hozzá az Aspose.HTML JAR‑t a projekt classpath‑jához. + +![Többoldalas TIFF példa](create-multipage-tiff.png){alt="többoldalas tiff kimenet"} + +## 1. lépés – SVG dokumentum betöltése (load svg document java) + +Az első dolog, amit meg kell tennünk, az SVG beolvasása egy `HTMLDocument` objektumba. Az Aspose.HTML az SVG fájlokat HTML dokumentumként kezeli, ami egységes API‑t biztosít a konverzióhoz. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Miért fontos:** Az SVG `HTMLDocument`‑ként történő betöltése hozzáférést biztosít a teljes renderelő motorhoz, így minden stílus, betűtípus és beágyazott kép helyesen értelmeződik a konverzió előtt. Ennek a lépésnek a kihagyása és a nyers bájtok közvetlenül a konverterbe való adása gyakran hiányzó elemekhez vagy helytelen színekhez vezet. + +## 2. lépés – TIFF beállítások konfigurálása (how to create multipage tiff) + +Ezután beállítjuk a `TiffConversionOptions` objektumot. Ez az objektum mindent szabályoz a lapelrendezéstől a tömörítésig. Egy valódi többoldalas kimenethez engedélyezzük a `setMultipage(true)`‑t, és az **LZW** tömörítést választjuk, mivel veszteségmentes és széles körben támogatott. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Miért fontos:** Ha kihagyod a `setMultipage(true)`‑t, a könyvtár egyoldalas TIFF‑et generál, eldobva minden további oldalt, amely a SVG‑ből levezethető (például ha a SVG több `` gyökérelemet tartalmaz). Az LZW a fájlméretet ésszerűen tartja, anélkül, hogy a kép pontosságát feláldozná – tökéletes archiválási vagy nyomtatási folyamatokhoz. + +## 3. lépés – Konverzió végrehajtása (how to convert svg to tiff) + +Most történik a nehéz munka. A statikus `Converter.convertSVG` metódus a betöltött dokumentumot, a célútvonalat és a most definiált beállításokat veszi át. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Miért fontos:** A statikus `convertSVG` hívás használata a legegyszerűbb módja a konverzió elindításának. A háttérben az Aspose.HTML a vektoradatot alapértelmezett 96 dpi‑n rasterizálja; ha magasabb minőségre van szükség, a DPI‑t a `tiffOptions.setResolution(...)`‑vel állíthatod. + +## 4. lépés – Az eredmény ellenőrzése + +A konverzió befejezése után érdemes ellenőrizni, hogy a fájl létezik-e, és a várt számú oldalt tartalmazza-e. Egy gyors ellenőrzés bármely, többoldalas TIFF‑et támogató képnézővel elvégezhető (például IrfanView, XnView, vagy akár a Java `ImageIO`‑ja). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Run the program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +A konzolon meg kell jelennie egy sikerüzenetnek, és az `output.tiff` megnyitása egy oldalt mutat minden SVG gyökérelemhez (vagy egyetlen oldalt, ha az SVG csak egy vászonból áll). + +## Gyakori hibák és profi tippek + +| Probléma | Miért fordul elő | Hogyan javítható | +|----------|------------------|------------------| +| **Hiányzó betűtípusok** | Az SVG rendszerbetűtípusokra hivatkozik, amelyek nincsenek telepítve a szerveren. | Ágyazd be a betűtípusokat az SVG‑be, vagy használd a `FontSettings`‑t az Aspose.HTML‑ben egy egyedi betűtípus mappa megadásához. | +| **Nagy fájlméret** | A nagy felbontású rasterizálás felrobbanthatja a TIFF méretét. | Csökkentsd a DPI‑t a `tiffOptions.setResolution(150)`‑vel, vagy csak hibakereséshez válts `Compression.NONE`‑ra. | +| **Több oldal nem jön létre** | Az SVG csak egy `` elemet tartalmaz. | Oszd fel a forrást különálló SVG fájlokra, vagy a konverzió előtt csomagold minden logikai oldalt egy `` tagbe. | +| **Nem támogatott SVG funkciók** | Bizonyos szűrők vagy animációk nem kerülnek renderelésre. | Egyszerűsítsd az SVG‑t, vagy előfeldolgozd egy Inkscape‑hez hasonló eszközzel a szűrők laposításához. | + +**Profi tipp:** Ha meghatározott oldalsorrendet szeretnél, nevezd át az SVG fájlokat `page1.svg`, `page2.svg` stb.-re, és egy ciklusban dolgozd fel őket, minden konverziós eredményt ugyanahhoz a TIFF‑hez fűzve a `tiffOptions.setMultipage(true)` minden alkalommal. + +## Teljes működő példa + +Az alábbiakban a teljes, önálló Java osztályt találod, amelyet beilleszthetsz egy `SvgToMultipageTiff.java` nevű fájlba. Tartalmaz importálásokat, megjegyzéseket és hibakezelést a termelési használathoz. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +A kód futtatása egy TIFF‑et eredményez, ahol minden SVG gyökér egy külön oldalra válik – pontosan az, amire szükséged van, ha **többoldalas TIFF** fájlokat szeretnél nyomtatáshoz vagy archiváláshoz létrehozni. + +## Összegzés + +Most megmutattuk, hogyan **hozzunk létre többoldalas TIFF‑et** SVG‑ből Java és Aspose.HTML segítségével. A tutorial lefedte az SVG betöltését (`load svg document java`), a konverziós beállítások konfigurálását, a konverzió végrehajtását (`how to convert svg to tiff`), és a kimenet ellenőrzését. A teljes forráskóddal a kezedben a megoldást könnyen testre szabhatod tucatnyi SVG kötegelt feldolgozásához, a DPI beállítások finomhangolásához, vagy a logika integrálásához egy nagyobb dokumentum‑generálási folyamatba. + +Készen állsz a következő kihívásra? Próbáld meg egy SVG mappát egyetlen többoldalas TIFF‑be konvertálni, kísérletezz különböző tömörítési sémákkal, vagy fedezd fel a PDF kimenetet a `TiffConversionOptions` helyett `PdfConversionOptions` használatával. Ugyanazok az elvek érvényesek, így magabiztosan bővítheted ezt a mintát más formátumokra. + +Van kérdésed, vagy furcsa SVG‑es esetbe ütköztél? Hagyj egy megjegyzést alább, és jó kódolást! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/html5-canvas-rendering/_index.md b/html/hungarian/java/html5-canvas-rendering/_index.md index db1bfbe65..d45c84091 100644 --- a/html/hungarian/java/html5-canvas-rendering/_index.md +++ b/html/hungarian/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Először is beszéljünk a HTML5 Canvas elemről. Tekints rá úgy, mint egy ü Hozzon létre és jelenítsen meg HTML5 Canvast az Aspose.HTML for Java segítségével. Ismerje meg lépésről lépésre, hogyan rajzolhat, stílusozhat és exportálhat PDF-be ezzel a hatékony Java-könyvtárral. ### [A HTML5 Canvas elsajátítása Aspose.HTML for Java segítségével](./html5-canvas/) Ismerje meg, hogyan hozhat létre és konvertálhat HTML5 Canvast PDF-be az Aspose.HTML for Java használatával. Ez az útmutató tökéletes azoknak a fejlesztőknek, akik webes projektjeik fejlesztését szeretnék. +### [Hogyan emuláljuk az iPhone-t – Teljes útmutató az Aspose.HTML segítségével](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Fedezze fel, hogyan emulálhatja az iPhone-t az Aspose.HTML használatával, részletes lépésekkel és példákkal. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/hungarian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/hungarian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..82e21f039 --- /dev/null +++ b/html/hungarian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Tanulja meg, hogyan emulálhatja az iPhone-t Java-ban az Aspose.HTML segítségével. + Tartalmaz lépéseket az egyéni felhasználói ügynök és az eszköz pixelarányának beállításához + a pontos mobil megjelenítés érdekében. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: hu +og_description: Hogyan emuláljuk az iPhone-t Java-ban? Ez az útmutató bemutatja, hogyan + állítható be egyedi felhasználói ügynök és eszköz pixelarány az Aspose.HTML használatával, + pixel‑tökéletes mobil oldalak biztosításához. +og_title: Hogyan emuláljunk iPhone-t – Lépésről lépésre Aspose.HTML útmutató +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Hogyan emuláljuk az iPhone-t – Teljes útmutató az Aspose.HTML-hez +url: /hu/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Hogyan emuláljuk az iPhone-t – Teljes útmutató az Aspose.HTML segítségével + +Gondolkodtál már azon, **hogyan emuláljuk az iPhone-t** egy weboldal helyi tesztelésekor? Lehet, hogy egy reszponzív elrendezést hibakeresel, és az asztali böngésző egyszerűen nem elegendő. A jó hír, hogy nincs szükség fizikai eszközre – az Aspose.HTML `DocumentSandbox` funkciója néhány Java sorral lehetővé teszi, hogy utánozd az iPhone képernyőjét, user‑agent‑jét és device‑pixel‑ratio‑ját (DPR). + +Ebben a tutorialban lépésről‑lépésre végigvezetünk a **custom user agent** beállításán, a **device pixel ratio** konfigurálásán, és annak ellenőrzésén, hogy minden a várt módon működik-e. A végére egy újrahasználható sandboxot kapsz, amely az iPhone 8-hoz hasonlóan rendereli az oldalakat, és megérted, miért fontos minden egyes beállítás. + +## Amit el fogsz érni + +- Létrehozol egy `Screen` objektumot, amely tükrözi egy iPhone méreteit és DPR‑jét. +- Alkalmazol egy **custom user agent** sztringet, hogy a szerverek úgy gondolják, Safari iOS‑ról érkezik a kérés. +- Felépítesz egy `DocumentSandbox`‑t, amely összekapcsolja a képernyőt és a user‑agent‑et. +- Egy `HTMLDocument`‑ot futtatsz a sandboxban, és a konzol kimenetében ellenőrzöd a konfigurációt. + +Az Aspose.HTML‑en kívül nincs szükség külső könyvtárakra, a kód bármely Java 17+ környezetben futtatható. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## Hogyan emuláljuk az iPhone-t az Aspose.HTML Sandbox segítségével + +Az első dolog, amire szükségünk van, egy `Screen`, amely tükrözi az iPhone fizikai méreteit *és* a pixel sűrűségét. Ez a **hogyan emuláljuk az iPhone-t** pontos megvalósításának a magja. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Miért fontos:** +- A 375 px szélesség és 667 px magasság a CSS pixel méretek, amelyeket a Chrome DevTools‑ban látsz, ha iPhone 8-at választasz. +- A DPR‑t 2‑re állítva a renderelő motor minden CSS pixelt két fizikai pixelnek tekint, így éles szöveget és képeket kapsz – pontosan úgy, ahogy egy valódi eszköz teszi. + +> *Pro tipp:* Ha egy újabb iPhone‑t (például iPhone 13) szeretnél emulálni, egyszerűen cseréld a számokat 390 × 844‑ra és a DPR‑t 3‑ra. + +## Egyedi User Agent beállítása (set custom user agent) + +Ezután **egyedi user agent‑et** kell beállítanunk, hogy a szerver a mobil‑specifikus HTML‑t/CSS‑t szolgáltassa. Enélkül sok oldal továbbra is asztali nézetben gondolja, hogy te asztali gépen vagy. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Hogyan működik:** +- A `User-Agent` fejléc a böngészők által használt kézfogás, amely bejelenti, hogy ki ők. +- Ha megadod a Safari iOS 16 által küldött pontos sztringet, biztosíthatod, hogy a szerver a mobilra optimalizált erőforrásokat adja vissza (responsive képek, adaptív szkriptek stb.). + +Ha valaha **hogyan állítsuk be a user-agent‑et** egy másik eszközhöz, egyszerűen cseréld ki a sztringet a megfelelő értékre – legyen az Google Chrome, Firefox vagy akár egy egyedi bot. + +## Device Pixel Ratio konfigurálása (set device pixel ratio) + +Most ténylegesen **beállítjuk a device pixel ratio‑t** a sandboxban. Ez a lépés közvetlenül megválaszolja a “**hogyan állítsuk be a dpr‑t**” kérdést egy szimulált környezetben. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Magyarázat:** +- A `Builder` minta lehetővé teszi, hogy folyékonyan csatold a képernyőt (amely a DPR‑t hordozza) és a user‑agent‑et. +- Amikor a sandbox egy `HTMLDocument`‑ot renderel, úgy tesz, mintha egy olyan eszközön futna, amelynek pontosan ez a pixel sűrűsége van. + +> *Miért érdekelhet:* Egyes CSS media query‑k a `device-pixel-ratio`‑t használják (pl. `@media (-webkit-min-device-pixel-ratio: 2)`). Ha nem állítod be a DPR‑t, ezek a szabályok sosem aktiválódnak, és lemaradsz a nagy felbontású erőforrásokról. + +## A Sandbox konfigurációjának ellenőrzése (how to set user-agent) + +Most teszteljük a sandboxot. Az alábbi kódrészlet létrehoz egy `HTMLDocument`‑ot, betölt egy oldalt, és kiír egy megerősítést, hogy a sandbox aktív. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Várható konzolkimenet** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Ha a program futtatása után ezt a sort látod, sikeresen **hogyan emuláljuk az iPhone-t** a megfelelő DPR‑del és user‑agent‑tel. Nyisd meg az oldalt egy valódi böngészőben, és ellenőrizd a viewport méreteket – észre fogod venni, hogy megegyeznek az általunk beállított iPhone értékekkel. + +## Gyakori hibák és a DPR helyes beállítása (how to set dpr) + +Még a helyes kód mellett is akadnak csapdák: + +| Probléma | Miért fordul elő | Megoldás | +|----------|------------------|----------| +| **DPR 1‑en marad** | A `Screen`‑et a harmadik argumentum (DPR) nélkül adtad át. | Mindig használd a `new Screen(width, height, dpr)` szintaxist. | +| **User‑Agent figyelmen kívül marad** | A sandbox nem lett csatolva az `HTMLDocument`‑hez. | Add át a `documentSandbox`‑t a `HTMLDocument` konstruktor második argumentumaként. | +| **Rossz méretek** | Hardver pixel helyett CSS pixel lett megadva. | Ne feledd: a szélesség/magasság **CSS pixel**, nem hardver pixel. | +| **A szerver még mindig asztali CSS‑t küld** | Egyes oldalak JavaScript‑tel detektálják az eszközt, nem csak a fejlécet. | Szükség esetén injektálj egy viewport meta tag‑et is. | + +Ha ezeket szem előtt tartod, ritkán fogsz olyan helyzetbe kerülni, ahol az emuláció nem úgy viselkedik, ahogy elvárnád. + +## A Sandbox bővítése – Következő lépések + +Most, hogy már tudod, **hogyan állítsuk be az egyedi user agent‑et** és **hogyan állítsuk be a dpr‑t**, tovább kísérletezhetsz: + +- **Módosítsd a képernyőméretet** tabletek vagy nagyobb telefonok emulálásához. +- **Cseréld le a user‑agent‑et**, hogy Chrome‑t tesztelj Androidon (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Adj hozzá cookie‑kat vagy fejléceket** a sandbox `setHeaders` metódusával hitelesített tesztekhez. +- **Készíts képernyőképet** a `HTMLDocument.renderToFile("output.png")` hívással, hogy automatikusan összehasonlíthasd a vizuális különbségeket. + +Ezekkel a kiegészítésekkel egy teljes értékű tesztelési keretrendszert építhetsz anélkül, hogy elhagynád az IDE‑det. + +--- + +## Összegzés + +Áttekintettük, **hogyan emuláljuk az iPhone-t** az Aspose.HTML `DocumentSandbox`‑jával, bemutatva, hogyan **állítsuk be az egyedi user agent‑et**, **állítsuk be a device pixel ratio‑t**, és még a finom különbségeket is a “**hogyan állítsuk be a user-agent‑et**” és a “**hogyan állítsuk be a dpr‑t**” között. A teljes, futtatható példa minden részt egy helyen demonstrál, így egyszerűen másolhatod, módosíthatod, és azonnal elkezdheted a mobil elrendezések tesztelését. + +Próbáld ki – változtasd a képernyőméreteket, kísérletezz különböző user‑agent‑ekkel, és figyeld, hogyan reagálnak az oldalaid. Ha ezeket a beállításokat elsajátítod, a reszponzív tervek hibakeresése gyerekjáték lesz, és rengeteg órát takaríthatsz meg a valódi eszközökön való tesztelés helyett. + +Van kérdésed, vagy szeretnéd megosztani a saját variációidat? Írj egy megjegyzést alább, és jó szórakozást a emuláláshoz! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/advanced-usage/_index.md b/html/indonesian/java/advanced-usage/_index.md index 3c0e8416e..be73a0934 100644 --- a/html/indonesian/java/advanced-usage/_index.md +++ b/html/indonesian/java/advanced-usage/_index.md @@ -127,6 +127,9 @@ Pelajari cara menyesuaikan ukuran halaman XPS dengan Aspose.HTML untuk Java. Kon ### [Cara Menjalankan JavaScript di Java – Panduan Lengkap](./how-to-run-javascript-in-java-complete-guide/) Pelajari cara menjalankan kode JavaScript dalam aplikasi Java dengan Aspose.HTML untuk Java secara lengkap. +### [Contoh top‑level await – Menggunakan delay await dalam JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Pelajari contoh penggunaan top‑level await dengan fungsi delay await dalam JavaScript menggunakan Aspose.HTML. + --- **Terakhir Diperbarui:** 2025-11-29 diff --git a/html/indonesian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/indonesian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..51e7aa6bf --- /dev/null +++ b/html/indonesian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: contoh top‑level await yang menunjukkan await delay JavaScript, kelas + increment counter, dan public class fields JavaScript dalam demo langsung. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: id +og_description: Contoh top‑level await yang menunjukkan await delay JavaScript, kelas + penghitung increment, dan bidang kelas publik JavaScript dalam tutorial singkat. +og_title: contoh top-level await – Menggunakan penundaan await di JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Contoh top‑level await – Menggunakan await delay dalam JavaScript +url: /id/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# contoh top level await – Menggunakan await delay dalam JavaScript + +Pernah bertanya-tanya bagaimana cara menjeda eksekusi modul tanpa membungkus semuanya dalam async IIFE? Itulah yang dilakukan oleh **top level await example**. Dalam tutorial ini kami akan menelusuri sebuah halaman web kecil yang menggunakan `await delay javascript` untuk menunda pekerjaan, lalu membuat sebuah `increment counter class` yang memanfaatkan **public class fields javascript**. Pada akhir tutorial Anda akan memiliki potongan kode lengkap yang dapat disalin‑tempel dan berjalan di semua browser modern. + +Kami akan membahas segala hal mulai dari mendefinisikan kelas dengan field publik hingga menyusun helper delay berbasis promise yang sederhana. Tanpa pustaka eksternal, tanpa langkah build—hanya HTML biasa, sebuah ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Output Konsol yang Diharapkan + +``` +Counter class initialized +Final count: 1 +``` + +Jika Anda membuka halaman di DevTools, Anda akan melihat pesan blok‑statis muncul **sebelum** delay selesai, mengonfirmasi bahwa kelas dievaluasi terlebih dahulu. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +Anda mungkin bertanya mengapa kami tidak menulis: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Kedua pendekatan berfungsi, tetapi **public class fields javascript** memberikan sintaks yang lebih bersih dan deklaratif. Field didefinisikan sekali, bukan di dalam setiap pemanggilan konstruktor, yang dapat lebih mudah dibaca ketika kelas menjadi lebih besar. Selain itu, blok statis tidak dapat ditempatkan di dalam konstruktor, sehingga memisahkan logika inisialisasi menjadi lebih natural. + +## Step 6 – Adapting the Example for Real‑World Apps + +Di produksi Anda sering membutuhkan lebih dari satu penghitung. Berikut beberapa ide cepat: + +- **Multiple counters:** Simpan mereka dalam `Map` yang di‑key oleh identifier. +- **Persisted state:** Ganti `console.log` dengan penulisan ke `localStorage`. +- **Async initialization:** Gunakan blok statis untuk mengambil konfigurasi dari server sebelum instance apa pun dibuat. + +Semua pola ini tetap mendapat manfaat dari top‑level await, karena Anda dapat mengambil data sekali saat modul dimuat dan menjamin siap untuk setiap konsumen. + +## Frequently Asked Questions + +**Q: Apakah top‑level await memblokir modul lain?** +A: Tidak. Setiap modul berjalan secara independen. Hanya modul yang berisi await yang dijeda; modul lain terus memuat secara paralel. + +**Q: Bagaimana jika promise delay ditolak?** +A: Penolakan yang tidak ditangani akan menghentikan evaluasi modul dan muncul sebagai error di konsol. Bungkus await dengan `try…catch` jika Anda memerlukan fallback yang elegan. + +**Q: Apakah kata kunci `static` diperlukan?** +A: Tidak untuk penghitung itu sendiri, tetapi blok statis merupakan cara praktis untuk menunjukkan bahwa kode dijalankan *sekali* pada saat pemuatan—bagus untuk logging atau deteksi fitur. + +## Conclusion + +Anda baru saja membangun **top level await example** yang menampilkan `await delay javascript`, sebuah **increment counter class**, dan kekuatan **public class fields javascript**. Potongan kode lengkap yang dapat dijalankan berada di atas, dan output konsol membuktikan bahwa blok statis dijalankan sebelum kode delay dieksekusi. + +Dari sini Anda dapat bereksperimen dengan alur async yang lebih kompleks, mengganti delay dengan panggilan API nyata, atau memperluas kelas dengan metode tambahan. Ingat, JavaScript modern memungkinkan Anda memperlakukan modul sebagai entitas async kelas‑satu—tanpa pembungkus tambahan. + +Selamat coding, dan silakan bagikan variasi Anda di komentar. Jika panduan ini berguna, bagikan kepada rekan yang masih bergulat dengan pola async! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/conversion-html-to-other-formats/_index.md b/html/indonesian/java/conversion-html-to-other-formats/_index.md index 1fe7d1786..1e6ed919d 100644 --- a/html/indonesian/java/conversion-html-to-other-formats/_index.md +++ b/html/indonesian/java/conversion-html-to-other-formats/_index.md @@ -99,6 +99,9 @@ Pelajari cara mengonversi HTML ke XPS dengan mudah menggunakan Aspose.HTML untuk ### [Mengonversi Markdown ke HTML](./convert-markdown-to-html/) Ubah Markdown ke HTML di Java secara mulus dengan Aspose.HTML untuk Java. Ikuti panduan langkah‑demi‑langkah kami untuk mempermudah kebutuhan konversi dokumen Anda. +### [Mengonversi HTML ke Markdown di Java – Pertahankan Format Asli](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Ubah HTML menjadi Markdown di Java sambil mempertahankan format asli dokumen dengan Aspose.HTML. + ### [Mengonversi SVG ke Gambar](./convert-svg-to-image/) Pelajari cara mengonversi SVG ke gambar di Java dengan Aspose.HTML. Panduan komprehensif untuk output berkualitas tinggi. @@ -108,6 +111,12 @@ Ubah SVG ke PDF di Java dengan Aspose.HTML. Solusi mulus untuk konversi dokumen ### [Mengonversi SVG ke XPS](./convert-svg-to-xps/) Pelajari cara mengonversi SVG ke XPS dengan Aspose.HTML untuk Java. Panduan sederhana, langkah‑demi‑langkah untuk konversi mulus. +### [Membuat PDF Ukuran Kustom – Mengonversi HTML ke PDF dengan Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Pelajari cara membuat PDF dengan ukuran khusus saat mengonversi HTML ke PDF menggunakan Aspose.HTML. + +### [Membuat PDF dari HTML di Java – Panduan Konversi Batch Paralel](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Panduan langkah‑demi‑langkah untuk mengonversi banyak file HTML menjadi PDF secara paralel menggunakan Aspose.HTML for Java. + ## Pertanyaan yang Sering Diajukan **Q: Bisakah saya menggunakan Aspose.HTML untuk Java dalam aplikasi komersial?** diff --git a/html/indonesian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/indonesian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..0b015bf32 --- /dev/null +++ b/html/indonesian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Konversi HTML ke markdown dan buat file markdown sambil mempertahankan + format asli menggunakan konversi Aspose HTML di Java. Pelajari langkah demi langkah. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: id +og_description: Konversi HTML ke markdown dengan cepat, hasilkan file markdown, dan + pertahankan format asli menggunakan konversi HTML Aspose untuk Java. +og_title: Konversi HTML ke Markdown dalam Java – Pertahankan Pemformatan +tags: +- Aspose +- Java +- Markdown +title: Mengonversi HTML ke Markdown di Java – Pertahankan Format Asli +url: /id/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mengonversi HTML ke Markdown di Java – Mempertahankan Format Asli + +Pernahkah Anda perlu **mengonversi HTML ke markdown** tetapi khawatir akan kehilangan spasi, tabel, atau tag inline? Anda tidak sendirian. Banyak pengembang mengalami masalah ini ketika mencoba memindahkan konten dari halaman web ke format yang bersahabat dengan version‑control. Kabar baiknya? Dengan beberapa baris Java dan Aspose HTML, Anda dapat **menghasilkan file markdown** yang persis seperti sumbernya, termasuk whitespace. + +Dalam panduan ini kami akan membahas seluruh proses: memuat file HTML yang kompleks, mengonfigurasi konversi agar **mempertahankan format asli**, dan akhirnya menulis output ke `preserved.md`. Pada akhir tutorial Anda akan memiliki potongan kode yang siap dijalankan, memahami *mengapa* setiap pengaturan penting, serta mengetahui cara menyesuaikan kode untuk kasus khusus seperti CSS kustom atau skrip yang disematkan. + +## Apa yang Anda Butuhkan + +- Java 17 (atau JDK terbaru) – API ini bekerja dengan Java 8+ tetapi versi yang lebih baru memberikan kinerja yang lebih baik. +- Perpustakaan Aspose HTML for Java (versi 23.11 atau lebih baru). Anda dapat mengambilnya dari Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Sebuah file HTML contoh (`complex.html`) yang berisi heading, tabel, blok kode, dan mungkin beberapa styling inline ``. +- Sedikit kesabaran dan keinginan untuk bereksperimen. + +Itu saja. Tanpa alat eksternal, tanpa trik baris perintah—hanya kode Java murni. + +## Langkah 1: Muat Dokumen HTML Sumber + +Hal pertama yang kami lakukan adalah membuat instance `HTMLDocument` yang menunjuk ke file sumber Anda. Aspose HTML memperlakukan file sebagai DOM, yang berarti Anda dapat memeriksa atau memodifikasinya sebelum konversi jika diperlukan. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Mengapa ini penting:** Memuat dokumen dengan cara ini memastikan semua sumber daya yang terhubung (stylesheet, gambar) diselesaikan relatif terhadap lokasi file. Jika Anda melewatkan langkah ini dan memberi string mentah, Anda mungkin kehilangan CSS eksternal yang memengaruhi spasi—hal yang tepat ingin Anda **pertahankan format aslinya**. + +## Langkah 2: Konfigurasikan Opsi Konversi Markdown + +Aspose HTML menyediakan kelas `MarkdownConversionOptions`. Properti kunci bagi kami adalah `setPreserveOriginalFormatting(true)`. Ketika diaktifkan, konverter akan mempertahankan line break, indentasi, dan bahkan potongan HTML mentah yang tidak dapat direpresentasikan markdown secara native. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Tips pro:** Jika kemudian Anda menemukan bahwa beberapa style inline dihapus, Anda juga dapat memanggil `markdownOptions.setIncludeHtml(true)` untuk memaksa blok HTML mentah masuk ke output markdown. + +## Langkah 3: Lakukan Konversi + +Sekarang kami menyerahkan `HTMLDocument`, jalur file target, dan opsi kami ke metode statis `Converter.convertHTML`. Metode ini melakukan semua pekerjaan berat di balik layar. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Setelah pemanggilan selesai, Anda akan menemukan `preserved.md` di samping file sumber Anda. Buka dengan editor apa pun—perhatikan bagaimana line break dan penyelarasan tabel tetap utuh. + +## Langkah 4: Verifikasi Hasil (Opsional tapi Disarankan) + +Pemeriksaan cepat dapat menyelamatkan Anda dari bug halus di kemudian hari. Anda dapat membaca kembali file ke dalam Java dan mencetak beberapa baris pertama, atau cukup membukanya di VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Anda seharusnya melihat sesuatu seperti: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Tag `` masih ada karena sintaks tabel markdown native tidak dapat menangkap styling yang tepat—berkat `preserve original formatting`. + +## Langkah 5: Bungkus Semua – Contoh Lengkap yang Dapat Dijalan + +Berikut adalah kelas lengkap yang siap dijalankan. Ganti `YOUR_DIRECTORY` dengan jalur aktual di mesin Anda. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Jalankan program dengan `mvn exec:java` atau IDE favorit Anda, dan Anda akan mendapatkan **file markdown yang dihasilkan** yang mencerminkan tata letak HTML asli. + +## Pertanyaan Umum & Kasus Khusus + +### Apakah ini bekerja dengan file CSS eksternal? + +Ya. Selama file CSS dapat diakses melalui jalur relatif, Aspose HTML akan memuatnya secara otomatis. Jika Anda mengambil HTML dari URL remote, Anda mungkin perlu mengatur objek `ResourceLoadingOptions` khusus untuk mengizinkan akses jaringan. + +### Bagaimana jika saya tidak menginginkan HTML mentah di markdown? + +Cukup ubah opsi: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Konverter kemudian akan mencoba menerjemahkan semuanya ke sintaks markdown murni, yang mungkin mengorbankan beberapa fidelitas tata letak. + +### Bisakah saya mengonversi string alih-alih file? + +Tentu saja. Gunakan konstruktor yang menerima `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Lalu teruskan `doc` ke `Converter.convertHTML` seperti sebelumnya. + +### Bagaimana ini berbeda dari perpustakaan lain seperti Flexmark atau pandoc? + +Sebagian besar alat open‑source memperlakukan HTML sebagai teks biasa dan menghapus whitespace secara agresif. Flag `preserveOriginalFormatting` milik Aspose HTML adalah **fitur proprietari** yang menghormati whitespace, line break, dan bahkan menyimpan tag yang tidak didukung sebagai blok HTML mentah. Itulah mengapa tutorial ini menekankan **aspose html conversion** untuk pengembang Java yang memerlukan fidelitas tepat. + +## Tips untuk Penggunaan di Produksi + +- **Pemrosesan batch:** Bungkus logika konversi dalam loop untuk menangani banyak file HTML sekaligus. +- **Penanganan error:** Tangkap `IOException` dan `com.aspose.html.exceptions.AssertionFailedException` untuk menampilkan sumber daya yang hilang. +- **Kinerja:** Gunakan kembali satu instance `HTMLDocument` saat mengonversi fragmen dari situs besar; perpustakaan ini menyimpan cache CSS yang telah diparse. + +## Kesimpulan + +Kami baru saja menunjukkan cara **mengonversi HTML ke markdown** di Java sambil memastikan output **mempertahankan format asli**. Potongan kode singkat dan mandiri ini memperlihatkan seluruh alur kerja—dari memuat dokumen HTML hingga mengonfigurasi `MarkdownConversionOptions`, melakukan konversi, dan memverifikasi hasil. Dengan API Aspose HTML yang kuat, Anda kini dapat **menghasilkan file markdown** secara programatis, baik untuk generator situs statis, pipeline dokumentasi, atau alat migrasi konten. + +Selanjutnya, Anda dapat menjelajahi: + +- Menggunakan **html to markdown java** untuk migrasi massal seluruh situs. +- Menyesuaikan opsi konversi untuk menghasilkan tabel markdown gaya GitHub. +- Menggabungkan pendekatan ini dengan langkah CI/CD yang secara otomatis memperbarui dokumen Anda setiap kali HTML sumber berubah. + +Silakan bereksperimen, dan tinggalkan komentar jika menemukan kendala. Selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/indonesian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..132396471 --- /dev/null +++ b/html/indonesian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,196 @@ +--- +category: general +date: 2026-03-26 +description: Buat PDF ukuran khusus dari HTML menggunakan Aspose.HTML untuk Java. + Pelajari cara mengonversi HTML ke PDF dan mengatur ukuran halaman PDF dalam beberapa + langkah saja. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: id +og_description: Buat PDF ukuran kustom dari HTML dengan Aspose. Panduan ini menunjukkan + cara mengonversi HTML ke PDF, mengubah ukuran halaman PDF, dan mengatur ukuran halaman + PDF dengan mudah. +og_title: Buat PDF Ukuran Kustom – Panduan Cepat Mengonversi HTML ke PDF +tags: +- aspose +- java +- pdf +- html +title: Buat PDF Ukuran Kustom – Konversi HTML ke PDF dengan Aspose +url: /id/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat PDF Ukuran Kustom – Konversi HTML ke PDF dengan Aspose + +Pernah membutuhkan untuk **membuat PDF ukuran kustom** dari file HTML? Dalam tutorial ini kami akan menunjukkan cara **mengonversi HTML ke PDF** dan mengatur ukuran halaman PDF menggunakan Aspose.HTML untuk Java. + +Jika Anda membuat faktur, laporan, atau e‑book, mendapatkan dimensi halaman yang tepat sangat penting—jika tidak, tata letak Anda akan tampak tidak berpusat atau terpotong. + +Kami akan membimbing Anda melalui setiap langkah, mulai dari memuat HTML sumber hingga menyesuaikan margin, dan selesai dengan PDF siap pakai. Tanpa referensi yang samar, hanya contoh lengkap yang dapat dijalankan yang dapat Anda salin‑tempel hari ini. + +## Apa yang Anda Butuhkan + +- **Java 17** (atau JDK terbaru apa pun). +- **Aspose.HTML for Java** JARs – Anda dapat mengambil versi terbaru dari repositori Maven atau situs web Aspose. +- File `input.html` sederhana yang ditempatkan di folder yang Anda kontrol. +- IDE atau editor teks pilihan Anda; saya biasanya menulis kode di IntelliJ IDEA, tetapi Eclipse juga berfungsi dengan baik. + +Memiliki prasyarat ini berarti Anda tidak akan mengalami error “class not found” di tengah proses. + +Sekarang, mari kita mulai. + +![Contoh PDF ukuran kustom](/images/create-pdf-custom-size.png "Tangkapan layar yang menunjukkan PDF yang dihasilkan dengan ukuran halaman dan margin kustom – buat pdf ukuran kustom") + +## Buat PDF Ukuran Kustom – Langkah-Langkah Inti + +Berikut adalah program Java lengkap yang akan Anda dapatkan. Silakan salin ke dalam file bernama `ConvertHtmlToPdfCustomPage.java` dan jalankan setelah Anda menambahkan dependensi Aspose ke proyek Anda. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Langkah 1 – Mengonversi HTML ke PDF: Memuat Dokumen + +Hal pertama yang kami lakukan adalah **memuat HTML** yang ingin diubah menjadi PDF. +`HTMLDocument` membaca file, menyelesaikan tautan relatif, dan membangun DOM yang dapat dirender oleh Aspose. + +> **Mengapa ini penting:** Jika HTML merujuk ke CSS atau gambar, Aspose akan mengambilnya relatif terhadap jalur file. Menggunakan jalur absolut (`YOUR_DIRECTORY/input.html`) menghindari kejutan “file not found”. + +### Langkah 2 – Mengubah Ukuran Halaman PDF: Mengonfigurasi Opsi + +Di sini kami membuat objek `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` memberi tahu Aspose untuk menggunakan dimensi standar A4 (210 × 297 mm). +- `setPageOrientation(...)` memutar halaman jika Anda membutuhkan orientasi lanskap. +- `setMargins(new Margin(20, 20, 20, 20))` memberikan margin 20‑point di setiap sisi. + +Anda dapat mengganti `PageSize.A4` dengan `PageSize.LETTER` atau bahkan **ukuran kustom** dengan melewatkan objek `SizeF`, misalnya: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Tips pro:** Satu point sama dengan 1/72 inci. Jika Anda berpikir dalam milimeter, kalikan dengan 2.83465 untuk mendapatkan point. + +### Langkah 3 – Menghasilkan PDF dari HTML: Menjalankan Konversi + +`Converter.convertHTML` melakukan pekerjaan berat. Ia mengambil `HTMLDocument` yang telah dimuat, jalur output, dan opsi yang baru saja kami konfigurasikan. + +Jika Anda ingin **mengatur ukuran halaman PDF** secara dinamis berdasarkan konten, Anda dapat menghitung dimensi yang diperlukan sebelum langkah ini dan menyesuaikan `pdfOptions` sesuai. + +### Langkah 4 – Memverifikasi Hasil + +Baris `System.out.println` bersifat opsional, tetapi memberikan umpan balik cepat saat Anda menjalankan program dari konsol. Setelah eksekusi, buka `custom_page.pdf` – Anda akan melihat PDF portrait A4 dengan margin 20‑point seragam, persis seperti yang kami tentukan. + +## Konversi HTML ke PDF – Variasi Umum + +### Menggunakan Stream Alih-alih Jalur File + +Kadang-kadang Anda tidak memiliki file fisik; mungkin HTML berasal dari basis data atau API. Dalam kasus itu, bungkus string dalam `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Argumen kedua adalah URL dasar untuk menyelesaikan sumber daya relatif. + +### Mengubah Orientasi Halaman + +Jika laporan Anda lebar, beralih ke lanskap: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Menyetel Margin Secara Halus + +Margin menerima nilai floating‑point, sehingga Anda dapat mengatur 0.5 pt untuk batas yang sangat tipis: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Menangani File HTML Besar + +Untuk dokumen yang sangat besar, pertimbangkan mengaktifkan **streaming efisien memori**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Ini memberi tahu Aspose untuk menulis data menengah ke file sementara alih-alih menyimpan semuanya di RAM. + +## Atur Ukuran Halaman PDF – Kasus Tepi & Jebakan + +- **Missing Fonts:** Jika HTML Anda menggunakan font khusus yang tidak terpasang di server, PDF akan kembali ke font default. Sematkan font dengan `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Image Scaling:** Gambar beresolusi tinggi dapat memperbesar ukuran PDF. Gunakan `pdfOptions.setImageResolution(150);` untuk menurunkan resolusi sambil mempertahankan kualitas. +- **CSS Compatibility:** Tidak semua properti CSS didukung sepenuhnya. Gunakan teknik tata letak standar (flexbox berfungsi, tetapi grid mungkin memiliki keanehan). +- **Path Permissions:** Pastikan proses memiliki akses menulis ke `YOUR_DIRECTORY`. Jika tidak, `IOException` akan dilempar. + +## Output yang Diharapkan + +Menjalankan program menghasilkan PDF yang terlihat seperti ini (ilustrasi konseptual): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Ukuran halaman: **A4** (210 × 297 mm). +- Orientasi: **Portrait**. +- Margin: **20 pt** pada setiap sisi. + +Buka file dengan penampil PDF apa pun (Adobe Reader, Chrome, dll.) untuk mengonfirmasi. + +## Kesimpulan + +Anda sekarang tahu cara **membuat PDF ukuran kustom** dari sumber HTML menggunakan Aspose.HTML untuk Java. Tutorial ini mencakup seluruh alur: **mengonversi HTML ke PDF**, **mengubah ukuran halaman PDF**, **mengatur ukuran halaman PDF**, dan **menghasilkan PDF dari HTML** dengan margin kustom. + +Silakan bereksperimen—ganti `PageSize.LETTER` dengan ukuran legal, ubah margin, atau sematkan font Anda sendiri. Selanjutnya, Anda mungkin ingin menjelajahi **menambahkan watermark**, **mengenkripsi PDF**, atau **memproses batch beberapa file HTML**. Semua topik tersebut dibangun di atas konsep inti yang baru saja kami bahas. + +Ada pertanyaan tentang kasus tepi tertentu? Tinggalkan komentar di bawah, dan saya akan membantu Anda memecahkan masalah. Selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/indonesian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..a9710e9ac --- /dev/null +++ b/html/indonesian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Buat PDF dari HTML dengan cepat menggunakan pool thread tetap. Pelajari + batch HTML ke PDF dan jalankan tugas paralel di Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: id +og_description: Buat PDF dari HTML dengan cepat menggunakan fixed thread pool. Pelajari + cara mengonversi HTML ke PDF secara batch dan menjalankan tugas paralel di Java. +og_title: Buat PDF dari HTML di Java – Panduan Konversi Batch Paralel +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Buat PDF dari HTML di Java – Panduan Konversi Batch Paralel +url: /id/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Membuat PDF dari HTML di Java – Panduan Konversi Batch Paralel + +Pernah perlu **membuat PDF dari HTML** tetapi merasa terjebak menunggu konversi satu‑thread berjalan sangat lambat? Anda bukan satu‑satunya. Dalam banyak proyek dunia nyata kami menerima puluhan laporan HTML yang harus menjadi PDF pada akhir hari, dan memprosesnya satu per satu tidak praktis. + +Itulah mengapa tutorial ini menunjukkan **cara mengonversi HTML ke PDF** menggunakan **fixed thread pool**, memungkinkan Anda **batch HTML ke PDF** dan **menjalankan tugas paralel** tanpa kesulitan. Pada akhir tutorial Anda akan memiliki program lengkap yang siap dijalankan untuk mengubah folder berisi file HTML menjadi PDF dalam sebagian kecil waktu. + +## Apa yang Akan Anda Pelajari + +Dalam beberapa bagian berikut kami akan membahas semua yang perlu Anda ketahui: + +* Dependensi Maven/Gradle yang tepat untuk Aspose.HTML (perpustakaan yang melakukan pekerjaan berat). +* Mengapa **fixed thread pool** adalah pilihan tepat untuk pekerjaan konversi yang CPU‑bound. +* Cara membuat daftar file sumber Anda sehingga proses dapat skala hingga ratusan dokumen. +* Kode tepat yang Anda tempelkan ke IDE—tanpa impor yang hilang, tanpa komentar “TODO”. +* Tips menangani error, menyesuaikan ukuran pool, dan memverifikasi output. + +Tidak diperlukan pengetahuan sebelumnya tentang Aspose.HTML, cukup dengan setup Java dasar dan kemauan untuk bereksperimen. Mari kita mulai. + +--- + +![Diagram yang menunjukkan fixed thread pool mengonversi beberapa file HTML menjadi PDF secara paralel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Teks alt gambar: create pdf from html – diagram konversi paralel* + +## Langkah 1: Siapkan Proyek Anda dan Tambahkan Aspose.HTML + +Pertama-tama—proyek Anda memerlukan perpustakaan Aspose.HTML. Jika Anda menggunakan Maven, tambahkan ini ke `pom.xml` Anda: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Untuk Gradle, cukup: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Mengapa Aspose.HTML? Ini adalah perpustakaan komersial, tetapi menyediakan API **convert html to pdf** yang menangani CSS, JavaScript, dan tata letak kompleks secara langsung. Jika Anda lebih suka alternatif open‑source, Anda dapat mengganti pemanggilan `Converter.convertHTML` nanti, tetapi logika threading tetap sama. + +> **Pro tip:** Jaga nomor versi tetap sinkron dengan catatan rilis resmi; versi yang lebih baru sering meningkatkan kecepatan rendering, yang penting ketika Anda menjalankan banyak tugas secara paralel. + +## Langkah 2: Bangun Fixed Thread Pool untuk Konversi Paralel + +Ketika Anda memiliki batch file, Anda tidak ingin membuat jumlah thread tak terbatas—sistem operasi Anda akan mulai thrashing. **Fixed thread pool** memberi Anda tingkat concurrency yang dapat diprediksi sambil menjaga penggunaan memori tetap terkendali. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Mengapa empat? Pada mesin 8‑core tipikal, setengah core dapat tetap bebas untuk I/O dan OS. Anda dapat bereksperimen: `Runtime.getRuntime().availableProcessors()` mengembalikan jumlah core, dan aturan praktisnya adalah `cores / 2`. Ingat, setiap konversi bersifat intensif CPU, jadi lebih banyak thread daripada core biasanya menurunkan performa. + +## Langkah 3: Kumpulkan File HTML yang Ingin Anda Konversi + +Bagian selanjutnya dari teka‑teki adalah daftar **batch html to pdf**. Anda dapat menuliskan array secara hard‑code (seperti pada contoh) atau memindai sebuah direktori. Berikut versi fleksibel yang membaca setiap file `.html` dari sebuah folder: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Pendekatan ini berarti Anda dapat menambahkan file baru ke folder dan program akan otomatis memprosesnya—sempurna untuk pekerjaan batch malam hari. + +## Langkah 4: Kirim Tugas Konversi untuk Setiap File (Jalankan Tugas Paralel) + +Sekarang bagian yang menyenangkan: setiap file menjadi **Runnable** (atau `Callable`) yang dijalankan oleh pool. Kode di bawah meniru contoh asli tetapi menambahkan penanganan error dan pesan log kecil. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Mengapa membungkus konversi dalam try‑catch?** Saat Anda **menjalankan tugas paralel**, satu file HTML yang rusak dapat menyebabkan seluruh executor berhenti. Dengan menangkap pengecualian secara lokal, kita memastikan batch lainnya tetap berjalan. + +## Langkah 5: Matikan Executor dan Tunggu Penyelesaian + +Setelah semua pekerjaan dikirim, Anda harus memberi tahu pool untuk berhenti menerima pekerjaan baru dan kemudian menunggu hingga semuanya selesai. Ini menjamin JVM tidak keluar terlalu cepat. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Jika Anda memiliki folder yang sangat besar (ribuan file) Anda mungkin perlu memperpanjang timeout atau menambahkan monitor progres. Kuncinya adalah **menutup secara elegan**—ini adalah ciri kode siap produksi. + +## Contoh Kerja Lengkap + +Menggabungkan semuanya, berikut kelas mandiri yang dapat Anda salin‑tempel ke `src/main/java` dan jalankan: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Output yang diharapkan** (contoh): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Jika Anda membuka file `.pdf` yang dihasilkan, Anda akan melihat tata letak HTML asli tetap terjaga—font, tabel, bahkan konten dasar yang digerakkan JavaScript ditampilkan dengan benar. + +## Pertanyaan Umum & Kasus Tepi + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/conversion-html-to-various-image-formats/_index.md b/html/indonesian/java/conversion-html-to-various-image-formats/_index.md index 285cd7489..c7e9442b9 100644 --- a/html/indonesian/java/conversion-html-to-various-image-formats/_index.md +++ b/html/indonesian/java/conversion-html-to-various-image-formats/_index.md @@ -99,6 +99,8 @@ Pelajari cara mengkonversi HTML ke gambar PNG di Java dengan Aspose.HTML. Pandua ### [Mengonversi HTML ke TIFF](./convert-html-to-tiff/) Pelajari cara mudah mengkonversi HTML ke TIFF menggunakan Aspose.HTML untuk Java. Panduan langkah demi langkah untuk penanganan dokumen yang efisien. ### [Mengonversi HTML ke WebP – Panduan Lengkap Java dengan Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Mengonversi HTML ke WebP – Panduan Lengkap Java](./convert-html-to-webp-complete-java-guide/) +### [Buat TIFF multipage dari SVG di Java – Panduan Langkah‑demi‑Langkah](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) ## Pertanyaan yang Sering Diajukan diff --git a/html/indonesian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/indonesian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..fa90d339e --- /dev/null +++ b/html/indonesian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-26 +description: Konversi HTML ke WebP dengan cepat menggunakan Aspose.HTML. Pelajari + cara menyimpan HTML sebagai WebP, merender HTML sebagai WebP, dan menghasilkan WebP + dari HTML dalam beberapa langkah saja. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: id +og_description: Konversi HTML ke WebP dengan cepat menggunakan Aspose.HTML. Tutorial + ini menunjukkan cara merender HTML sebagai WebP dan menghasilkan WebP dari HTML + dalam Java. +og_title: Ubah HTML ke WebP – Panduan Java Lengkap +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Mengonversi HTML ke WebP – Panduan Java Lengkap +url: /id/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mengonversi HTML ke WebP – Panduan Java Lengkap + +Pernah membutuhkan untuk **convert HTML to WebP** tetapi tidak yakin pustaka mana yang dapat menangani pekerjaan ini tanpa ribet? Anda tidak sendirian. Banyak pengembang mengalami kendala ini saat mencoba menyajikan gambar ringan yang dihasilkan dari halaman dinamis. Kabar baik? Dengan Aspose.HTML for Java Anda dapat *save HTML as WebP* dalam satu pemanggilan metode, dan seluruh prosesnya semulus mentega. + +Dalam tutorial ini kami akan membahas semua yang perlu Anda ketahui: mulai dari menyiapkan dependensi Aspose.HTML, menyesuaikan pengaturan kompresi, hingga akhirnya merender dokumen HTML sebagai file WebP yang dapat Anda sajikan di web. Pada akhir tutorial Anda akan dapat **render HTML as WebP**, **generate WebP from HTML**, dan memahami “mengapa” di balik setiap opsi konfigurasi. Tanpa skrip eksternal, tanpa akrobatik baris perintah—hanya kode Java yang bersih. + +## Prasyarat + +- Java 8 atau yang lebih baru terpasang (pustaka ini mendukung JDK 8+). +- Maven atau Gradle untuk manajemen dependensi (kami akan menunjukkan contoh Maven). +- File HTML sederhana (`input.html`) yang ingin Anda ubah menjadi gambar WebP. +- IDE atau editor teks pilihan Anda—IntelliJ IDEA bekerja dengan baik, tetapi apa saja dapat dipakai. + +Sudah siap? Bagus, mari kita mulai. + +## Langkah 1: Tambahkan Aspose.HTML ke Proyek Anda + +Pertama-tama, Anda memerlukan pustaka Aspose.HTML di classpath. Jika Anda menggunakan Maven, tambahkan ini ke `pom.xml` Anda: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Untuk Gradle, tampilannya seperti ini: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Mengapa langkah ini penting? Tanpa JAR, kelas `HTMLDocument`, `Converter`, atau `WebpConversionOptions` tidak akan ada, dan kompiler akan melempar `ClassNotFoundException`. Menambahkan dependensi juga akan menarik binary native yang diperlukan untuk enkoding WebP, sehingga Anda tidak perlu mencari DLL atau file `.so` eksternal. + +> **Pro tip:** Jaga agar dependensi Anda selalu terbaru. Rilis Aspose yang lebih baru sering meningkatkan algoritma kompresi WebP dan menambahkan dukungan untuk fitur HTML5 terbaru. + +## Langkah 2: Muat Dokumen HTML Sumber + +Sekarang pustaka sudah siap, kita dapat memuat HTML yang ingin dikonversi. Kelas `HTMLDocument` mem-parsing file dan membangun DOM, yang kemudian akan dirender oleh konverter. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Perhatikan komentar “Load the source HTML document” – ini mengingatkan bahwa Anda juga dapat menyuntikkan CSS atau JavaScript sebelum konversi jika halaman Anda bergantung pada styling dinamis. Jika Anda melewatkan langkah ini, konverter tidak akan memiliki apa‑apa untuk dirender, sehingga menghasilkan gambar kosong. + +## Langkah 3: Konfigurasi Opsi Konversi WebP + +Aspose.HTML memberi Anda kontrol detail atas output. Untuk kebanyakan kasus, WebP **lossy** dengan pengaturan kualitas sekitar 85 memberikan keseimbangan yang baik antara fidelitas visual dan ukuran file. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Mengapa memilih lossy? Mode lossy WebP menggunakan predictive coding, yang dapat mengurangi ukuran file sebesar 30‑50 % dibandingkan PNG sambil mempertahankan sebagian besar detail visual. Jika Anda memerlukan hasil pixel‑perfect (mis., untuk logo), ubah `CompressionMode` menjadi `Lossless` dan tingkatkan `quality` menjadi 100. + +## Langkah 4: Konversi dan Simpan Gambar WebP + +Dengan dokumen dan opsi yang siap, proses konversi menjadi satu baris kode. Metode statis `Converter.convertHTML` melakukan semua pekerjaan berat: merender DOM ke bitmap, mengenkode menjadi WebP, dan menulis file ke disk. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Itu saja! Setelah program selesai, Anda akan menemukan `output.webp` berada di samping file HTML sumber Anda. Sekarang Anda dapat menyajikannya langsung dari server web, menyematkannya dalam elemen ``, atau menggunakannya dalam konteks apa pun yang mendukung WebP. + +## Langkah 5: Verifikasi Hasil (Opsional tetapi Disarankan) + +Selalu merupakan ide yang baik untuk memeriksa kembali bahwa konversi berhasil dan gambar terlihat seperti yang diharapkan. Anda dapat membuka file WebP di Chrome, Firefox, atau penampil gambar apa pun yang mendukung format tersebut. Untuk pemeriksaan programatik cepat, Anda dapat membaca ukuran file dan dimensi: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Jika file secara tak terduga besar atau dimensinya tidak tepat, tinjau kembali **Langkah 3** dan sesuaikan `quality` atau pengaturan viewport HTML sumber. Ingat, WebP menghormati CSS `width`/`height` pada elemen root, jadi tag `` yang hilang dapat menyebabkan hasil yang mengejutkan. + +## Contoh Lengkap yang Berfungsi + +Menggabungkan semua bagian, berikut kelas Java lengkap yang siap dijalankan: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Simpan file ini sebagai `HtmlToWebp.java`, ganti `YOUR_DIRECTORY` dengan jalur folder yang sebenarnya, kompilasi dengan `javac`, dan jalankan dengan `java HtmlToWebp`. Anda akan melihat output konsol yang mengonfirmasi ukuran file dan dimensi, diikuti dengan pesan keberhasilan akhir. + +![contoh mengonversi html ke webp](/images/convert-html-to-webp.png "Tangkapan layar gambar WebP yang dihasilkan dari HTML – convert html to webp") + +## Pertanyaan Umum & Kasus Tepi + +### Bagaimana jika HTML saya merujuk ke sumber daya eksternal (CSS, gambar)? + +Aspose.HTML secara otomatis menyelesaikan URL relatif berdasarkan lokasi `input.html`. Pastikan sumber daya dapat diakses dari sistem file atau server web. Jika Anda perlu menyuntikkan base URL khusus, gunakan konstruktor `HTMLDocument` yang menerima `URI` base. + +### Bisakah saya menghasilkan beberapa gambar WebP dari HTML yang sama (mis., ukuran viewport berbeda)? + +Tentu saja. Bungkus logika konversi dalam loop, sesuaikan `webpOptions.setWidth()` dan `setHeight()` sebelum setiap pemanggilan, dan beri setiap output nama file yang unik. Ini berguna untuk desain responsif di mana Anda menyajikan ukuran gambar berbeda untuk perangkat mobile dan desktop. + +### Bagaimana cara beralih ke kompresi lossless? + +Ganti baris: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +dengan: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless menjamin fidelitas pixel‑perfect tetapi menghasilkan file yang lebih besar—gunakan hanya bila diperlukan. + +### Apakah ini bekerja di Linux/macOS? + +Ya. JAR Aspose.HTML menyertakan binary native untuk Windows, Linux, dan macOS, sehingga kode Java yang sama dapat dijalankan di semua platform. Pastikan Anda memiliki JRE yang sesuai terpasang. + +## Kesimpulan + +Anda baru saja mempelajari **cara mengonversi HTML ke WebP** menggunakan Aspose.HTML untuk Java, mencakup semua hal mulai dari penyiapan dependensi hingga penyetelan kompresi dan verifikasi hasil. Dengan pengetahuan ini Anda dapat **save HTML as WebP**, **render HTML as WebP**, dan **generate WebP from HTML** secara dinamis—sempurna untuk pipeline gambar dinamis, buletin email, atau skenario apa pun di mana visual ringan sangat penting. + +Apa selanjutnya? Cobalah bereksperimen dengan nilai `quality` yang berbeda, jelajahi mode `Lossless`, atau integrasikan konverter ini ke endpoint REST Spring Boot sehingga layanan web Anda dapat mengembalikan gambar WebP sesuai permintaan. Anda juga dapat memproses batch folder berisi file HTML, atau menggabungkannya dengan Chrome headless untuk konversi SVG‑to‑WebP. + +Masih ada pertanyaan tentang **cara mengonversi HTML** ke bahasa lain, atau butuh bantuan memecahkan kasus tepi tertentu? Tinggalkan komentar di bawah, dan selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/indonesian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..512cc9657 --- /dev/null +++ b/html/indonesian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,167 @@ +--- +category: general +date: 2026-03-26 +description: Buat multipage TIFF dari SVG di Java dengan Aspose.HTML. Pelajari cara + mengonversi SVG ke TIFF, memuat dokumen SVG di Java, dan membuat file TIFF multipage. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: id +og_description: Buat TIFF multipage dari SVG di Java. Tutorial ini menunjukkan cara + memuat dokumen SVG, mengonfigurasi opsi TIFF, dan menghasilkan TIFF multipage tanpa + kehilangan kualitas. +og_title: Buat TIFF multipage dari SVG di Java – Panduan Lengkap +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Membuat TIFF multipage dari SVG di Java – Panduan Langkah demi Langkah +url: /id/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Buat multipage TIFF dari SVG di Java – Panduan Langkah‑ demi‑Langkah + +Pernah perlu **membuat multipage TIFF** dari sebuah SVG tetapi tidak tahu harus mulai dari mana? Anda tidak sendirian—banyak pengembang mengalami kendala yang sama ketika mereka membutuhkan dokumen yang dapat dicetak, loss‑less, dan terdiri dari beberapa halaman. Pada panduan ini kami akan menelusuri solusi lengkap yang siap dijalankan yang menunjukkan **cara mengonversi SVG ke TIFF**, memuat dokumen SVG di Java, dan mengonfigurasi output sehingga Anda dapat **membuat multipage TIFF** dengan kompresi LZW. + +Kami akan membahas semuanya mulai dari menyiapkan pustaka Aspose.HTML hingga menangani kasus tepi seperti aset SVG berukuran besar. Pada akhir tutorial Anda akan memiliki satu kelas Java yang dapat Anda masukkan ke proyek apa pun dan langsung menghasilkan TIFF multi‑halaman secara instan. + +## Apa yang Anda Butuhkan + +- **Java Development Kit (JDK) 8+** – kode menggunakan API Java standar. +- **Aspose.HTML for Java** (versi 23.5 atau lebih baru) – satu‑satunya ketergantungan pihak ketiga. +- Sebuah **file SVG contoh** (grafik vektor apa saja; kami akan menyebutnya `input.svg`). +- IDE favorit Anda atau sekadar editor teks sederhana dan terminal. + +Tidak ada alat build tambahan yang diperlukan; contoh ini dapat dikompilasi dengan `javac` dan dijalankan dengan `java`. Jika Anda lebih suka Maven atau Gradle, cukup tambahkan JAR Aspose.HTML ke classpath proyek Anda. + +![Create multipage tiff example](create-multipage-tiff.png){alt="create multipage tiff output"} + +## Langkah 1 – Muat Dokumen SVG (load svg document java) + +Hal pertama yang harus kita lakukan adalah membaca SVG ke dalam objek `HTMLDocument`. Aspose.HTML memperlakukan file SVG sebagai dokumen HTML, yang memberi kita API terpadu untuk konversi. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Mengapa ini penting:** Memuat SVG sebagai `HTMLDocument` memberi kita akses ke mesin rendering penuh, memastikan semua gaya, font, dan gambar tersemat diinterpretasikan dengan benar sebelum konversi. Melewatkan langkah ini dan mencoba memasukkan byte mentah langsung ke konverter sering menghasilkan elemen yang hilang atau warna yang tidak tepat. + +## Langkah 2 – Konfigurasikan Opsi TIFF (how to create multipage tiff) + +Selanjutnya kita menyiapkan `TiffConversionOptions`. Objek ini mengontrol segala hal mulai dari tata letak halaman hingga kompresi. Untuk output multipage yang sesungguhnya kami mengaktifkan `setMultipage(true)`, dan kami memilih kompresi **LZW** karena lossless dan didukung secara luas. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Mengapa ini penting:** Jika Anda melewatkan `setMultipage(true)`, pustaka akan menghasilkan TIFF satu‑halaman, mengabaikan halaman tambahan yang mungkin dapat disimpulkan dari SVG (misalnya, ketika SVG berisi beberapa elemen akar ``). LZW menjaga ukuran file tetap wajar tanpa mengorbankan fidelitas gambar—sempurna untuk arsip atau alur kerja pencetakan. + +## Langkah 3 – Lakukan Konversi (how to convert svg to tiff) + +Sekarang pekerjaan berat terjadi. Metode statis `Converter.convertSVG` mengambil dokumen yang telah dimuat, jalur tujuan, dan opsi yang baru saja kita definisikan. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Mengapa ini penting:** Menggunakan pemanggilan statis `convertSVG` adalah cara paling langsung untuk memicu konversi. Di balik layar, Aspose.HTML meraster data vektor pada DPI default 96 dpi; Anda dapat menyesuaikan DPI melalui `tiffOptions.setResolution(...)` bila kualitas lebih tinggi diperlukan. + +## Langkah 4 – Verifikasi Hasil + +Setelah konversi selesai, ada baiknya memastikan bahwa file memang ada dan berisi jumlah halaman yang diharapkan. Pemeriksaan cepat dapat dilakukan dengan penampil gambar apa pun yang mendukung TIFF multipage (misalnya, IrfanView, XnView, atau bahkan `ImageIO` milik Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Jalankan program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Anda akan melihat pesan konsol yang mengonfirmasi keberhasilan, dan membuka `output.tiff` akan menampilkan satu halaman per elemen akar SVG (atau satu halaman jika SVG hanya memiliki satu kanvas). + +## Kesalahan Umum & Tips Pro + +| Masalah | Mengapa Terjadi | Cara Memperbaikinya | +|---------|----------------|--------------------| +| **Font tidak ditemukan** | SVG merujuk ke font sistem yang tidak terpasang di server. | Sematkan font dalam SVG atau gunakan `FontSettings` di Aspose.HTML untuk menyediakan folder font khusus. | +| **Ukuran file besar** | Rasterisasi resolusi tinggi dapat membuat ukuran TIFF membengkak. | Turunkan DPI melalui `tiffOptions.setResolution(150)` atau beralih ke `Compression.NONE` hanya untuk debugging. | +| **Beberapa halaman tidak dihasilkan** | SVG hanya berisi satu elemen ``. | Bagi sumber Anda menjadi file SVG terpisah atau balut setiap halaman logis dalam tag `` sebelum konversi. | +| **Fitur SVG tidak didukung** | Beberapa filter atau animasi tidak dirender. | Sederhanakan SVG atau pra‑proses dengan alat seperti Inkscape untuk meratakan filter. | + +**Tips pro:** Jika Anda memerlukan urutan halaman tertentu, beri nama file SVG Anda menjadi `page1.svg`, `page2.svg`, dll., dan lakukan loop pada mereka, menambahkan setiap hasil konversi ke TIFF yang sama menggunakan `tiffOptions.setMultipage(true)` setiap kali. + +## Contoh Lengkap yang Berfungsi + +Berikut adalah kelas Java lengkap, mandiri, yang dapat Anda salin‑tempel ke file bernama `SvgToMultipageTiff.java`. Kelas ini mencakup pernyataan impor, komentar, dan penanganan error untuk penggunaan produksi. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Menjalankan kode ini menghasilkan TIFF di mana setiap akar SVG menjadi halaman terpisah—tepat apa yang Anda butuhkan ketika ingin **membuat multipage TIFF** untuk pencetakan atau arsip. + +## Kesimpulan + +Kami baru saja menunjukkan cara **membuat multipage TIFF** dari SVG menggunakan Java dan Aspose.HTML. Tutorial ini mencakup memuat SVG (`load svg document java`), mengonfigurasi opsi konversi, melakukan konversi (`how to convert svg to tiff`), dan memverifikasi output. Dengan kode sumber lengkap di tangan, Anda dapat menyesuaikan solusi untuk memproses puluhan SVG secara batch, mengubah pengaturan DPI, atau mengintegrasikan logika ini ke dalam pipeline pembuatan dokumen yang lebih besar. + +Siap untuk tantangan berikutnya? Cobalah mengonversi folder berisi SVG menjadi satu TIFF multipage, bereksperimen dengan skema kompresi berbeda, atau jelajahi output PDF dengan mengganti `TiffConversionOptions` menjadi `PdfConversionOptions`. Prinsip yang sama berlaku, sehingga Anda akan nyaman memperluas pola ini ke format lain. + +Ada pertanyaan atau menemukan kasus SVG yang aneh? Tinggalkan komentar di bawah, dan selamat coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/html5-canvas-rendering/_index.md b/html/indonesian/java/html5-canvas-rendering/_index.md index 59ee454f8..daaa06e52 100644 --- a/html/indonesian/java/html5-canvas-rendering/_index.md +++ b/html/indonesian/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Pertama, mari kita bahas elemen HTML5 Canvas. Anggap saja sebagai kanvas kosong Buat dan render HTML5 Canvas dengan Aspose.HTML untuk Java. Pelajari langkah demi langkah cara menggambar, memberi gaya, dan mengekspor ke PDF menggunakan pustaka Java yang canggih ini. ### [Menguasai HTML5 Canvas dengan Aspose.HTML untuk Java](./html5-canvas/) Pelajari cara membuat dan mengonversi HTML5 Canvas ke PDF menggunakan Aspose.HTML untuk Java. Panduan ini sangat cocok bagi pengembang yang ingin menyempurnakan proyek web mereka. +### [Cara Meniru iPhone – Panduan Lengkap dengan Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Pelajari cara meniru tampilan iPhone pada halaman web menggunakan Aspose.HTML, termasuk penyesuaian viewport dan rendering yang akurat. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/indonesian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/indonesian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..7ebec275c --- /dev/null +++ b/html/indonesian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Pelajari cara meniru iPhone dalam Java menggunakan Aspose.HTML. Termasuk + langkah-langkah untuk mengatur agen pengguna khusus dan mengatur rasio piksel perangkat + agar rendering seluler lebih akurat. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: id +og_description: Bagaimana meniru iPhone di Java? Tutorial ini menunjukkan cara mengatur + user agent khusus dan rasio piksel perangkat menggunakan Aspose.HTML, menghasilkan + halaman seluler yang pixel‑perfect. +og_title: Cara Meniru iPhone – Panduan Aspose.HTML Langkah demi Langkah +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Cara Mengemulasi iPhone – Panduan Lengkap dengan Aspose.HTML +url: /id/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cara Meniru iPhone – Panduan Lengkap dengan Aspose.HTML + +Pernah bertanya-tanya **bagaimana cara meniru iPhone** saat menguji halaman web secara lokal? Mungkin Anda sedang men-debug tata letak responsif dan peramban desktop tidak memadai. Kabar baiknya, Anda tidak memerlukan perangkat fisik—Aspose.HTML’s `DocumentSandbox` memungkinkan Anda meniru layar iPhone, user‑agent, dan device‑pixel‑ratio (DPR) dengan beberapa baris Java. + +Dalam tutorial ini kami akan menelusuri langkah‑langkah tepat untuk mengatur **custom user agent**, mengonfigurasi **device pixel ratio**, dan memverifikasi bahwa semuanya berfungsi seperti yang diharapkan. Pada akhir Anda akan memiliki sandbox yang dapat digunakan kembali yang merender halaman persis seperti iPhone 8, dan Anda akan memahami mengapa setiap pengaturan penting. + +## Apa yang Akan Anda Capai + +- Buat objek `Screen` yang mencerminkan dimensi iPhone dan DPR. +- Terapkan string **custom user agent** sehingga server mengira permintaan berasal dari Safari di iOS. +- Bangun `DocumentSandbox` yang menghubungkan layar dan user‑agent bersama. +- Jalankan `HTMLDocument` di dalam sandbox dan lihat output konsol yang mengonfirmasi konfigurasi. + +Tidak ada pustaka eksternal selain Aspose.HTML yang diperlukan, dan kode dapat dijalankan pada lingkungan Java 17+ mana pun. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## Cara Meniru iPhone dengan Aspose.HTML Sandbox + +Hal pertama yang kita butuhkan adalah `Screen` yang mencerminkan dimensi fisik iPhone *dan* kepadatan pikselnya. Inilah inti dari **bagaimana cara meniru iPhone** secara akurat. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Mengapa ini penting:** +- Lebar = 375 px dan tinggi = 667 px adalah dimensi piksel CSS yang akan Anda lihat di Chrome DevTools saat memilih iPhone 8. +- Mengatur DPR menjadi 2 memberi tahu mesin rendering untuk memperlakukan setiap piksel CSS sebagai dua piksel fisik, menghasilkan teks dan gambar yang tajam—tepat seperti perangkat nyata. + +> *Pro tip:* Jika Anda perlu meniru iPhone yang lebih baru (seperti iPhone 13), cukup ubah angka menjadi 390 × 844 dan DPR = 3. + +## Mengatur User Agent Kustom (set custom user agent) + +Selanjutnya, kita perlu **set custom user agent** agar server menyajikan HTML/CSS khusus seluler. Tanpa ini, banyak situs masih akan mengira Anda berada di desktop. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Cara kerjanya:** +- Header `User-Agent` adalah jabat tangan yang digunakan peramban untuk memperkenalkan diri. +- Dengan menyediakan string persis yang dikirim Safari di iOS 16, Anda memastikan server mengembalikan aset yang dioptimalkan untuk seluler (misalnya gambar responsif, skrip adaptif, dll.). + +Jika Anda pernah perlu **how to set user-agent** untuk perangkat lain, cukup ganti string dengan nilai yang sesuai—Google Chrome, Firefox, atau bahkan bot khusus. + +## Mengonfigurasi Device Pixel Ratio (set device pixel ratio) + +Sekarang kita benar‑benar **set device pixel ratio** di dalam sandbox. Ini adalah langkah yang secara langsung menjawab “**how to set dpr**” untuk lingkungan simulasi. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Penjelasan:** +- Polanya `Builder` memungkinkan Anda dengan lancar melampirkan baik layar (yang membawa DPR) maupun user‑agent. +- Saat sandbox merender `HTMLDocument`, ia akan berpura‑pura berjalan pada perangkat dengan kepadatan piksel yang tepat itu. + +> *Mengapa Anda harus peduli:* Beberapa kueri media CSS menggunakan `device-pixel-ratio` (mis., `@media (-webkit-min-device-pixel-ratio: 2)`). Jika Anda tidak mengatur DPR, aturan‑aturan tersebut tidak pernah dipicu, dan Anda akan kehilangan aset beresolusi tinggi. + +## Memverifikasi Konfigurasi Sandbox (how to set user-agent) + +Mari kita coba sandbox. Potongan kode berikut membuat `HTMLDocument`, memuat sebuah halaman, dan mencetak konfirmasi bahwa sandbox aktif. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Output konsol yang diharapkan** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Jika Anda menjalankan program dan melihat baris itu, Anda telah berhasil **how to emulate iPhone** dengan DPR dan user‑agent yang tepat. Buka halaman di peramban nyata dan periksa dimensi viewport—Anda akan melihat bahwa nilai‑nilainya cocok dengan nilai iPhone yang kami atur. + +## Kesulitan Umum dan Cara Mengatur DPR dengan Benar (how to set dpr) + +Bahkan dengan kode yang tepat, beberapa jebakan dapat membuat Anda tersandung: + +| Masalah | Mengapa Terjadi | Solusi | +|-------|----------------|-----| +| **DPR tetap 1** | Anda memberikan `Screen` tanpa argumen ketiga (DPR). | Selalu gunakan `new Screen(width, height, dpr)`. | +| **User‑Agent diabaikan** | Sandbox tidak terhubung ke `HTMLDocument`. | Berikan `documentSandbox` sebagai argumen kedua ke konstruktor `HTMLDocument`. | +| **Dimensi salah** | Menggunakan piksel perangkat alih‑alih piksel CSS. | Ingat: lebar/tinggi adalah **piksel CSS**, bukan piksel perangkat keras. | +| **Server masih mengirim CSS desktop** | Beberapa situs menggunakan JavaScript untuk mendeteksi perangkat, bukan hanya header. | Pertimbangkan juga menyuntikkan meta tag viewport jika diperlukan. | + +Dengan mengingat hal‑hal ini, Anda jarang akan menemukan situasi di mana emulasi tidak berperilaku seperti yang diharapkan. + +## Memperluas Sandbox – Langkah Selanjutnya + +Sekarang Anda tahu **how to set custom user agent** dan **how to set dpr**, Anda dapat bereksperimen lebih jauh: + +- **Ubah ukuran layar** untuk meniru tablet atau ponsel yang lebih besar. +- **Ganti user‑agent** untuk menguji Chrome di Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Tambahkan cookie atau header** melalui metode `setHeaders` sandbox untuk pengujian terautentikasi. +- **Ambil screenshot** menggunakan `HTMLDocument.renderToFile("output.png")` untuk membandingkan perbedaan visual secara otomatis. + +Ekstensi‑ekstensi ini memungkinkan Anda membangun harness pengujian lengkap tanpa pernah meninggalkan IDE Anda. + +## Kesimpulan + +Kami telah membahas **how to emulate iPhone** menggunakan `DocumentSandbox` milik Aspose.HTML, menunjukkan secara tepat **how to set custom user agent**, **how to set device pixel ratio**, dan bahkan perbedaan halus antara “**how to set user-agent**” dan “**how to set dpr**”. Contoh lengkap yang dapat dijalankan memperlihatkan setiap bagian dalam satu tempat, sehingga Anda dapat copy‑paste, menyesuaikan, dan mulai menguji tata letak seluler secara instan. + +Cobalah—ganti dimensi layar, mainkan berbagai user‑agent, dan lihat bagaimana halaman Anda bereaksi. Ketika Anda menguasai pengaturan‑pengaturan ini, men-debug desain responsif menjadi sangat mudah, dan Anda akan menghemat banyak jam mengejar bug di perangkat nyata. + +Punya pertanyaan atau ingin berbagi variasi Anda sendiri? Tinggalkan komentar di bawah, dan selamat meniru! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/advanced-usage/_index.md b/html/italian/java/advanced-usage/_index.md index 1f126dc59..bcdb39552 100644 --- a/html/italian/java/advanced-usage/_index.md +++ b/html/italian/java/advanced-usage/_index.md @@ -121,6 +121,7 @@ R: No. Una singola licenza di Aspose.HTML for Java copre tutti i formati di outp ### [Regola le dimensioni della pagina PDF con Aspose.HTML per Java](./adjust-pdf-page-size/) ### [Regola le dimensioni della pagina XPS con Aspose.HTML per Java](./adjust-xps-page-size/) ### [Come eseguire JavaScript in Java – Guida completa](./how-to-run-javascript-in-java-complete-guide/) +### [Esempio di top‑level await – Utilizzare await delay in JavaScript](./top-level-await-example-using-await-delay-in-javascript/) --- diff --git a/html/italian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/italian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..6731001b1 --- /dev/null +++ b/html/italian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,172 @@ +--- +category: general +date: 2026-03-26 +description: Esempio di top‑level await che mostra await delay in JavaScript, classe + di incremento del contatore e campi pubblici di classe in JavaScript in una demo + live. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: it +og_description: Esempio di top‑level await che dimostra await delay in JavaScript, + classe di incremento del contatore e campi di classe pubblici in JavaScript in un + tutorial conciso. +og_title: Esempio di top‑level await – Utilizzo di await delay in JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Esempio di top‑level await – Utilizzare await delay in JavaScript +url: /it/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# esempio di top level await – Utilizzare await delay in JavaScript + +Ti sei mai chiesto come mettere in pausa l'esecuzione di un modulo senza avvolgere tutto in un IIFE async? È esattamente quello che permette un **top level await example**. In questo tutorial percorreremo una piccola pagina web che utilizza `await delay javascript` per rimandare il lavoro, poi crea una `increment counter class` che sfrutta **public class fields javascript**. Alla fine avrai uno snippet completo, pronto da copiare‑incollare, che funziona in qualsiasi browser moderno. + +Copriamo tutto, dalla definizione di una classe con un campo pubblico al collegamento di un semplice helper di delay basato su promise. Nessuna libreria esterna, nessun passaggio di build—solo HTML puro, un ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Output previsto della console + +``` +Counter class initialized +Final count: 1 +``` + +Se apri la pagina in DevTools, dovresti vedere il messaggio del blocco statico apparire **prima** che il delay termini, confermando che la classe è stata valutata per prima. + +## Passo 5 – Perché usare i campi pubblici della classe invece di un costruttore? + +Potresti chiederti perché non abbiamo scritto: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Entrambi gli approcci funzionano, ma **public class fields javascript** offrono una sintassi più pulita e dichiarativa. Il campo è definito una sola volta, non all'interno di ogni chiamata al costruttore, il che può risultare più leggibile quando la classe diventa più grande. Inoltre, i blocchi statici non possono essere inseriti dentro un costruttore, quindi separare la logica di inizializzazione diventa più naturale. + +## Passo 6 – Adattare l'esempio per applicazioni reali + +In produzione avrai spesso bisogno di più di un singolo contatore. Ecco alcune idee rapide: + +- **Contatori multipli:** Memorizzali in una `Map` indicizzata per identificatore. +- **Stato persistente:** Sostituisci `console.log` con scritture su `localStorage`. +- **Inizializzazione async:** Usa il blocco statico per recuperare la configurazione da un server prima che vengano create le istanze. + +Tutti questi pattern traggono ancora vantaggio dal top‑level await, perché puoi recuperare i dati una sola volta al caricamento del modulo e garantire che siano pronti per ogni consumatore. + +## Domande frequenti + +**Q: Il top‑level await blocca altri moduli?** +A: No. Ogni modulo viene eseguito in modo indipendente. Solo il modulo che contiene l'await è messo in pausa; gli altri moduli continuano a caricarsi in parallelo. + +**Q: Cosa succede se la promise di delay viene rifiutata?** +A: Un rifiuto non gestito interromperà la valutazione del modulo e verrà mostrato come errore nella console. Avvolgi l'await in un `try…catch` se hai bisogno di un fallback elegante. + +**Q: La parola chiave `static` è obbligatoria?** +A: Non per il contatore stesso, ma il blocco statico è un modo comodo per dimostrare che il codice viene eseguito *una sola volta* al momento del caricamento—ottimo per logging o rilevamento di funzionalità. + +## Conclusione + +Hai appena costruito un **top level await example** che mostra `await delay javascript`, una **increment counter class**, e la potenza di **public class fields javascript**. Lo snippet completo e eseguibile è qui sopra, e l'output della console dimostra che il blocco statico viene eseguito prima del codice con delay. + +Da qui puoi sperimentare flussi async più complessi, sostituire il delay con una chiamata API reale, o espandere la classe con metodi aggiuntivi. Ricorda, il JavaScript moderno ti permette di trattare i moduli come entità async di prima classe—senza wrapper aggiuntivi. + +Buon coding, e sentiti libero di condividere le tue varianti nei commenti. Se hai trovato utile questa guida, condividila con un collega che sta ancora lottando con i pattern async! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/conversion-html-to-other-formats/_index.md b/html/italian/java/conversion-html-to-other-formats/_index.md index 8c3556a36..7e114e765 100644 --- a/html/italian/java/conversion-html-to-other-formats/_index.md +++ b/html/italian/java/conversion-html-to-other-formats/_index.md @@ -91,6 +91,9 @@ In conclusione, padroneggiare **html to pdf java** e l'insieme più ampio di con ### [Conversione da SVG a Immagine](./convert-svg-to-image/) ### [Conversione da SVG a PDF](./convert-svg-to-pdf/) ### [Conversione da SVG a XPS](./convert-svg-to-xps/) +### [Crea PDF a Dimensione Personalizzata – Converti HTML in PDF con Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +### [Conversione da HTML a Markdown in Java – Conserva la formattazione originale](./convert-html-to-markdown-in-java-preserve-original-formattin/) +### [Crea PDF da HTML in Java – Guida alla Conversione Batch Parallela](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) ## Domande frequenti diff --git a/html/italian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/italian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..d05464dc5 --- /dev/null +++ b/html/italian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Converti HTML in markdown e genera un file markdown mantenendo la formattazione + originale usando la conversione Aspose HTML in Java. Impara passo passo. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: it +og_description: Converti rapidamente HTML in markdown, genera un file markdown e mantieni + la formattazione originale usando la conversione Aspose HTML per Java. +og_title: Converti HTML in Markdown in Java – Mantieni la formattazione +tags: +- Aspose +- Java +- Markdown +title: Converti HTML in Markdown in Java – Conserva la formattazione originale +url: /it/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converti HTML in Markdown in Java – Conserva la Formattazione Originale + +Hai mai dovuto **convertire HTML in markdown** temendo di perdere spaziature, tabelle o tag inline? Non sei l'unico. Molti sviluppatori incontrano questo ostacolo quando cercano di spostare contenuti da una pagina web a un formato pulito, adatto al version‑control. La buona notizia? Con poche righe di Java e Aspose HTML, puoi **generare un file markdown** che appare esattamente come l'originale, spazi bianchi inclusi. + +In questa guida percorreremo l'intero processo: caricare un file HTML complesso, configurare la conversione in modo che **preservi la formattazione originale**, e infine scrivere l'output in `preserved.md`. Alla fine avrai uno snippet pronto all'uso, comprenderai *perché* ogni impostazione è importante e saprai come adattare il codice a casi particolari come CSS personalizzato o script incorporati. + +## Cosa Ti Serve + +- Java 17 (o qualsiasi JDK recente) – l'API funziona con Java 8+ ma le versioni più recenti offrono migliori prestazioni. +- Libreria Aspose HTML for Java (versione 23.11 o successiva). Puoi ottenerla da Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Un file HTML di esempio (`complex.html`) che contiene intestazioni, tabelle, blocchi di codice e magari qualche stile inline ``. +- Un pizzico di pazienza e la voglia di sperimentare. + +Questo è tutto. Nessun tool esterno, nessun hack da riga di comando—solo puro codice Java. + +## Passo 1: Carica il Documento HTML di Origine + +La prima cosa da fare è creare un'istanza di `HTMLDocument` che punti al tuo file di origine. Aspose HTML tratta il file come un DOM, il che significa che puoi ispezionarlo o modificarlo prima della conversione, se necessario. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Perché è importante:** Caricare il documento in questo modo garantisce che tutte le risorse collegate (foglio di stile, immagini) vengano risolte rispetto alla posizione del file. Se salti questo passaggio e fornisci una stringa grezza, potresti perdere il CSS esterno che influenza la spaziatura—esattamente ciò che vuoi **preservare nella formattazione originale**. + +## Passo 2: Configura le Opzioni di Conversione Markdown + +Aspose HTML fornisce una classe `MarkdownConversionOptions`. La proprietà chiave per noi è `setPreserveOriginalFormatting(true)`. Quando è abilitata, il convertitore mantiene interruzioni di riga, indentazione e persino snippet HTML grezzi che il markdown non può rappresentare nativamente. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Consiglio professionale:** Se scopri che alcuni stili inline vengono rimossi, puoi anche chiamare `markdownOptions.setIncludeHtml(true)` per forzare l'inclusione di blocchi HTML grezzi nell'output markdown. + +## Passo 3: Esegui la Conversione + +Ora passiamo l'`HTMLDocument`, il percorso del file di destinazione e le nostre opzioni al metodo statico `Converter.convertHTML`. Il metodo si occupa di tutta la logica pesante dietro le quinte. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Al termine della chiamata, troverai `preserved.md` accanto al tuo file di origine. Aprilo con qualsiasi editor—nota come le interruzioni di riga e l'allineamento delle tabelle originali siano intatti. + +## Passo 4: Verifica il Risultato (Opzionale ma Consigliato) + +Un rapido controllo di sanità ti salva da bug sottili in seguito. Puoi leggere il file di nuovo in Java e stampare le prime righe, oppure aprirlo direttamente in VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Dovresti vedere qualcosa del genere: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Il tag `` è ancora presente perché la sintassi nativa delle tabelle markdown non riesce a catturare lo stile esatto—grazie a `preserve original formatting`. + +## Passo 5: Metti Tutto Insieme – Esempio Completo Eseguibile + +Di seguito trovi la classe completa, pronta per l'esecuzione. Sostituisci `YOUR_DIRECTORY` con il percorso reale sul tuo computer. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Esegui il programma con `mvn exec:java` o il tuo IDE preferito, e otterrai un **file markdown generato** che rispecchia il layout HTML originale. + +## Domande Frequenti & Casi Limite + +### Funziona con file CSS esterni? + +Sì. Finché i file CSS sono raggiungibili tramite percorsi relativi, Aspose HTML li carica automaticamente. Se stai prelevando HTML da un URL remoto, potresti dover impostare un oggetto `ResourceLoadingOptions` personalizzato per consentire l'accesso di rete. + +### E se non voglio alcun HTML grezzo nel markdown? + +Basta cambiare l'opzione: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Il convertitore cercherà allora di tradurre tutto in sintassi markdown pura, potenzialmente perdendo parte della fedeltà del layout. + +### Posso convertire una stringa invece di un file? + +Assolutamente. Usa il costruttore che accetta una `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Quindi passa `doc` a `Converter.convertHTML` come prima. + +### In che modo questo differisce da altre librerie come Flexmark o pandoc? + +La maggior parte degli strumenti open‑source tratta l'HTML come testo semplice e rimuove aggressivamente gli spazi bianchi. Il flag `preserveOriginalFormatting` di Aspose HTML è una **funzionalità proprietaria** che rispetta spazi, interruzioni di riga e mantiene i tag non supportati come blocchi HTML grezzi. Per questo questo tutorial enfatizza **aspose html conversion** per gli sviluppatori Java che necessitano di fedeltà assoluta. + +## Consigli per l'Uso in Produzione + +- **Elaborazione batch:** Avvolgi la logica di conversione in un ciclo per gestire più file HTML in una sola volta. +- **Gestione degli errori:** Cattura `IOException` e `com.aspose.html.exceptions.AssertionFailedException` per segnalare risorse mancanti. +- **Prestazioni:** Riutilizza una singola istanza di `HTMLDocument` quando converti frammenti di un sito grande; la libreria memorizza nella cache i CSS analizzati. + +## Conclusione + +Ti abbiamo appena mostrato come **convertire HTML in markdown** in Java garantendo che l'output **preservi la formattazione originale**. Lo snippet breve e autonomo dimostra l'intero flusso di lavoro—dal caricamento del documento HTML alla configurazione di `MarkdownConversionOptions`, esecuzione della conversione e verifica del risultato. Con l'API robusta di Aspose HTML, ora puoi **generare un file markdown** programmaticamente, sia che tu stia costruendo un generatore di siti statici, una pipeline di documentazione o uno strumento di migrazione dei contenuti. + +Prossimi passi consigliati: + +- Utilizzare **html to markdown java** per migrazioni di massa su un intero sito. +- Sperimentare le opzioni di conversione per produrre tabelle markdown in stile GitHub. +- Integrare questo approccio in un passaggio CI/CD che aggiorna automaticamente la documentazione ogni volta che l'HTML di origine cambia. + +Sentiti libero di sperimentare e lascia un commento se incontri difficoltà. Buon coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/italian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..0de53b03c --- /dev/null +++ b/html/italian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-03-26 +description: Crea PDF di dimensioni personalizzate da HTML usando Aspose.HTML per + Java. Scopri come convertire HTML in PDF e impostare la dimensione della pagina + PDF in pochi passaggi. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: it +og_description: Crea PDF di dimensioni personalizzate da HTML con Aspose. Questa guida + ti mostra come convertire HTML in PDF, modificare le dimensioni della pagina PDF + e impostare le dimensioni della pagina PDF senza sforzo. +og_title: Crea PDF di dimensioni personalizzate – Guida rapida per convertire HTML + in PDF +tags: +- aspose +- java +- pdf +- html +title: Crea PDF di dimensioni personalizzate – Converti HTML in PDF con Aspose +url: /it/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea PDF Dimensione Personalizzata – Converti HTML in PDF con Aspose + +Hai mai avuto bisogno di **creare PDF dimensione personalizzata** da un file HTML? In questo tutorial ti mostreremo come **convertire HTML in PDF** e impostare la dimensione della pagina PDF usando Aspose.HTML per Java. + +Se stai creando fatture, report o e‑book, ottenere le dimensioni esatte della pagina è importante—altrimenti il layout risulta fuori centro o viene tagliato. + +Ti guideremo passo passo, dal caricamento dell'HTML sorgente alla regolazione dei margini, fino a ottenere un PDF pronto all'uso. Nessun riferimento vago, solo un esempio completo e funzionante che puoi copiare‑incollare subito. + +## Di cosa avrai bisogno + +- **Java 17** (o qualsiasi JDK recente). +- **Aspose.HTML for Java** JAR – puoi scaricare l'ultima versione dal repository Maven o dal sito web di Aspose. +- Un semplice file `input.html` posizionato in una cartella di tua scelta. +- Un IDE o editor di testo a tua scelta; di solito programmo in IntelliJ IDEA, ma Eclipse funziona altrettanto bene. + +Avere questi prerequisiti significa che non incontrerai errori “class not found” a metà percorso. + +Ora, immergiamoci. + +![Esempio di creazione PDF dimensione personalizzata](/images/create-pdf-custom-size.png "Screenshot che mostra un PDF generato con dimensione e margini di pagina personalizzati – create pdf custom size") + +## Crea PDF Dimensione Personalizzata – Passaggi Principali + +Di seguito trovi il programma Java completo che otterrai. Sentiti libero di copiarlo in un file chiamato `ConvertHtmlToPdfCustomPage.java` e di eseguirlo dopo aver aggiunto le dipendenze Aspose al tuo progetto. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Passo 1 – Converti HTML in PDF: Caricamento del Documento + +La prima cosa che facciamo è **caricare l'HTML** che vogliamo trasformare in PDF. +`HTMLDocument` legge il file, risolve i link relativi e costruisce un DOM che Aspose può renderizzare. + +> **Perché è importante:** Se l'HTML fa riferimento a CSS o immagini, Aspose le recupererà in modo relativo al percorso del file. Usare un percorso assoluto (`YOUR_DIRECTORY/input.html`) evita sorprese del tipo “file not found”. + +### Passo 2 – Cambia Dimensione Pagina PDF: Configurazione delle Opzioni + +Qui creiamo un oggetto `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` indica ad Aspose di usare le dimensioni standard A4 (210 × 297 mm). +- `setPageOrientation(...)` ruota la pagina se serve il formato orizzontale. +- `setMargins(new Margin(20, 20, 20, 20))` imposta un margine di 20 punti su tutti i lati. + +Puoi sostituire `PageSize.A4` con `PageSize.LETTER` o anche con una **dimensione personalizzata** passando un oggetto `SizeF`, ad esempio: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Consiglio:** Un punto corrisponde a 1/72 pollice. Se lavori in millimetri, moltiplica per 2.83465 per ottenere i punti. + +### Passo 3 – Genera PDF da HTML: Esecuzione della Conversione + +`Converter.convertHTML` esegue il lavoro pesante. Prende il `HTMLDocument` caricato, il percorso di output e le opzioni appena configurate. + +Se vuoi **impostare dinamicamente la dimensione della pagina PDF** in base al contenuto, puoi calcolare le dimensioni necessarie prima di questo passo e regolare `pdfOptions` di conseguenza. + +### Passo 4 – Verifica il Risultato + +La riga `System.out.println` è opzionale, ma fornisce un rapido feedback quando esegui il programma da console. Dopo l'esecuzione, apri `custom_page.pdf` – dovresti vedere un PDF A4 in verticale con margini uniformi di 20 punti, esattamente come specificato. + +## Converti HTML in PDF – Varianti Comuni + +### Utilizzare uno Stream invece di un Percorso File + +A volte non hai un file fisico; magari l'HTML proviene da un database o da un'API. In tal caso, avvolgi la stringa in un `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Il secondo argomento è l'URL di base per la risoluzione delle risorse relative. + +### Cambiare l'Orientamento della Pagina + +Se il tuo report è largo, passa al formato orizzontale: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Regolare Finemente i Margini + +I margini accettano valori a virgola mobile, così puoi impostare 0.5 pt per un bordo quasi invisibile: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Gestire File HTML di grandi dimensioni + +Per documenti molto voluminosi, considera di abilitare **streaming a basso consumo di memoria**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Questo indica ad Aspose di scrivere i dati intermedi su file temporanei invece di tenere tutto in RAM. + +## Imposta Dimensione Pagina PDF – Casi Limite e Trappole + +- **Font mancanti:** Se il tuo HTML utilizza un font personalizzato non installato sul server, il PDF ricadrà su un font di default. Incorpora il font con `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Scalatura Immagini:** Immagini ad alta risoluzione possono gonfiare il PDF. Usa `pdfOptions.setImageResolution(150);` per ridurre la risoluzione mantenendo la qualità. +- **Compatibilità CSS:** Non tutte le proprietà CSS sono pienamente supportate. Attieniti a tecniche di layout standard (flexbox funziona, ma grid può presentare stranezze). +- **Permessi del Percorso:** Assicurati che il processo abbia i permessi di scrittura su `YOUR_DIRECTORY`. Altrimenti verrà sollevata un'`IOException`. + +## Output Atteso + +Eseguendo il programma si genera un PDF che appare così (illustrazione concettuale): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Dimensione pagina: **A4** (210 × 297 mm). +- Orientamento: **Portrait**. +- Margini: **20 pt** su ogni lato. + +Apri il file con qualsiasi visualizzatore PDF (Adobe Reader, Chrome, ecc.) per confermare. + +## Conclusione + +Ora sai come **creare PDF dimensione personalizzata** da una sorgente HTML usando Aspose.HTML per Java. Il tutorial ha coperto l'intera pipeline: **convertire HTML in PDF**, **cambiare dimensione pagina PDF**, **impostare dimensione pagina PDF** e **generare PDF da HTML** con margini personalizzati. + +Sentiti libero di sperimentare—sostituisci `PageSize.LETTER` con il formato legal, modifica i margini o incorpora i tuoi font. Successivamente potresti esplorare **l'aggiunta di filigrane**, **la crittografia del PDF**, o **l'elaborazione batch di più file HTML**. Tutti questi argomenti si basano sugli stessi concetti fondamentali appena trattati. + +Hai una domanda su un caso limite specifico? Lascia un commento qui sotto e ti aiuterò a risolverlo. Buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/italian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..b5fb223b1 --- /dev/null +++ b/html/italian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,239 @@ +--- +category: general +date: 2026-03-26 +description: Crea PDF da HTML rapidamente con un pool di thread fisso. Impara a convertire + HTML in PDF in batch ed esegui attività parallele in Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: it +og_description: Crea PDF da HTML rapidamente con un pool di thread fisso. Scopri come + convertire HTML in PDF in batch ed eseguire attività parallele in Java. +og_title: Crea PDF da HTML in Java – Guida alla conversione batch parallela +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Crea PDF da HTML in Java – Guida alla conversione batch parallela +url: /it/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea PDF da HTML in Java – Guida alla Conversione Batch Parallela + +Ti è mai capitato di **creare PDF da HTML** ma di rimanere bloccato a guardare una conversione a thread singolo procedere a passo d’uomo? Non sei l’unico. In molti progetti reali riceviamo decine di report HTML che devono diventare PDF entro la fine della giornata, e farli uno per uno non è affatto pratico. + +Ecco perché questo tutorial ti mostra **come convertire HTML in PDF** usando un **fixed thread pool**, permettendoti di **batch HTML to PDF** e **eseguire task in parallelo** senza alcuno sforzo. Alla fine avrai un programma completo, pronto‑da‑eseguire, che trasforma una cartella di file HTML in PDF in una frazione del tempo. + +## Cosa Imparerai + +* La dipendenza Maven/Gradle esatta per Aspose.HTML (la libreria che fa il lavoro pesante). +* Perché un **fixed thread pool** è la soluzione ideale per lavori di conversione legati alla CPU. +* Come elencare i tuoi file sorgente affinché il processo possa scalare a centinaia di documenti. +* Il codice esatto da incollare nel tuo IDE—senza import mancanti, senza commenti “TODO”. +* Suggerimenti per gestire gli errori, ottimizzare la dimensione del pool e verificare l'output. + +Non è necessario alcun conoscenza preliminare di Aspose.HTML, basta una configurazione Java di base e la volontà di sperimentare. Iniziamo. + +--- + +![Diagramma che mostra un fixed thread pool convertire più file HTML in PDF in parallelo – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Testo alternativo immagine: create pdf from html – diagramma di conversione parallela* + +## Passo 1: Prepara il tuo progetto e aggiungi Aspose.HTML + +Prima di tutto—il tuo progetto ha bisogno della libreria Aspose.HTML. Se usi Maven, inserisci questo nel tuo `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Per Gradle, è semplicemente: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Perché Aspose.HTML? È una libreria commerciale, ma offre un'API **convert html to pdf** che gestisce CSS, JavaScript e layout complessi fin da subito. Se preferisci un'alternativa open‑source puoi sostituire la chiamata `Converter.convertHTML` più tardi, ma la logica di threading rimane la stessa. + +> **Consiglio professionale:** Mantieni il numero di versione sincronizzato con le note di rilascio ufficiali; le versioni più recenti spesso migliorano la velocità di rendering, il che è importante quando esegui molti task in parallelo. + +## Passo 2: Costruisci un Fixed Thread Pool per la Conversione Parallela + +Quando hai un batch di file, non vuoi creare un numero illimitato di thread—il tuo OS inizierà a fare thrashing. Un **fixed thread pool** ti offre una quantità prevedibile di concorrenza mantenendo sotto controllo l'uso della memoria. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Perché quattro? Su una tipica macchina a 8 core, metà dei core può rimanere libera per I/O e per il sistema operativo. Puoi sperimentare: `Runtime.getRuntime().availableProcessors()` restituisce il numero di core, e una regola empirica è `cores / 2`. Ricorda, ogni conversione è intensiva per la CPU, quindi più thread dei core di solito peggiora le prestazioni. + +## Passo 3: Raccogli i file HTML da convertire + +La prossima parte del puzzle è la lista **batch html to pdf**. Puoi codificare un array (come nell'esempio) o scansionare una directory. Ecco una versione flessibile che legge ogni file `.html` da una cartella: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Questo approccio significa che puoi inserire nuovi file nella cartella e il programma li rileverà automaticamente—perfetto per un batch notturno. + +## Passo 4: Invia un task di conversione per ogni file (Esegui task in parallelo) + +Ora la parte divertente: ogni file diventa un **Runnable** (o `Callable`) che il pool esegue. Il codice qui sotto rispecchia l'esempio originale ma aggiunge gestione degli errori e un piccolo messaggio di log. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Perché avvolgere la conversione in un try‑catch?** Quando **esegui task in parallelo**, un singolo file HTML malformato potrebbe altrimenti far crollare l'intero executor. Catturando le eccezioni localmente garantiamo che il resto del batch continui a funzionare. + +## Passo 5: Arresta l'Executor e Attendi il Completamento + +Dopo che tutti i job sono stati inviati, devi dire al pool di smettere di accettare nuovo lavoro e poi attendere che tutto termini. Questo garantisce che la JVM non termini prematuramente. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Se hai una cartella enorme (migliaia di file) potresti aumentare il timeout o implementare un monitor di progresso. La chiave è **chiudere in modo elegante**—questo è il segno distintivo di codice pronto per la produzione. + +## Esempio Completo Funzionante + +Mettendo tutto insieme, ecco una classe autonoma che puoi copiare‑incollare in `src/main/java` e eseguire: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Output previsto** (esempio): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Se apri i file `.pdf` generati vedrai il layout HTML originale preservato—font, tabelle e persino contenuti basati su JavaScript renderizzati correttamente. + +## Domande Frequenti & Casi Limite + +| Domanda | Risposta | +|----------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/conversion-html-to-various-image-formats/_index.md b/html/italian/java/conversion-html-to-various-image-formats/_index.md index 8d2cd44b9..26586be6d 100644 --- a/html/italian/java/conversion-html-to-various-image-formats/_index.md +++ b/html/italian/java/conversion-html-to-various-image-formats/_index.md @@ -92,7 +92,9 @@ Impara a convertire HTML in JPEG con Aspose.HTML for Java. Guida passo‑passo p Scopri come convertire HTML in immagini PNG in Java con Aspose.HTML. Una guida completa con istruzioni passo‑passo. ### [Conversione di HTML in TIFF](./convert-html-to-tiff/) Scopri come convertire facilmente HTML in TIFF usando Aspose.HTML for Java. Guida passo‑passo per una gestione efficiente dei documenti. -### [Converti HTML in WebP](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Crea TIFF multipagina da SVG in Java – Guida passo‑passo](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Impara a generare un file TIFF multipagina da SVG in Java con Aspose.HTML. Guida dettagliata passo‑passo. +### [Converti HTML in WebP](./convert-html-to-webp-complete-java-guide/) Scopri come convertire HTML in WebP in Java usando Aspose.HTML. Una guida completa passo‑passo per una conversione efficiente. ## Domande frequenti diff --git a/html/italian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/italian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..e2ded010a --- /dev/null +++ b/html/italian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-26 +description: Converti rapidamente HTML in WebP con Aspose.HTML. Scopri come salvare + HTML come WebP, renderizzare HTML come WebP e generare WebP da HTML in pochi passaggi. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: it +og_description: Converti rapidamente HTML in WebP con Aspose.HTML. Questo tutorial + mostra come renderizzare HTML come WebP e generare WebP da HTML in Java. +og_title: Converti HTML in WebP – Guida completa Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Converti HTML in WebP – Guida Java completa +url: /it/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converti HTML in WebP – Guida Completa per Java + +Ti è mai capitato di dover **convertire HTML in WebP** ma non eri sicuro di quale libreria potesse gestire il lavoro senza problemi? Non sei solo. Molti sviluppatori incontrano questo ostacolo quando cercano di servire immagini leggere generate da pagine dinamiche. La buona notizia? Con Aspose.HTML per Java puoi *salvare HTML come WebP* con una singola chiamata di metodo, e l'intero processo è fluido come il burro. + +In questo tutorial ti guideremo passo passo su tutto ciò che devi sapere: dall'installazione della dipendenza Aspose.HTML, alla regolazione delle impostazioni di compressione, fino al rendering del documento HTML come file WebP da servire sul web. Alla fine sarai in grado di **renderizzare HTML come WebP**, **generare WebP da HTML**, e comprenderne il “perché” dietro ogni opzione di configurazione. Nessuno script esterno, nessuna acrobazia da riga di comando—solo codice Java pulito. + +## Prerequisiti + +- Java 8 o versioni successive installate (la libreria supporta JDK 8+). +- Maven o Gradle per la gestione delle dipendenze (mostreremo lo snippet Maven). +- Un semplice file HTML (`input.html`) che vuoi trasformare in un'immagine WebP. +- Un IDE o un editor di testo a tua scelta—IntelliJ IDEA funziona benissimo, ma va bene qualsiasi altro. + +Hai tutto pronto? Ottimo, cominciamo. + +## Passo 1: Aggiungi Aspose.HTML al tuo progetto + +Per prima cosa, devi avere la libreria Aspose.HTML nel classpath. Se usi Maven, inserisci questo nel tuo `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Per Gradle, la configurazione è la seguente: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Perché questo passo è fondamentale? Senza il JAR, le classi `HTMLDocument`, `Converter` o `WebpConversionOptions` non esistono, e il compilatore genererà un `ClassNotFoundException`. Aggiungere la dipendenza scarica anche i binari nativi necessari per la codifica WebP, così non dovrai cercare DLL o file `.so` esterni. + +> **Pro tip:** Mantieni le dipendenze aggiornate. Le versioni più recenti di Aspose migliorano spesso gli algoritmi di compressione WebP e aggiungono il supporto a nuove funzionalità HTML5. + +## Passo 2: Carica il Documento HTML di Origine + +Ora che la libreria è pronta, possiamo caricare l'HTML da convertire. La classe `HTMLDocument` analizza il file e costruisce un DOM, che il convertitore renderizzerà successivamente. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Nota il commento “Load the source HTML document” – è un promemoria che puoi anche iniettare CSS o JavaScript prima della conversione se la tua pagina dipende da stili dinamici. Se salti questo passo, il convertitore non avrà nulla da renderizzare, producendo un’immagine vuota. + +## Passo 3: Configura le Opzioni di Conversione WebP + +Aspose.HTML ti offre un controllo dettagliato sull'output. Nella maggior parte dei casi, un WebP **lossy** con un valore di qualità intorno a 85 offre un buon equilibrio tra fedeltà visiva e dimensione del file. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Perché scegliere il lossy? La modalità lossy di WebP utilizza la codifica predittiva, che può ridurre i file del 30‑50 % rispetto a PNG mantenendo la maggior parte dei dettagli visivi. Se ti servono risultati pixel‑perfect (ad esempio per loghi), imposta `CompressionMode` su `Lossless` e porta `quality` a 100. + +## Passo 4: Converti e Salva l'Immagine WebP + +Con il documento e le opzioni pronte, la conversione è una singola riga di codice. Il metodo statico `Converter.convertHTML` gestisce tutto il lavoro pesante: renderizza il DOM su un bitmap, lo codifica in WebP e scrive il file su disco. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Fatto! Al termine del programma troverai `output.webp` accanto al tuo HTML di origine. Ora puoi servirlo direttamente da un server web, includerlo in un elemento ``, o usarlo in qualsiasi contesto che supporti WebP. + +## Passo 5: Verifica il Risultato (Opzionale ma Consigliato) + +È sempre buona pratica ricontrollare che la conversione sia avvenuta correttamente e che l’immagine abbia l’aspetto atteso. Puoi aprire il file WebP in Chrome, Firefox o qualsiasi visualizzatore che supporti il formato. Per un rapido controllo programmatico, potresti leggere la dimensione del file e le sue dimensioni: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Se il file risulta insolitamente grande o le dimensioni sono errate, torna al **Passo 3** e regola `quality` o le impostazioni di viewport dell'HTML di origine. Ricorda che WebP rispetta le proprietà CSS `width`/`height` dell'elemento radice, quindi l'assenza del tag `` può causare risultati inattesi. + +## Esempio Completo Funzionante + +Mettendo insieme tutti i pezzi, ecco la classe Java completa, pronta per l'esecuzione: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Salva questo file come `HtmlToWebp.java`, sostituisci `YOUR_DIRECTORY` con il percorso reale della cartella, compila con `javac` e avvia con `java HtmlToWebp`. Dovresti vedere in console l'output che conferma la dimensione e le dimensioni del file, seguito dal messaggio finale di successo. + +![esempio di conversione da html a webp](/images/convert-html-to-webp.png "Screenshot di un'immagine WebP generata da HTML – conversione da html a webp") + +## Domande comuni e casi limite + +### E se il mio HTML fa riferimento a risorse esterne (CSS, immagini)? + +Aspose.HTML risolve automaticamente gli URL relativi basandosi sulla posizione di `input.html`. Assicurati solo che le risorse siano raggiungibili dal file system o da un server web. Se devi iniettare un URL base personalizzato, usa il costruttore sovraccaricato di `HTMLDocument` che accetta un `URI` di base. + +### Posso generare più immagini WebP dallo stesso HTML (ad esempio per diverse dimensioni di viewport)? + +Assolutamente sì. Avvolgi la logica di conversione in un ciclo, modifica `webpOptions.setWidth()` e `setHeight()` prima di ogni chiamata, e assegna a ciascun output un nome file unico. Questo è utile per il design responsivo, dove serviamo diverse dimensioni di immagine a mobile e desktop. + +### Come passo alla compressione lossless? + +Sostituisci la riga: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +con: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +La modalità lossless garantisce una fedeltà pixel‑perfect ma genera file più grandi—usala solo quando necessario. + +### Funziona su Linux/macOS? + +Sì. Il JAR di Aspose.HTML include i binari nativi per Windows, Linux e macOS, quindi lo stesso codice Java funziona ovunque. Basta assicurarsi di avere la JRE appropriata installata. + +## Conclusione + +Hai appena imparato **come convertire HTML in WebP** usando Aspose.HTML per Java, coprendo tutto, dall'installazione della dipendenza alla messa a punto della compressione e alla verifica del risultato. Con queste conoscenze puoi **salvare HTML come WebP**, **renderizzare HTML come WebP**, e **generare WebP da HTML** al volo—perfetto per pipeline di immagini dinamiche, newsletter email, o qualsiasi scenario in cui le visuali leggere contano. + +Qual è il prossimo passo? Prova a sperimentare con valori di `quality` diversi, esplora la modalità `Lossless`, o integra questo convertitore in un endpoint REST Spring Boot così il tuo servizio web può restituire immagini WebP su richiesta. Potresti anche pensare a un'elaborazione batch di una cartella di file HTML, o combinarlo con Chrome headless per conversioni da SVG a WebP. + +Hai altre domande su **come convertire HTML** in altri linguaggi, o ti serve aiuto per risolvere un caso limite specifico? Lascia un commento qui sotto, e buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/italian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..3e94372c8 --- /dev/null +++ b/html/italian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,167 @@ +--- +category: general +date: 2026-03-26 +description: Crea TIFF multipagina da SVG in Java con Aspose.HTML. Scopri come convertire + SVG in TIFF, caricare un documento SVG in Java e creare file TIFF multipagina. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: it +og_description: Crea un TIFF multipagina da SVG in Java. Questo tutorial mostra come + caricare un documento SVG, configurare le opzioni TIFF e generare un TIFF multipagina + senza perdita di qualità. +og_title: Crea TIFF multipagina da SVG in Java – Guida completa +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Crea TIFF multipagina da SVG in Java – Guida passo passo +url: /it/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crea TIFF multipagina da SVG in Java – Guida passo‑passo + +Hai mai dovuto **creare TIFF multipagina** da un SVG ma non sapevi da dove cominciare? Non sei solo—molti sviluppatori incontrano lo stesso ostacolo quando hanno bisogno di un documento stampabile, loss‑less che si estende su più pagine. In questa guida percorreremo una soluzione completa, pronta all'uso, che mostra **come convertire SVG in TIFF**, caricare il documento SVG in Java e configurare l'output così da poter **creare file TIFF multipagina** con compressione LZW. + +Copriamo tutto, dall'installazione della libreria Aspose.HTML alla gestione di casi particolari come asset SVG di grandi dimensioni. Alla fine del tutorial avrai una singola classe Java che potrai inserire in qualsiasi progetto e iniziare a generare TIFF multipagina all'istante. + +## Cosa ti servirà + +- **Java Development Kit (JDK) 8+** – il codice utilizza le API standard di Java. +- **Aspose.HTML for Java** (versione 23.5 o successiva) – è l'unica dipendenza di terze parti. +- Un **file SVG di esempio** (qualsiasi grafica vettoriale va bene; lo chiameremo `input.svg`). +- Il tuo IDE preferito o un semplice editor di testo e un terminale. + +Non sono richiesti strumenti di build aggiuntivi; l'esempio si compila con `javac` e si esegue con `java`. Se preferisci Maven o Gradle, aggiungi semplicemente il JAR di Aspose.HTML al classpath del tuo progetto. + +![Esempio di creazione TIFF multipagina](create-multipage-tiff.png){alt="output tiff multipagina"} + +## Passo 1 – Carica il documento SVG (load svg document java) + +La prima cosa da fare è leggere l'SVG in un oggetto `HTMLDocument`. Aspose.HTML tratta i file SVG come documenti HTML, fornendoci un'API unificata per la conversione. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Perché è importante:** Caricare l'SVG come `HTMLDocument` ci dà accesso al motore di rendering completo, garantendo che tutti gli stili, i font e le immagini incorporate siano interpretati correttamente prima della conversione. Saltare questo passo e provare a fornire byte grezzi direttamente al convertitore spesso porta a elementi mancanti o colori errati. + +## Passo 2 – Configura le opzioni TIFF (how to create multipage tiff) + +Successivamente configuriamo `TiffConversionOptions`. Questo oggetto controlla tutto, dal layout della pagina alla compressione. Per un vero output multipagina abilitiamo `setMultipage(true)` e scegliamo la compressione **LZW** perché è lossless e ampiamente supportata. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Perché è importante:** Se ometti `setMultipage(true)`, la libreria genererà un TIFF a pagina singola, scartando eventuali pagine aggiuntive che potrebbero essere dedotte dall'SVG (ad esempio, quando l'SVG contiene più elementi radice ``). LZW mantiene la dimensione del file ragionevole senza sacrificare la fedeltà dell'immagine—perfetto per archiviazione o flussi di stampa. + +## Passo 3 – Esegui la conversione (how to convert svg to tiff) + +Ora avviene il lavoro pesante. Il metodo statico `Converter.convertSVG` prende il documento caricato, il percorso di destinazione e le opzioni appena definite. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Perché è importante:** Utilizzare la chiamata statica `convertSVG` è il modo più semplice per avviare la conversione. Internamente, Aspose.HTML rasterizza i dati vettoriali a 96 dpi di default; è possibile regolare i DPI tramite `tiffOptions.setResolution(...)` se è necessaria una qualità superiore. + +## Passo 4 – Verifica il risultato + +Dopo che la conversione è terminata, è consigliabile verificare che il file esista e contenga il numero previsto di pagine. Un controllo rapido può essere effettuato con qualsiasi visualizzatore di immagini che supporti TIFF multipagina (ad esempio, IrfanView, XnView o anche `ImageIO` di Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Esegui il programma: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Dovresti vedere il messaggio sulla console che conferma il successo, e aprendo `output.tiff` vedrai una pagina per ogni elemento radice SVG (o una singola pagina se l'SVG ha solo una tela). + +## Problemi comuni e consigli professionali + +| Problema | Perché accade | Come risolverlo | +|----------|----------------|-----------------| +| **Font mancanti** | L'SVG fa riferimento a font di sistema che non sono installati sul server. | Incorpora i font nell'SVG o utilizza `FontSettings` in Aspose.HTML per fornire una cartella di font personalizzata. | +| **Dimensione file elevata** | La rasterizzazione ad alta risoluzione può far crescere molto le dimensioni del TIFF. | Riduci i DPI tramite `tiffOptions.setResolution(150)` o passa a `Compression.NONE` solo per il debug. | +| **Pagine multiple non generate** | L'SVG contiene solo un elemento ``. | Dividi la tua sorgente in file SVG separati o avvolgi ogni pagina logica in un tag `` prima della conversione. | +| **Funzionalità SVG non supportate** | Alcuni filtri o animazioni non vengono renderizzati. | Semplifica l'SVG o pre‑processalo con uno strumento come Inkscape per appiattire i filtri. | + +**Consiglio professionale:** Se hai bisogno di un ordine di pagina specifico, rinomina i tuoi file SVG in `page1.svg`, `page2.svg`, ecc., e itera su di essi, aggiungendo ogni risultato di conversione allo stesso TIFF usando `tiffOptions.setMultipage(true)` ogni volta. + +## Esempio completo funzionante + +Di seguito trovi la classe Java completa e autonoma che puoi copiare‑incollare in un file chiamato `SvgToMultipageTiff.java`. Include le istruzioni di import, i commenti e la gestione degli errori per l'uso in produzione. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Eseguendo il codice si ottiene un TIFF in cui ogni radice SVG diventa una pagina separata—esattamente ciò che ti serve quando vuoi **creare file TIFF multipagina** per stampa o archiviazione. + +## Conclusione + +Ti abbiamo appena mostrato come **creare TIFF multipagina** da un SVG usando Java e Aspose.HTML. Il tutorial ha coperto il caricamento dell'SVG (`load svg document java`), la configurazione delle opzioni di conversione, l'esecuzione della conversione (`how to convert svg to tiff`) e la verifica dell'output. Con il codice sorgente completo a disposizione, puoi adattare la soluzione per elaborare in batch decine di SVG, modificare le impostazioni DPI o integrare la logica in una pipeline di generazione di documenti più ampia. + +Pronto per la prossima sfida? Prova a convertire una cartella di SVG in un unico TIFF multipagina, sperimenta con diversi schemi di compressione o esplora l'output PDF sostituendo `TiffConversionOptions` con `PdfConversionOptions`. Gli stessi principi si applicano, così ti sentirai a tuo agio nell'estendere questo modello ad altri formati. + +Hai domande o ti sei imbattuto in un caso particolare di SVG? Lascia un commento qui sotto, e buona programmazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/html5-canvas-rendering/_index.md b/html/italian/java/html5-canvas-rendering/_index.md index 8857bd3a2..0461e89e5 100644 --- a/html/italian/java/html5-canvas-rendering/_index.md +++ b/html/italian/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Innanzitutto, parliamo dell'elemento Canvas HTML5. Immaginalo come una tela bian Crea e renderizza HTML5 Canvas con Aspose.HTML per Java. Scopri passo dopo passo come disegnare, definire stili ed esportare in PDF usando questa potente libreria Java. ### [Padroneggiare HTML5 Canvas con Aspose.HTML per Java](./html5-canvas/) Scopri come creare e convertire HTML5 Canvas in PDF usando Aspose.HTML per Java. Questa guida è perfetta per gli sviluppatori che vogliono migliorare i loro progetti web. +### [Come emulare iPhone – Guida completa con Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Scopri come emulare l'iPhone nei tuoi progetti usando Aspose.HTML, con esempi passo passo per simulare il rendering su dispositivi iOS. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/italian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/italian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..eb10b89f2 --- /dev/null +++ b/html/italian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Scopri come emulare iPhone in Java usando Aspose.HTML. Include i passaggi + per impostare un user agent personalizzato e impostare il rapporto di pixel del + dispositivo per una resa mobile accurata. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: it +og_description: Come emulare iPhone in Java? Questo tutorial mostra come impostare + un user agent personalizzato e il rapporto di pixel del dispositivo usando Aspose.HTML, + fornendo pagine mobile pixel‑perfect. +og_title: Come emulare iPhone – Guida passo passo di Aspose.HTML +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Come emulare iPhone – Guida completa con Aspose.HTML +url: /it/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Come emulare iPhone – Guida completa con Aspose.HTML + +Ti sei mai chiesto **come emulare iPhone** quando testi una pagina web in locale? Forse stai facendo il debug di un layout responsive e il browser desktop semplicemente non basta. La buona notizia è che non ti serve un dispositivo fisico—`DocumentSandbox` di Aspose.HTML ti permette di imitare lo schermo, lo user‑agent e il device‑pixel‑ratio (DPR) di un iPhone con poche righe di Java. + +In questo tutorial percorreremo passo passo le operazioni per impostare un **user agent personalizzato**, configurare il **device pixel ratio**, e verificare che tutto funzioni come previsto. Alla fine avrai una sandbox riutilizzabile che rende le pagine proprio come un iPhone 8, e comprenderai perché ogni impostazione è importante. + +## Cosa otterrai + +- Creare un oggetto `Screen` che rispecchia le dimensioni e il DPR di un iPhone. +- Applicare una stringa **user agent personalizzata** così i server pensano che la richiesta provenga da Safari su iOS. +- Costruire un `DocumentSandbox` che lega lo schermo e lo user‑agent insieme. +- Eseguire un `HTMLDocument` all’interno della sandbox e vedere l’output della console che conferma la configurazione. + +Non sono necessarie librerie esterne oltre a Aspose.HTML, e il codice funziona su qualsiasi ambiente Java 17+. + +--- + +![screenshot di come emulare iphone](https://example.com/images/iphone-emulation.png "come emulare iphone usando la sandbox di Aspose.HTML") + +## Come emulare iPhone con Aspose.HTML Sandbox + +La prima cosa di cui abbiamo bisogno è un `Screen` che rifletta le dimensioni fisiche dell’iPhone *e* la sua densità di pixel. Questo è il fulcro di **come emulare iPhone** con precisione. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Perché è importante:** +- La larghezza = 375 px e l’altezza = 667 px sono le dimensioni in pixel CSS che vedrai in Chrome DevTools quando selezioni un iPhone 8. +- Impostare il DPR a 2 dice al motore di rendering di trattare ogni pixel CSS come due pixel fisici, fornendoti testo e immagini nitide—esattamente come fa un dispositivo reale. + +> *Consiglio:* Se devi emulare un iPhone più recente (come l’iPhone 13), cambia semplicemente i numeri a 390 × 844 e DPR = 3. + +## Impostare un User Agent personalizzato (set custom user agent) + +Il passo successivo è **impostare un user agent personalizzato** così il server fornisce l’HTML/CSS specifico per mobile. Senza di esso, molti siti penseranno ancora che tu sia su desktop. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Come funziona:** +- L’intestazione `User-Agent` è il “handshake” che i browser usano per presentarsi. +- Fornendo la stringa esatta che Safari su iOS 16 invia, garantisci che il server restituisca le risorse ottimizzate per mobile (immagini responsive, script adattivi, ecc.). + +Se mai dovrai **impostare il user-agent** per un dispositivo diverso, sostituisci semplicemente la stringa con il valore appropriato—Google Chrome, Firefox, o persino un bot personalizzato. + +## Configurare il Device Pixel Ratio (set device pixel ratio) + +Ora impostiamo effettivamente il **device pixel ratio** all’interno della sandbox. Questo è il passaggio che risponde direttamente a “**come impostare dpr**” per un ambiente simulato. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Spiegazione:** +- Il pattern `Builder` ti permette di collegare fluentemente sia lo schermo (che porta il DPR) sia lo user‑agent. +- Quando la sandbox rende un `HTMLDocument`, finge di essere in esecuzione su un dispositivo con quella esatta densità di pixel. + +> *Perché è importante:* Alcune media query CSS usano `device-pixel-ratio` (ad esempio `@media (-webkit-min-device-pixel-ratio: 2)`). Se non imposti il DPR, quelle regole non si attivano mai, e perderai le risorse ad alta risoluzione. + +## Verificare la configurazione della Sandbox (how to set user-agent) + +Mettiamo la sandbox al lavoro. Il frammento seguente crea un `HTMLDocument`, carica una pagina, e stampa una conferma che la sandbox è attiva. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Output console previsto** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Se esegui il programma e vedi quella riga, hai emulato correttamente **iPhone** con il DPR e lo user‑agent corretti. Apri la pagina in un browser reale e ispeziona le dimensioni del viewport—noterai che corrispondono ai valori iPhone che abbiamo impostato. + +## Problemi comuni e come impostare correttamente il DPR (how to set dpr) + +Anche con il codice giusto, alcuni inconvenienti possono ostacolarti: + +| Problema | Perché accade | Soluzione | +|----------|---------------|-----------| +| **Il DPR rimane a 1** | Hai passato un `Screen` senza il terzo argomento (DPR). | Usa sempre `new Screen(width, height, dpr)`. | +| **User‑Agent ignorato** | La sandbox non è stata collegata all’`HTMLDocument`. | Passa `documentSandbox` come secondo argomento al costruttore di `HTMLDocument`. | +| **Dimensioni errate** | Stai usando pixel hardware invece di pixel CSS. | Ricorda: larghezza/altezza sono **pixel CSS**, non pixel hardware. | +| **Il server invia ancora CSS desktop** | Alcuni siti usano JavaScript per rilevare i dispositivi, non solo l’intestazione. | Considera anche l’iniezione di un meta tag viewport se necessario. | + +Tenendo a mente questi punti, raramente ti troverai in una situazione in cui l’emulazione non si comporta come previsto. + +## Estendere la Sandbox – Prossimi passi + +Ora che sai **come impostare un user agent personalizzato** e **come impostare il dpr**, puoi sperimentare ulteriormente: + +- **Modifica la dimensione dello schermo** per emulare tablet o telefoni più grandi. +- **Cambia lo user‑agent** per testare Chrome su Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Aggiungi cookie o intestazioni** tramite il metodo `setHeaders` della sandbox per test di autenticazione. +- **Cattura uno screenshot** usando `HTMLDocument.renderToFile("output.png")` per confrontare automaticamente le differenze visive. + +Queste estensioni ti permettono di costruire un harness di test completo senza mai lasciare il tuo IDE. + +--- + +## Conclusione + +Abbiamo coperto **come emulare iPhone** usando `DocumentSandbox` di Aspose.HTML, mostrandoti esattamente **come impostare un user agent personalizzato**, **come impostare il device pixel ratio**, e anche le sottili differenze tra “**come impostare user-agent**” e “**come impostare dpr**”. L’esempio completo, eseguibile, dimostra ogni pezzo in un unico posto, così puoi copiare‑incollare, modificare e iniziare a testare layout mobile all’istante. + +Provalo—cambia le dimensioni dello schermo, gioca con diversi user‑agent, e osserva come le tue pagine reagiscono. Quando padroneggerai queste impostazioni, il debug di design responsivi diventerà un gioco da ragazzi, e risparmierai innumerevoli ore a inseguire bug su dispositivi reali. + +Hai domande o vuoi condividere le tue varianti? Lascia un commento qui sotto, e buona emulazione! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/advanced-usage/_index.md b/html/japanese/java/advanced-usage/_index.md index 5dafa1b09..1b9025385 100644 --- a/html/japanese/java/advanced-usage/_index.md +++ b/html/japanese/java/advanced-usage/_index.md @@ -123,6 +123,8 @@ Aspose.HTML for Java を使用して PDF のページサイズを調整する方 Aspose.HTML for Java を使用して XPS のページサイズを調整する方法を学びます。XPS ドキュメントの出力寸法を簡単に制御できます。 ### [Java で JavaScript を実行する方法 – 完全ガイド](./how-to-run-javascript-in-java-complete-guide/) Aspose.HTML for Java を使用して、Java アプリケーション内で JavaScript を実行し、動的コンテンツやロジックを統合する方法を学びます。 +### [トップレベル await の例 – JavaScript で await delay を使用する](./top-level-await-example-using-await-delay-in-javascript/) +JavaScript のトップレベル await を利用し、await delay 関数で非同期処理を遅延させる方法を解説します。 --- diff --git a/html/japanese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/japanese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..1efc5c24f --- /dev/null +++ b/html/japanese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: トップレベルawaitの例として、await delay(JavaScript)、インクリメントカウンタクラス、パブリッククラスフィールド(JavaScript)をライブデモで紹介。 +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: ja +og_description: トップレベルawaitの例で、await delay JavaScript、インクリメントカウンタクラス、パブリッククラスフィールドJavaScriptを簡潔なチュートリアルとして示します。 +og_title: トップレベルawaitの例 – JavaScriptでawait delayを使用する +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: トップレベルawaitの例 – JavaScriptでawait delayを使用する +url: /ja/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# トップレベルawaitの例 – JavaScriptでawait delayを使用する + +モジュールの実行を async IIFE でラップせずに一時停止させる方法を考えたことはありますか?それこそが **top level await example** が可能にすることです。このチュートリアルでは、`await delay javascript` を使って処理を遅延させ、**public class fields javascript** を活用した `increment counter class` を作成する小さなウェブページを順に解説します。最後まで読むと、任意のモダンブラウザで動作する完全なコピー&ペースト可能なスニペットが手に入ります。 + +クラスをパブリックフィールドで定義することから、シンプルな Promise ベースの遅延ヘルパーを組み立てるまで、すべてをカバーします。外部ライブラリやビルドステップは不要で、純粋な HTML と ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### 期待されるコンソール出力 + +``` +Counter class initialized +Final count: 1 +``` + +DevTools でページを開くと、static‑block のメッセージが遅延が完了する **前に** 表示され、クラスが最初に評価されたことが確認できます。 + +## ステップ 5 – コンストラクタの代わりにパブリッククラスフィールドを使う理由 + +なぜ次のように書かなかったのか疑問に思うかもしれません: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +どちらのアプローチも機能しますが、**public class fields javascript** はよりクリーンで宣言的な構文を提供します。フィールドは一度だけ定義され、各コンストラクタ呼び出し内に入れません。そのため、クラスが大きくなると読みやすくなります。さらに、static ブロックはコンストラクタ内に置けないため、初期化ロジックを分離するのが自然です。 + +## ステップ 6 – 実際のアプリ向けに例を適応する + +本番環境では、単一のカウンタだけでは足りないことが多いです。以下は簡単なアイデアです: + +- **複数カウンタ:** 識別子をキーとした `Map` に格納する。 +- **永続化状態:** `console.log` を `localStorage` への書き込みに置き換える。 +- **非同期初期化:** static ブロックを使ってインスタンス生成前にサーバーから設定を取得する。 + +これらすべてのパターンは top‑level await の恩恵を受けます。モジュール読み込み時にデータを一度取得すれば、すべての利用者がすぐに使用可能になるからです。 + +## よくある質問 + +**Q: top‑level await は他のモジュールをブロックしますか?** +A: いいえ。各モジュールは独立して実行されます。await を含むモジュールだけが一時停止し、他のモジュールは並行して読み込みを続けます。 + +**Q: delay の Promise が reject したらどうなりますか?** +A: ハンドリングされないリジェクションはモジュール評価を中止し、コンソールにエラーとして表示されます。優雅なフォールバックが必要な場合は `try…catch` で await をラップしてください。 + +**Q: `static` キーワードは必須ですか?** +A: カウンタ自体には必要ありませんが、static ブロックはコードがロード時に *一度* 実行されることを示す便利な手段です—ロギングや機能検出に最適です。 + +## 結論 + +あなたは **top level await example** を構築し、`await delay javascript`、**increment counter class**、そして **public class fields javascript** の力を示しました。完全な実行可能スニペットは上部にあり、コンソール出力は static ブロックが遅延コードより先に実行されることを証明しています。 + +ここからは、より複雑な非同期フローを試したり、遅延を実際の API 呼び出しに置き換えたり、クラスに追加メソッドを拡張したりできます。モダンな JavaScript では、モジュールをファーストクラスの非同期エンティティとして扱えることを覚えておいてください—余分なラッパーは不要です。 + +コーディングを楽しんで、コメントであなたのバリエーションをぜひ共有してください。このガイドが役立ったら、async パターンに苦戦しているチームメイトと共有しましょう! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/conversion-html-to-other-formats/_index.md b/html/japanese/java/conversion-html-to-other-formats/_index.md index ef52efca8..bb5b293c5 100644 --- a/html/japanese/java/conversion-html-to-other-formats/_index.md +++ b/html/japanese/java/conversion-html-to-other-formats/_index.md @@ -83,6 +83,8 @@ SVG グラフィックを XPS フォーマットに変換し、デバイス間 ## Conversion - HTML to Other Formats Tutorials ### [Converting HTML to PDF](./convert-html-to-pdf/) Aspose.HTML を使用して Java で HTML を PDF に変換する方法を学びます。HTML コンテンツから高品質な PDF を手軽に作成できます。 +### [JavaでHTMLからPDFを作成 – 並列バッチ変換ガイド](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Aspose.HTML を使用して Java で HTML を並列バッチ処理し、複数の PDF を高速に生成する方法を解説します。 ### [Converting HTML to MHTML](./convert-html-to-mhtml/) Aspose.HTML for Java で HTML を MHTML に簡単に変換します。効率的な HTML‑to‑MHTML 変換の手順をご覧ください。 ### [Converting HTML to XPS](./convert-html-to-xps/) @@ -97,6 +99,10 @@ Aspose.HTML で Java の SVG を PDF に変換します。高品質文書変換 Aspose.HTML for Java を使用して SVG を XPS に変換する方法を学びます。シンプルでステップバイステップのガイドでシームレスに変換できます。 ### [JavaでHTMLをPDFに変換 – ページサイズ設定付きステップバイステップガイド](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) JavaでHTMLをPDFに変換し、ページサイズをカスタマイズする手順を詳しく解説します。 +### [PDF カスタムサイズ作成 – Aspose で HTML を PDF に変換](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Aspose.HTML を使用して、HTML からカスタムページサイズの PDF を作成する手順を解説します。 +### [Java で HTML を Markdown に変換 – 元のフォーマットを保持](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Aspose.HTML を使用して Java で HTML を Markdown に変換し、元のフォーマットを保持する方法を学びます。 ## よくある質問 diff --git a/html/japanese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/japanese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..48e41e91e --- /dev/null +++ b/html/japanese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,202 @@ +--- +category: general +date: 2026-03-26 +description: JavaでAspose HTML変換を使用してHTMLをMarkdownに変換し、元の書式を保持したままMarkdownファイルを生成します。ステップバイステップで学びましょう。 +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: ja +og_description: HTML を素早く Markdown に変換し、Markdown ファイルを生成し、元の書式を保持します。Aspose HTML Conversion + for Java を使用して。 +og_title: JavaでHTMLをMarkdownに変換 – 書式を保持 +tags: +- Aspose +- Java +- Markdown +title: JavaでHTMLをMarkdownに変換 – 元のフォーマットを保持 +url: /ja/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# JavaでHTMLをMarkdownに変換 – 元のフォーマットを保持 + +HTMLを**markdownに変換**したいけど、スペースやテーブル、インラインタグが失われるのが心配…ということはありませんか? あなただけではありません。多くの開発者が、ウェブページのコンテンツをクリーンでバージョン管理しやすい形式に移行しようとするときにこの問題に直面します。良いニュースは、数行のJavaコードとAspose HTMLを使えば、**markdownファイルを生成**でき、元のソースと同じように空白もすべて保持されます。 + +このガイドでは、複雑なHTMLファイルの読み込み、**元のフォーマットを保持**するように変換を設定し、最終的に出力を `preserved.md` に書き込むまでの全プロセスを順に解説します。最後まで読むと、すぐに実行できるスニペットが手に入り、各設定が*なぜ*重要なのかが理解でき、カスタムCSSや埋め込みスクリプトといったエッジケースに合わせてコードを調整する方法が分かります。 + +## 必要なもの + +- Java 17(または最近のJDK) – APIはJava 8+で動作しますが、最新バージョンの方がパフォーマンスが向上します。 +- Aspose HTML for Java ライブラリ(バージョン 23.11以降)。Maven Central から取得できます: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- サンプルHTMLファイル(`complex.html`)で、見出し、テーブル、コードブロック、そしてインラインの `` スタイルが含まれています。 +- 少しの忍耐と実験する意欲。 + +以上です。外部ツールやコマンドラインのハックは不要で、純粋なJavaコードだけです。 + +## 手順 1: ソースHTMLドキュメントの読み込み + +最初に行うのは、ソースファイルを指す `HTMLDocument` インスタンスを作成することです。Aspose HTML はファイルを DOM として扱うため、変換前に内容を検査したり変更したりできます。 + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **重要な理由:** この方法でドキュメントを読み込むと、リンクされたリソース(スタイルシートや画像)がファイルの場所に対して相対的に解決されます。このステップを省いて生の文字列を渡すと、間隔に影響する外部CSSが失われる可能性があり、**元のフォーマットを保持**したい場合にまさに問題となります。 + +## 手順 2: Markdown変換オプションの設定 + +Aspose HTML には `MarkdownConversionOptions` クラスがあります。ここで重要なのは `setPreserveOriginalFormatting(true)` プロパティです。これを有効にすると、コンバータは改行やインデント、さらにはMarkdownがネイティブに表現できない生のHTMLスニペットまで保持します。 + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **プロのコツ:** 後でインラインスタイルが除去されていることに気付いた場合は、`markdownOptions.setIncludeHtml(true)` を呼び出すことで、生のHTMLブロックをMarkdown出力に強制的に含めることができます。 + +## 手順 3: 変換の実行 + +ここで `HTMLDocument`、出力ファイルパス、そしてオプションを静的メソッド `Converter.convertHTML` に渡します。このメソッドが裏で重い処理をすべて行います。 + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +呼び出しが完了すると、ソースファイルと同じディレクトリに `preserved.md` が生成されます。任意のエディタで開き、元の改行やテーブルの配置がそのまま保持されていることを確認してください。 + +## 手順 4: 結果の検証(任意だが推奨) + +簡単な妥当性チェックを行うことで、後々の微妙なバグを防げます。ファイルをJavaで再度読み込み最初の数行を出力するか、VS Codeで開くだけでも構いません。 + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +以下のような出力が得られるはずです: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +`` タグがまだ残っているのは、Markdown の標準テーブル構文では正確なスタイリングを再現できないためで、`preserve original formatting` が有効だったおかげです。 + +## 手順 5: まとめ – 完全に実行可能なサンプル + +以下に完全な実行可能クラスを示します。`YOUR_DIRECTORY` を実際のパスに置き換えてください。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +`mvn exec:java` もしくはお好みのIDEでプログラムを実行すると、元のHTMLレイアウトを鏡のように再現した **markdownファイルが生成** されます。 + +## よくある質問とエッジケース + +### 外部CSSファイルでも動作しますか? + +はい。CSSファイルが相対パスで参照可能であれば、Aspose HTML が自動的にロードします。リモートURLからHTMLを取得する場合は、ネットワークアクセスを許可するカスタム `ResourceLoadingOptions` オブジェクトを設定する必要があるかもしれません。 + +### markdownに生のHTMLを含めたくない場合は? + +このオプションを切り替えると、コンバータはすべてを純粋なmarkdown構文に変換しようとし、レイアウトの忠実度が失われる可能性があります。 + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +### ファイルではなく文字列から変換できますか? + +もちろんです。`String` を受け取るコンストラクタを使用してください。 + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +そして、先ほどと同様に `doc` を `Converter.convertHTML` に渡します。 + +### Flexmarkやpandocなどの他のライブラリと何が違うのですか? + +多くのオープンソースツールはHTMLを単なるテキストとして扱い、空白を積極的に削除します。Aspose HTML の `preserveOriginalFormatting` フラグは **独自機能** で、元のソースの空白や改行を尊重し、サポートされていないタグも生のHTMLブロックとして保持します。そのため、このチュートリアルでは正確な忠実度が必要なJava開発者向けに **aspose html conversion** を強調しています。 + +## 本番環境での使用時のヒント + +- **バッチ処理:** 変換ロジックをループで包み、一度に複数のHTMLファイルを処理します。 +- **エラーハンドリング:** `IOException` と `com.aspose.html.exceptions.AssertionFailedException` をキャッチして、リソースが見つからない場合に通知します。 +- **パフォーマンス:** 大規模サイトの断片を変換する際は、`HTMLDocument` インスタンスを再利用します。ライブラリは解析済みのCSSをキャッシュします。 + +## 結論 + +本稿では、Javaで **HTMLをmarkdownに変換** し、出力が **元のフォーマットを保持** される方法を示しました。短く自己完結型のスニペットは、HTMLドキュメントの読み込みから `MarkdownConversionOptions` の設定、変換の実行、結果の検証までの全工程をデモしています。Aspose HTML の堅牢なAPIを使えば、静的サイトジェネレータ、ドキュメントパイプライン、コンテンツ移行ツールなど、あらゆるシナリオでプログラム的に **markdownファイルを生成** できます。 + +次に取り組むと良いこと: + +- **html to markdown java** を使ってウェブサイト全体の大量移行を行う。 +- 変換オプションを調整し、GitHub 風のmarkdownテーブルを出力する。 +- この手法をCI/CDステップと組み合わせ、ソースHTMLが変更されるたびに自動でドキュメントを更新する。 + +自由に試してみて、問題があればコメントを残してください。コーディングを楽しんで! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/japanese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..585582bce --- /dev/null +++ b/html/japanese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,192 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML for Java を使用して HTML からカスタムサイズの PDF を作成します。HTML を PDF に変換し、PDF + のページサイズを数ステップで設定する方法をご紹介します。 +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: ja +og_description: AsposeでHTMLからカスタムサイズのPDFを作成。このガイドでは、HTMLをPDFに変換し、PDFのページサイズを変更・設定する方法を簡単に紹介します。 +og_title: PDFカスタムサイズの作成 – HTMLをPDFに変換するクイックガイド +tags: +- aspose +- java +- pdf +- html +title: PDF カスタムサイズを作成 – AsposeでHTMLをPDFに変換 +url: /ja/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF カスタムサイズの作成 – Aspose を使用した HTML から PDF への変換 + +HTML ファイルから **PDF カスタムサイズを作成** したことはありますか?このチュートリアルでは、**HTML を PDF に変換**し、Aspose.HTML for Java を使用して PDF のページサイズを設定する方法を紹介します。 + +請求書、レポート、電子書籍などを作成する場合、正確なページ寸法が重要です。そうでなければレイアウトがずれたり、切り取られたりしてしまいます。 + +ソース HTML の読み込みから余白の調整まで、すべての手順を順に解説し、すぐに使用できる PDF を完成させます。曖昧な説明はなく、今日からコピー&ペーストできる完全な実行可能サンプルをご提供します。 + +## 必要なもの + +- **Java 17**(または最近の JDK)。 +- **Aspose.HTML for Java** の JAR – 最新バージョンは Maven リポジトリまたは Aspose のウェブサイトから取得できます。 +- 任意のフォルダーに配置したシンプルな `input.html` ファイル。 +- お好みの IDE またはテキストエディタ;私は主に IntelliJ IDEA を使用しますが、Eclipse でも問題なく動作します。 + +これらの前提条件が揃っていれば、途中で “class not found” エラーに遭遇することはありません。 + +それでは、始めましょう。 + +![PDF カスタムサイズ作成例](/images/create-pdf-custom-size.png "カスタムページサイズと余白で生成された PDF を示すスクリーンショット – PDF カスタムサイズ作成") + +## PDF カスタムサイズの作成 – 基本手順 + +以下は完成形の Java プログラムです。`ConvertHtmlToPdfCustomPage.java` というファイル名でコピーし、プロジェクトに Aspose の依存関係を追加した後に実行してください。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### 手順 1 – HTML を PDF に変換: ドキュメントの読み込み + +最初に行うのは、PDF に変換したい **HTML の読み込み** です。`HTMLDocument` はファイルを読み込み、相対リンクを解決し、Aspose がレンダリングできる DOM を構築します。 + +> **なぜ重要か:** HTML が CSS や画像を参照している場合、Aspose はファイルパスを基準にそれらを取得します。絶対パス(`YOUR_DIRECTORY/input.html`)を使用すれば “file not found” の問題を回避できます。 + +### 手順 2 – PDF ページサイズの変更: オプションの設定 + +ここで `PdfConversionOptions` オブジェクトを作成します。 +- `setPageSize(PageSize.A4)` は Aspose に標準的な A4 サイズ(210 × 297 mm)を使用させます。 +- `setPageOrientation(...)` は横向きが必要な場合にページを回転させます。 +- `setMargins(new Margin(20, 20, 20, 20))` は各辺に 20 ポイントの余白を設定します。 + +`PageSize.A4` を `PageSize.LETTER` に置き換えることもできますし、`SizeF` オブジェクトを渡すことで **カスタムサイズ** を指定することも可能です。例: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **プロのコツ:** 1 ポイントは 1/72 インチです。ミリメートルで考える場合は、2.83465 を掛けてポイントに変換します。 + +### 手順 3 – HTML から PDF を生成: 変換の実行 + +`Converter.convertHTML` が実際の変換処理を行います。読み込んだ `HTMLDocument`、出力パス、そして先ほど設定したオプションを受け取ります。 + +コンテンツに応じて **PDF ページサイズを動的に設定**したい場合は、この手順の前に必要な寸法を計算し、`pdfOptions` を調整すれば実現できます。 + +### 手順 4 – 結果の確認 + +`System.out.println` 行は任意ですが、コンソールからプログラムを実行した際にすぐにフィードバックが得られます。実行後に `custom_page.pdf` を開くと、指定通りの 20 ポイント均一余白の A4 縦向き PDF が表示されるはずです。 + +## HTML を PDF に変換 – よくあるバリエーション + +### ファイルパスの代わりにストリームを使用する + +物理的なファイルがない場合もあります。HTML がデータベースや API から取得されることもあるでしょう。その場合は文字列を `ByteArrayInputStream` でラップします。 + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +第2引数は相対リソースを解決するためのベース URL です。 + +### ページ向きの変更 + +レポートが横長の場合は、横向きに切り替えます。 + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### 余白の微調整 + +余白は浮動小数点値を受け付けるため、0.5 pt のような極細のボーダーも設定できます。 + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### 大容量 HTML ファイルの処理 + +非常に大きなドキュメントの場合は、**メモリ効率の良いストリーミング** を有効にすることを検討してください。 + +```java +pdfOptions.setUseMemoryCache(true); +``` + +これにより、Aspose は中間データを RAM に保持せず、一時ファイルに書き出すようになります。 + +## PDF ページサイズの設定 – エッジケースと落とし穴 + +- **フォントが見つからない:** HTML がサーバーにインストールされていないカスタムフォントを使用している場合、PDF はデフォルトフォントにフォールバックします。`pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` でフォントを埋め込みましょう。 +- **画像のスケーリング:** 高解像度画像は PDF を肥大化させます。`pdfOptions.setImageResolution(150);` を使用して品質を保ちつつダウンサンプリングしてください。 +- **CSS の互換性:** すべての CSS プロパティが完全にサポートされているわけではありません。標準的なレイアウト手法を使用してください(flexbox は動作しますが、grid は問題がある場合があります)。 +- **パスの権限:** プロセスが `YOUR_DIRECTORY` に書き込み権限を持っていることを確認してください。権限がないと `IOException` がスローされます。 + +## 期待される出力 + +プログラムを実行すると、以下のような PDF が生成されます(概念図)。 + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- ページサイズ: **A4**(210 × 297 mm)。 +- 向き: **縦向き**。 +- 余白: 各側 **20 pt**。 + +任意の PDF ビューア(Adobe Reader、Chrome など)でファイルを開き、確認してください。 + +## まとめ + +これで、Aspose.HTML for Java を使用して HTML ソースから **PDF カスタムサイズを作成**する方法が分かりました。このチュートリアルでは、**HTML を PDF に変換**、**PDF ページサイズの変更**、**PDF ページサイズの設定**、そしてカスタム余白付きで **HTML から PDF を生成**するという一連の流れを網羅しました。 + +自由に試してみてください。`PageSize.LETTER` を Legal サイズに変更したり、余白を調整したり、独自のフォントを埋め込んだりできます。次のステップとしては、**透かしの追加**、**PDF の暗号化**、または **複数 HTML ファイルのバッチ処理** などに挑戦できるでしょう。これらのトピックはすべて、今回学んだ基本概念に基づいています。 + +特定のエッジケースについて質問がありますか?下にコメントを残してください。問題解決をお手伝いします。コーディングを楽しんでください! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/japanese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..90dcf3f1f --- /dev/null +++ b/html/japanese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,269 @@ +--- +category: general +date: 2026-03-26 +description: 固定スレッドプールでHTMLからPDFを高速に作成。バッチでHTMLからPDFへの変換を学び、Javaで並列タスクを実行。 +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: ja +og_description: 固定スレッドプールを使用してHTMLからPDFを迅速に作成します。HTMLをPDFにバッチ変換し、Javaで並列タスクを実行する方法を学びましょう。 +og_title: JavaでHTMLからPDFを作成する – 並列バッチ変換ガイド +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: JavaでHTMLからPDFを作成する – 並列バッチ変換ガイド +url: /ja/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# JavaでHTMLからPDFを作成 – 並列バッチ変換ガイド + +Ever needed to **create PDF from HTML** but felt stuck watching a single‑threaded conversion crawl forever? You're not the only one. In many real‑world projects we receive dozens of HTML reports that must become PDFs by the end of the day, and doing them one by one just isn’t practical. + +HTMLからPDFを**作成**したくて、シングルスレッドの変換が永遠に遅く感じたことはありませんか? あなただけではありません。実際のプロジェクトでは、1日以内にPDFに変換しなければならないHTMLレポートが何十件も届き、1つずつ処理するのは実用的ではありません。 + +That’s why this tutorial shows you **how to convert HTML to PDF** using a **fixed thread pool**, letting you **batch HTML to PDF** and **run parallel tasks** without breaking a sweat. By the end you’ll have a complete, ready‑to‑run program that turns a folder of HTML files into PDFs in a fraction of the time. + +このチュートリアルでは、**fixed thread pool** を使用して **HTMLをPDFに変換する方法** を示し、**HTMLをPDFにバッチ処理**し、**並列タスクを実行**できるようにします。最後までに、HTMLファイルのフォルダを短時間でPDFに変換する、完全で実行可能なプログラムが手に入ります。 + +## 学べること + +* Aspose.HTML(重い処理を担うライブラリ)の正確な Maven/Gradle 依存関係。 +* CPU バウンドな変換作業に最適な **fixed thread pool** がなぜ理想的か。 +* ソースファイルを一覧化する方法。これにより、数百のドキュメントにもスケールできます。 +* IDE に貼り付ける正確なコード—インポート漏れや “TODO” コメントはありません。 +* エラー処理、プールサイズの調整、出力の検証に関するヒント。 + +No prior knowledge of Aspose.HTML is required, just a basic Java setup and a willingness to experiment. Let’s get started. + +Aspose.HTML の事前知識は不要です。基本的な Java 環境と実験する意欲があれば始められます。さあ、始めましょう。 + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*画像の代替テキスト: create pdf from html – parallel conversion diagram* + +## 手順 1: プロジェクトを準備し Aspose.HTML を追加 + +First things first—your project needs the Aspose.HTML library. If you’re using Maven, drop this into your `pom.xml`: + +まず最初に、プロジェクトに Aspose.HTML ライブラリが必要です。Maven を使用している場合は、以下を `pom.xml` に追加してください: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +For Gradle, it’s just: + +Gradle の場合は、次のように記述します: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Why Aspose.HTML? It’s a commercial library, but it offers a **convert html to pdf** API that handles CSS, JavaScript, and complex layouts out of the box. If you prefer an open‑source alternative you can swap the `Converter.convertHTML` call later, but the threading logic stays the same. + +なぜ Aspose.HTML か? これは商用ライブラリですが、CSS、JavaScript、複雑なレイアウトをそのまま処理できる **convert html to pdf** API を提供します。オープンソースの代替品を好む場合は、後で `Converter.convertHTML` 呼び出しを差し替えることができますが、スレッド処理のロジックは同じです。 + +> **プロのコツ:** バージョン番号は公式リリースノートと同期させてください。新しいバージョンはレンダリング速度が向上していることが多く、並列で多数のタスクを実行する際に重要です。 + +## 手順 2: 並列変換用の Fixed Thread Pool を構築 + +When you have a batch of files, you don’t want to spawn an unbounded number of threads—your OS will start thrashing. A **fixed thread pool** gives you a predictable amount of concurrency while keeping memory usage under control. + +ファイルのバッチがある場合、無制限にスレッドを生成したくありません—OS がスラッシングを起こす可能性があります。**fixed thread pool** を使用すると、同時実行数を予測可能に保ちつつ、メモリ使用量を制御できます。 + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Why four? On a typical 8‑core machine, half the cores can stay free for I/O and the OS. You can experiment: `Runtime.getRuntime().availableProcessors()` returns the core count, and a rule‑of‑thumb is `cores / 2`. Remember, each conversion is CPU‑intensive, so more threads than cores usually hurts performance. + +なぜ 4 なのか? 一般的な 8 コアマシンでは、コアの半分を I/O や OS 用に空けておくのが理想です。試してみてください: `Runtime.getRuntime().availableProcessors()` はコア数を返し、経験則として `cores / 2` が目安です。各変換は CPU 集中型なので、コア数以上のスレッドは通常パフォーマンスを低下させます。 + +## 手順 3: 変換したい HTML ファイルを収集 + +The next piece of the puzzle is the **batch html to pdf** list. You can hard‑code an array (as in the example) or scan a directory. Here’s a flexible version that reads every `.html` file from a folder: + +次のステップは **batch html to pdf** リストです。例のように配列でハードコードすることも、ディレクトリをスキャンすることもできます。以下はフォルダ内のすべての `.html` ファイルを読み取る柔軟なバージョンです: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +This approach means you can drop new files into the folder and the program will pick them up automatically—perfect for a nightly batch job. + +この方法により、新しいファイルをフォルダに入れるだけでプログラムが自動的に検出します—夜間バッチジョブに最適です。 + +## 手順 4: 各ファイルに対して変換タスクを送信(並列タスクを実行) + +Now the fun part: each file becomes a **Runnable** (or `Callable`) that the pool executes. The code below mirrors the original example but adds error handling and a small log message. + +さあ楽しい部分です:各ファイルはプールが実行する **Runnable**(または `Callable`)になります。以下のコードは元の例を踏襲しつつ、エラーハンドリングと小さなログメッセージを追加しています。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Why wrap the conversion in a try‑catch?** When you **run parallel tasks**, a single malformed HTML file could otherwise bring the whole executor down. By catching exceptions locally we ensure the rest of the batch keeps chugging along. + +**なぜ変換を try‑catch でラップするのか?** **run parallel tasks** すると、1つの不正な HTML ファイルが全体のエグゼキュータを停止させてしまう可能性があります。例外をローカルで捕捉することで、バッチの残りは引き続き処理されます。 + +## 手順 5: エグゼキュータをシャットダウンし完了を待つ + +After all jobs are submitted, you must tell the pool to stop accepting new work and then wait until everything finishes. This guarantees that the JVM doesn’t exit prematurely. + +すべてのジョブを送信した後、プールに新しい作業の受け付けを停止させ、すべてが完了するまで待機する必要があります。これにより、JVM が早期に終了することを防げます。 + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +If you have a massive folder (thousands of files) you might increase the timeout or implement a progress monitor. The key is to **gracefully shut down**—this is the hallmark of production‑ready code. + +フォルダが非常に大きい(数千ファイル)場合は、タイムアウトを伸ばすかプログレスモニタを実装すると良いでしょう。重要なのは **gracefully shut down** することです—これが本番レベルのコードの特徴です。 + +## 完全動作例 + +Putting everything together, here’s a self‑contained class you can copy‑paste into `src/main/java` and run: + +すべてをまとめると、`src/main/java` にコピー&ペーストして実行できる自己完結型クラスがこちらです: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**期待される出力**(サンプル): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +If you open the generated `.pdf` files you’ll see the original HTML layout preserved—fonts, tables, and even basic JavaScript‑driven content rendered correctly. + +生成された `.pdf` ファイルを開くと、元の HTML レイアウトが保持されていることが分かります—フォント、テーブル、さらには基本的な JavaScript によるコンテンツも正しくレンダリングされています。 + +## よくある質問とエッジケース + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/conversion-html-to-various-image-formats/_index.md b/html/japanese/java/conversion-html-to-various-image-formats/_index.md index b8d96e2dd..1e8df128d 100644 --- a/html/japanese/java/conversion-html-to-various-image-formats/_index.md +++ b/html/japanese/java/conversion-html-to-various-image-formats/_index.md @@ -99,6 +99,12 @@ Aspose.HTML for Java を使用して HTML を TIFF に簡単に変換する方 ### [HTML を WebP に変換 – Aspose.HTML を使用した完全な Java ガイド](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Aspose.HTML for Java を使用して HTML を WebP に変換します。完全な Java ガイドでステップバイステップの手順を紹介します。 +### [HTML を WebP に変換 – 完全な Java ガイド](./convert-html-to-webp-complete-java-guide/) +Aspose.HTML for Java を使用して HTML を WebP に変換する方法を学びます。ステップバイステップの完全ガイドです。 + +### [Java で SVG からマルチページ TIFF を作成 – ステップバイステップガイド](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Aspose.HTML for Java を使用して、SVG をマルチページ TIFF に変換する方法を学びます。実践的な手順で簡単に実装できます。 + ## よくある質問 **Q: 追加の画像ライブラリなしで Java で HTML を PNG に変換できますか?** diff --git a/html/japanese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/japanese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..c98fd8637 --- /dev/null +++ b/html/japanese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML を使用して HTML を WebP に迅速に変換します。HTML を WebP として保存する方法、HTML を + WebP にレンダリングする方法、HTML から WebP を生成する方法を数ステップで学びましょう。 +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: ja +og_description: Aspose.HTML を使用して HTML を WebP にすばやく変換します。このチュートリアルでは、HTML を WebP としてレンダリングし、Java + で HTML から WebP を生成する方法を示します。 +og_title: HTML を WebP に変換 – 完全な Java ガイド +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML を WebP に変換 – 完全な Java ガイド +url: /ja/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML を WebP に変換 – 完全な Java ガイド + +Ever needed to **HTML を WebP に変換** but weren’t sure which library could handle the job without a headache? You’re not alone. Many developers hit this snag when trying to serve lightweight images generated from dynamic pages. The good news? With Aspose.HTML for Java you can *HTML を WebP として保存* in a single method call, and the whole process is as smooth as butter. + +In this tutorial we’ll walk through everything you need to know: from setting up the Aspose.HTML dependency, to tweaking compression settings, and finally rendering the HTML document as a WebP file you can serve on the web. By the end you’ll be able to **HTML を WebP としてレンダリング**, **HTML から WebP を生成**, and understand the “why” behind each configuration option. No external scripts, no command‑line gymnastics—just clean Java code. + +## 前提条件 + +- Java 8 以上がインストールされていること(ライブラリは JDK 8+ をサポート)。 +- 依存関係管理のための Maven または Gradle(Maven の例を示します)。 +- WebP 画像に変換したいシンプルな HTML ファイル(`input.html`)。 +- お好みの IDE またはテキストエディタ—IntelliJ IDEA が便利ですが、どれでも構いません。 + +すべて揃いましたか?では、始めましょう。 + +## ステップ 1: Aspose.HTML をプロジェクトに追加 + +まず最初に、クラスパスに Aspose.HTML ライブラリを追加する必要があります。Maven を使用している場合は、`pom.xml` に以下を追加してください: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle の場合は、次のようになります。 + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +このステップが重要な理由は何でしょうか? JAR が無ければ `HTMLDocument`、`Converter`、`WebpConversionOptions` クラスは存在せず、コンパイラは `ClassNotFoundException` をスローします。依存関係を追加すると、WebP エンコードに必要なネイティブバイナリも自動的に取得されるため、外部の DLL や `.so` ファイルを探す手間が省けます。 + +> **プロのヒント:** 依存関係は常に最新の状態に保ちましょう。新しい Aspose のリリースでは、WebP 圧縮アルゴリズムが改善され、最新の HTML5 機能へのサポートが追加されることが多いです。 + +## ステップ 2: ソース HTML ドキュメントを読み込む + +ライブラリの準備ができたので、変換したい HTML を読み込むことができます。`HTMLDocument` クラスはファイルを解析し、DOM を構築します。これが後でコンバータによってレンダリングされます。 + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +コメント “Load the source HTML document” に注目してください—これは、ページが動的なスタイリングに依存している場合、変換前に CSS や JavaScript を注入できることを示すリマインダーです。このステップを省略すると、コンバータはレンダリングするものがなく、空白の画像が生成されます。 + +## ステップ 3: WebP 変換オプションを設定 + +Aspose.HTML は出力に対して細かな制御を提供します。ほとんどの場合、品質設定を 85 前後にした **lossy** WebP が、視覚的忠実度とファイルサイズのバランスをうまく取れます。 + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +なぜ lossy を選ぶのでしょうか? WebP の lossy モードは予測符号化を使用し、PNG と比較して 30‑50 % ファイルサイズを削減しながら、ほとんどの視覚的ディテールを保持します。ピクセル単位で完全な結果が必要な場合(例: ロゴ)、`CompressionMode` を `Lossless` に切り替え、`quality` を 100 に上げてください。 + +## ステップ 4: WebP 画像に変換して保存 + +ドキュメントとオプションが準備できたら、変換はワンライナーで完了します。静的メソッド `Converter.convertHTML` がすべての重い処理を行い、DOM をビットマップにレンダリングし、WebP としてエンコードし、ディスクに書き出します。 + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +以上です!プログラムが終了すると、`output.webp` がソース HTML の隣に生成されているはずです。これでウェブサーバーから直接配信したり、`` 要素に埋め込んだり、WebP をサポートする任意のコンテキストで使用できます。 + +## ステップ 5: 結果を検証する(任意ですが推奨) + +変換が成功し、画像が期待通りかどうかを二重チェックするのは常に良い考えです。Chrome、Firefox、または WebP をサポートする任意の画像ビューアで WebP ファイルを開くことができます。簡単なプログラム的チェックとして、ファイルサイズと寸法を読み取ることもできます: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +ファイルが予想外に大きい、または寸法がずれている場合は、**ステップ 3** に戻り、`quality` やソース HTML のビューポート設定を調整してください。WebP はルート要素の CSS `width`/`height` を尊重するため、`` タグが欠けていると予期しない結果になることがあります。 + +## 完全な動作例 + +すべてをまとめると、以下が実行可能な完全な Java クラスです: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +`HtmlToWebp.java` として保存し、`YOUR_DIRECTORY` を実際のフォルダパスに置き換えて、`javac` でコンパイルし、`java HtmlToWebp` で実行してください。コンソールにファイルサイズと寸法が確認できる出力が表示され、最後に成功メッセージが出ます。 + +![convert html to webp example](/images/convert-html-to-webp.png "Screenshot of a WebP image generated from HTML – convert html to webp") + +## よくある質問とエッジケース + +### HTML が外部リソース(CSS、画像)を参照している場合は? + +Aspose.HTML は `input.html` の位置を基準に相対 URL を自動的に解決します。リソースがファイルシステムまたはウェブサーバーからアクセス可能であることを確認してください。カスタムのベース URL を注入する必要がある場合は、`URI` ベースを受け取るオーバーロードされた `HTMLDocument` コンストラクタを使用します。 + +### 同じ HTML から複数の WebP 画像(例: 異なるビューポートサイズ)を生成できますか? + +もちろんです。変換ロジックをループで囲み、各呼び出し前に `webpOptions.setWidth()` と `setHeight()` を調整し、出力ファイル名をユニークにすれば実現できます。これは、モバイルとデスクトップ向けに異なる画像サイズを提供するレスポンシブデザインに便利です。 + +### ロスレス圧縮に切り替えるには? + +次の行を置き換えてください: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +以下のように変更します: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +ロスレスはピクセル単位で完全な忠実度を保証しますが、ファイルは大きくなります—必要なときだけ使用してください。 + +### Linux/macOS でも動作しますか? + +はい。Aspose.HTML の JAR には Windows、Linux、macOS 用のネイティブバイナリが同梱されているため、同じ Java コードがどこでも動作します。適切な JRE がインストールされていることを確認してください。 + +## 結論 + +これで、Aspose.HTML for Java を使用して **HTML を WebP に変換する方法** を学びました。依存関係の設定から圧縮の微調整、結果の検証まで網羅しました。この知識があれば、**HTML を WebP として保存**、**HTML を WebP にレンダリング**、**HTML から WebP を生成** がオンザフライで可能になり、動的画像パイプライン、メールニュースレター、軽量ビジュアルが重要なあらゆるシナリオに最適です。 + +次は何をしますか?さまざまな `quality` 値を試したり、`Lossless` モードを探求したり、Spring Boot の REST エンドポイントにこのコンバータを統合して、Web サービスが要求に応じて WebP 画像を返すようにしてみてください。また、HTML ファイルのフォルダをバッチ処理したり、ヘッドレス Chrome と組み合わせて SVG から WebP への変換を行うことも検討できます。 + +他の言語で **HTML を変換する方法** や、特定のエッジケースのトラブルシューティングについて質問がありますか?下のコメント欄に書き込んでください。ハッピーコーディング! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/japanese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..6c2a75c5f --- /dev/null +++ b/html/japanese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,165 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML を使用して Java で SVG からマルチページ TIFF を作成します。SVG を TIFF に変換する方法、Java + で SVG ドキュメントを読み込む方法、そしてマルチページ TIFF ファイルを作成する方法を学びましょう。 +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: ja +og_description: JavaでSVGからマルチページTIFFを作成する。このチュートリアルでは、SVGドキュメントの読み込み、TIFFオプションの設定、そしてロスレスのマルチページTIFFの生成方法を示します。 +og_title: JavaでSVGからマルチページTIFFを作成する完全ガイド +tags: +- Java +- Aspose.HTML +- Image Conversion +title: JavaでSVGからマルチページTIFFを作成する – ステップバイステップガイド +url: /ja/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java で SVG からマルチページ TIFF を作成する – ステップバイステップガイド + +SVG から **マルチページ TIFF を作成** したいけど、どこから始めればいいか分からないことはありませんか?同じ壁にぶつかる開発者は多いです。印刷向けでロスレスな複数ページドキュメントが必要なときに役立ちます。このガイドでは、**SVG から TIFF への変換方法**、Java で SVG ドキュメントを読み込む方法、そして LZW 圧縮で **マルチページ TIFF** ファイルを作成するための出力設定を示す、実行可能な完全ソリューションを順を追って解説します。 + +Aspose.HTML ライブラリのセットアップから、大きな SVG アセットの取り扱いまで網羅します。チュートリアルの最後には、どのプロジェクトにもすぐに組み込める単一の Java クラスが手に入り、マルチページ TIFF を瞬時に生成できるようになります。 + +## 必要なもの + +- **Java Development Kit (JDK) 8 以上** – 標準 Java API を使用します。 +- **Aspose.HTML for Java**(バージョン 23.5 以降) – 唯一のサードパーティ依存です。 +- **サンプル SVG ファイル**(任意のベクター画像で構いません。ここでは `input.svg` と呼びます)。 +- お好みの IDE、またはシンプルなテキストエディタとターミナル。 + +追加のビルドツールは不要です。例は `javac` でコンパイルし、`java` で実行できます。Maven や Gradle を使う場合は、Aspose.HTML の JAR をクラスパスに追加してください。 + +![Create multipage tiff example](create-multipage-tiff.png){alt="マルチページ TIFF 作成出力"} + +## Step 1 – SVG ドキュメントを読み込む (load svg document java) + +最初に行うべきことは、SVG を `HTMLDocument` オブジェクトに読み込むことです。Aspose.HTML は SVG ファイルを HTML ドキュメントとして扱うため、統一された API で変換が可能になります。 + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**重要ポイント:** SVG を `HTMLDocument` として読み込むことで、フルレンダリングエンジンにアクセスでき、スタイル、フォント、埋め込み画像が正しく解釈された状態で変換できます。生のバイト列を直接コンバータに渡すと、要素が欠落したり色が正しく表示されなかったりすることがあります。 + +## Step 2 – TIFF オプションを設定する (how to create multipage tiff) + +次に `TiffConversionOptions` を設定します。このオブジェクトはページレイアウトから圧縮方式まで全てを制御します。マルチページ出力を実現するために `setMultipage(true)` を有効にし、ロスレスで広くサポートされている **LZW** 圧縮を選択します。 + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**重要ポイント:** `setMultipage(true)` を省略すると、ライブラリは単一ページの TIFF を生成し、SVG から推測できる追加ページ(たとえば複数の `` ルート要素がある場合)を破棄します。LZW は画像品質を犠牲にせずファイルサイズを抑えるので、アーカイブや印刷パイプラインに最適です。 + +## Step 3 – 変換を実行する (how to convert svg to tiff) + +ここで本格的な処理が行われます。静的メソッド `Converter.convertSVG` に読み込んだドキュメント、出力パス、先ほど定義したオプションを渡します。 + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**重要ポイント:** 静的メソッド `convertSVG` を使用するのが最もシンプルな変換トリガーです。内部では Aspose.HTML がベクトルデータをデフォルト 96 dpi でラスタライズします。高品質が必要な場合は `tiffOptions.setResolution(...)` で DPI を調整できます。 + +## Step 4 – 結果を検証する + +変換が完了したら、ファイルが存在し期待通りのページ数が含まれているか確認しましょう。マルチページ TIFF に対応した画像ビューア(例: IrfanView、XnView、または Java の `ImageIO`)で簡単にチェックできます。 + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +プログラムを実行: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +コンソールに成功メッセージが表示され、`output.tiff` を開くと SVG のルート要素ごとに 1 ページ(または SVG が 1 つのキャンバスしか持たない場合は単一ページ)が確認できるはずです。 + +## よくある落とし穴とプロのコツ + +| 問題 | 発生理由 | 解決策 | +|------|----------|--------| +| **フォントが欠落** | SVG がサーバーにインストールされていないシステムフォントを参照している | フォントを SVG に埋め込むか、Aspose.HTML の `FontSettings` でカスタムフォントフォルダを指定 | +| **ファイルサイズが大きい** | 高解像度ラスタライズにより TIFF が肥大化 | `tiffOptions.setResolution(150)` で DPI を下げるか、デバッグ時のみ `Compression.NONE` に切り替える | +| **複数ページが生成されない** | SVG に `` 要素が 1 つしかない | ソースを別々の SVG ファイルに分割するか、各論理ページを `` タグでラップしてから変換 | +| **未対応の SVG 機能** | 特定のフィルタやアニメーションが描画されない | SVG を簡素化するか、Inkscape などでフィルタをフラット化して事前処理する | + +**プロのコツ:** ページ順序を指定したい場合は、SVG ファイル名を `page1.svg`, `page2.svg` のように付け、ループで順に処理し、`tiffOptions.setMultipage(true)` を毎回設定して同一 TIFF に追記します。 + +## 完全動作サンプル + +以下は `SvgToMultipageTiff.java` というファイル名で保存できる、完全な自己完結型 Java クラスです。インポート文、コメント、エラーハンドリングを含んでおり、実運用にも耐えられる構成になっています。 + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +コードを実行すると、各 SVG のルートが別ページになる TIFF が生成されます。これが **マルチページ TIFF を作成** したいときに必要なすべてです。 + +## 結論 + +Java と Aspose.HTML を使って SVG から **マルチページ TIFF を作成** する方法をご紹介しました。チュートリアルでは SVG の読み込み (`load svg document java`)、変換オプションの設定、変換実行 (`how to convert svg to tiff`)、そして出力の検証までを網羅しました。フルソースが手元にあれば、数十個の SVG をバッチ処理したり、DPI 設定を調整したり、より大規模なドキュメント生成パイプラインに組み込んだりできます。 + +次のステップに挑戦してみませんか?フォルダ内の SVG をすべてまとめて単一のマルチページ TIFF に変換したり、圧縮方式を変えてみたり、`TiffConversionOptions` を `PdfConversionOptions` に差し替えて PDF 出力に挑戦したり。原理は同じなので、他フォーマットへの拡張もスムーズに行えるはずです。 + +質問や奇妙な SVG のエッジケースに遭遇したら、ぜひコメントで教えてください。ハッピーコーディング! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/html5-canvas-rendering/_index.md b/html/japanese/java/html5-canvas-rendering/_index.md index 9df5ca611..72d94f68b 100644 --- a/html/japanese/java/html5-canvas-rendering/_index.md +++ b/html/japanese/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ HTML5 Canvasをマスターする準備はできていますか?ガイド[Aspo Aspose.HTML for Java を使用して HTML5 Canvas を作成し、レンダリングします。この強力な Java ライブラリを使用して描画、スタイル設定、PDF へのエクスポートを行う方法をステップ バイ ステップで学習します。 ### [Aspose.HTML for Java で HTML5 Canvas をマスターする](./html5-canvas/) Aspose.HTML for Java を使用して HTML5 Canvas を作成し、PDF に変換する方法を学びます。このガイドは、Web プロジェクトを強化したい開発者に最適です。 +### [iPhone をエミュレートする方法 – Aspose.HTML 完全ガイド](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Aspose.HTML を使用して iPhone の表示をエミュレートし、デバイス固有のレンダリングを再現する手順を解説します。 {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/japanese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/japanese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..e500385e3 --- /dev/null +++ b/html/japanese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML を使用して Java で iPhone をエミュレートする方法を学びます。正確なモバイルレンダリングのために、カスタムユーザーエージェントの設定とデバイスピクセル比の設定手順が含まれています。 +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: ja +og_description: JavaでiPhoneをエミュレートする方法は?このチュートリアルでは、Aspose.HTML を使用してカスタムユーザーエージェントとデバイスピクセル比を設定し、ピクセルパーフェクトなモバイルページを提供する方法を示します。 +og_title: iPhoneをエミュレートする方法 – Aspose.HTMLのステップバイステップガイド +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: iPhoneをエミュレートする方法 – Aspose.HTMLを使った完全ガイド +url: /ja/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# iPhoneのエミュレーション方法 – Aspose.HTMLによる完全ガイド + +ローカルでウェブページをテストするときに **iPhoneをエミュレートする方法** を考えたことはありませんか?レスポンシブレイアウトのデバッグをしていて、デスクトップブラウザだけでは足りないことがあるかもしれません。良いニュースは、実機は不要です—Aspose.HTML の `DocumentSandbox` を使えば、数行の Java で iPhone の画面、ユーザーエージェント、デバイスピクセル比 (DPR) を模倣できます。 + +このチュートリアルでは、**カスタムユーザーエージェント** の設定、**デバイスピクセル比** の構成、そしてすべてが期待通りに動作することを確認する手順を正確に解説します。最後まで読むと、iPhone 8 と同じようにページをレンダリングする再利用可能なサンドボックスが手に入り、各設定がなぜ重要か理解できるようになります。 + +## 達成できること + +- iPhone の寸法と DPR を反映した `Screen` オブジェクトを作成する。 +- サーバーが iOS の Safari からのリクエストと認識するように **カスタムユーザーエージェント** 文字列を適用する。 +- 画面とユーザーエージェントを結びつけた `DocumentSandbox` を構築する。 +- サンドボックス内で `HTMLDocument` を実行し、設定が正しく反映されたことをコンソール出力で確認する。 + +Aspose.HTML 以外の外部ライブラリは不要で、コードは任意の Java 17+ 環境で実行できます。 + +--- + +![iPhoneエミュレーション方法のスクリーンショット](https://example.com/images/iphone-emulation.png "Aspose.HTMLサンドボックスを使用したiPhoneエミュレーション方法") + +## Aspose.HTML Sandbox を使用した iPhone のエミュレーション方法 + +最初に必要なのは、iPhone の物理的寸法 *および* ピクセル密度を反映した `Screen` です。これが **iPhoneを正確にエミュレートする** コアになります。 + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**この設定が重要な理由:** +- 幅 = 375 px、高さ = 667 px は、Chrome DevTools で iPhone 8 を選択したときに表示される CSS ピクセル寸法です。 +- DPR を 2 に設定すると、レンダリングエンジンは各 CSS ピクセルを 2 つの物理ピクセルとして扱い、テキストや画像がくっきり表示されます—実機と同様の結果が得られます。 + +> *Pro tip:* 新しい iPhone(例: iPhone 13)をエミュレートしたい場合は、数値を 390 × 844、DPR = 3 に変更するだけです。 + +## カスタムユーザーエージェントの設定 (set custom user agent) + +次に、サーバーがモバイル向けの HTML/CSS を返すように **カスタムユーザーエージェント** を設定する必要があります。これがないと、多くのサイトはデスクトップとみなしてしまいます。 + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**この仕組み:** +- `User-Agent` ヘッダーは、ブラウザが自分自身を宣言するためのハンドシェイクです。 +- iOS 16 の Safari が送信する正確な文字列を提供することで、サーバーはモバイル最適化されたアセット(レスポンシブ画像、適応スクリプトなど)を返すようになります。 + +別のデバイス用に **ユーザーエージェントを設定する方法** が必要な場合は、文字列を適切なもの(Google Chrome、Firefox、あるいはカスタムボット)に置き換えるだけです。 + +## デバイスピクセル比の構成 (set device pixel ratio) + +ここで実際にサンドボックス内で **デバイスピクセル比** を設定します。これはシミュレート環境で “**dpr の設定方法**” に直接答えるステップです。 + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**解説:** +- `Builder` パターンにより、画面(DPR を保持)とユーザーエージェントの両方を流暢に結び付けられます。 +- サンドボックスが `HTMLDocument` をレンダリングするとき、指定したピクセル密度のデバイス上で動作しているかのように振る舞います。 + +> *なぜ気にすべきか:* 一部の CSS メディアクエリは `device-pixel-ratio`(例: `@media (-webkit-min-device-pixel-ratio: 2)`)を使用します。DPR を設定しないと、これらのルールは発火せず、高解像度アセットを取得できません。 + +## サンドボックス設定の検証 (how to set user-agent) + +サンドボックスを実際に動かしてみましょう。以下のスニペットは `HTMLDocument` を作成し、ページを読み込んで、サンドボックスが有効であることを確認するメッセージを出力します。 + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**期待されるコンソール出力** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +プログラムを実行してこの行が表示されれば、正しい DPR とユーザーエージェントで **iPhoneをエミュレートする方法** が成功したことになります。実際のブラウザでページを開き、ビューポート寸法を確認すると、設定した iPhone の値と一致していることが分かります。 + +## よくある落とし穴と DPR の正しい設定方法 (how to set dpr) + +正しいコードでも、いくつかの落とし穴でつまずくことがあります: + +| 問題 | 発生理由 | 対策 | +|------|----------|------| +| **DPRが1のまま** | `Screen` を第3引数 (DPR) なしで渡しています。 | 必ず `new Screen(width, height, dpr)` を使用してください。 | +| **User‑Agentが無視される** | サンドボックスが `HTMLDocument` に紐付けられていません。 | `HTMLDocument` コンストラクタの第2引数に `documentSandbox` を渡してください。 | +| **サイズが間違っている** | デバイスピクセルを CSS ピクセルとして使用しています。 | 幅/高さは **CSS ピクセル** であり、ハードウェアピクセルではないことを覚えておいてください。 | +| **サーバーがデスクトップ用CSSを返す** | 一部のサイトはヘッダーだけでなく JavaScript でデバイスを検出します。 | 必要に応じて viewport メタタグを挿入することも検討してください。 | + +これらを意識しておけば、エミュレーションが期待通りに動作しないケースはほとんど起きません。 + +## サンドボックスの拡張 – 次のステップ + +**カスタムユーザーエージェントの設定方法** と **dpr の設定方法** が分かったので、さらに実験できます: + +- **画面サイズを変更** してタブレットや大型スマートフォンをエミュレートする。 +- **ユーザーエージェントを入れ替え** て Android 上の Chrome をテストする(例: `"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`)。 +- **クッキーやヘッダーを追加** するには、サンドボックスの `setHeaders` メソッドを使って認証テストを行う。 +- **スクリーンショットを取得** するには `HTMLDocument.renderToFile("output.png")` を使用し、視覚的な差分を自動で比較できるようにする。 + +これらの拡張により、IDE を離れることなくフル機能のテストハーネスを構築できます。 + +--- + +## 結論 + +Aspose.HTML の `DocumentSandbox` を使った **iPhoneのエミュレーション方法** を解説し、**カスタムユーザーエージェントの設定方法**、**デバイスピクセル比の設定方法**、さらには “**ユーザーエージェントの設定方法**” と “**dpr の設定方法**” の微妙な違いまで示しました。完全に実行可能なサンプルはすべてを一箇所にまとめているので、コピー&ペーストして調整し、すぐにモバイルレイアウトのテストを開始できます。 + +ぜひ試してみてください—画面寸法を入れ替え、さまざまなユーザーエージェントで実験し、ページの挙動を確認しましょう。これらの設定をマスターすれば、レスポンシブデザインのデバッグは楽々になり、実機でバグを追いかける時間を大幅に削減できます。 + +質問や独自のバリエーションを共有したい方は、下のコメント欄に投稿してください。エミュレーションを楽しんでください! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/advanced-usage/_index.md b/html/korean/java/advanced-usage/_index.md index 983a75607..85b01a027 100644 --- a/html/korean/java/advanced-usage/_index.md +++ b/html/korean/java/advanced-usage/_index.md @@ -127,6 +127,8 @@ Aspose.HTML for Java를 사용해 PDF 페이지 크기를 조정하는 방법을 Aspose.HTML for Java를 사용해 XPS 페이지 크기를 조정하는 방법을 배웁니다. XPS 문서의 출력 치기를 손쉽게 제어합니다. ### [Java에서 JavaScript 실행하기 – 완전 가이드](./how-to-run-javascript-in-java-complete-guide/) Java 애플리케이션 내에서 JavaScript 코드를 실행하고, 엔진 설정 및 스크립트 통합 방법을 단계별로 배웁니다. +### [Top-level await 예제 – JavaScript에서 await delay 사용](./top-level-await-example-using-await-delay-in-javascript/) +JavaScript에서 top-level await을 사용해 await delay를 구현하는 방법을 단계별로 배웁니다. --- diff --git a/html/korean/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/korean/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..84087e547 --- /dev/null +++ b/html/korean/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: 실시간 데모에서 await delay JavaScript, 카운터 증가 클래스, 그리고 public class fields + JavaScript를 보여주는 최상위 await 예제. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: ko +og_description: 간결한 튜토리얼에서 await delay JavaScript, 카운터 증가 클래스, 그리고 public class fields + JavaScript를 보여주는 최상위 await 예제. +og_title: 최상위 await 예제 – JavaScript에서 await delay 사용 +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: 최상위 await 예제 – JavaScript에서 await delay 사용 +url: /ko/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await example – Using await delay in JavaScript + +모듈 실행을 async IIFE 로 감싸지 않고도 일시 중지할 수 있는 방법이 궁금하셨나요? 바로 **top level await example**이 해답입니다. 이 튜토리얼에서는 `await delay javascript` 를 사용해 작업을 연기하고, **public class fields javascript** 를 활용하는 `increment counter class` 를 만드는 작은 웹 페이지를 단계별로 살펴봅니다. 끝까지 따라오시면 최신 브라우저 어디서든 바로 복사‑붙여넣기 할 수 있는 완전한 코드 스니펫을 얻으실 수 있습니다. + +클래스에 public 필드를 정의하는 방법부터 간단한 promise 기반 딜레이 헬퍼를 연결하는 과정까지 모두 다룹니다. 외부 라이브러리나 빌드 단계 없이 순수 HTML, ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Expected Console Output + +``` +Counter class initialized +Final count: 1 +``` + +DevTools 로 페이지를 열면 static‑block 메시지가 딜레이가 끝나기 **앞에** 표시되어 클래스가 먼저 평가됐음을 확인할 수 있습니다. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +다음과 같이 작성하지 않은 이유가 궁금할 수 있습니다: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +두 방식 모두 동작하지만 **public class fields javascript** 를 사용하면 더 깔끔하고 선언적인 문법을 얻을 수 있습니다. 필드가 한 번만 정의되므로 매번 생성자 호출 시마다 중복 정의하지 않아도 되며, 클래스가 커질수록 가독성이 향상됩니다. 또한 static 블록은 생성자 안에 넣을 수 없으므로 초기화 로직을 분리하기에 자연스럽습니다. + +## Step 6 – Adapting the Example for Real‑World Apps + +실제 애플리케이션에서는 하나의 카운터보다 더 많은 로직이 필요합니다. 몇 가지 아이디어를 제시합니다: + +- **다중 카운터:** 식별자를 키로 하는 `Map` 에 저장 +- **영속 상태:** `console.log` 대신 `localStorage` 에 기록 +- **비동기 초기화:** static 블록에서 서버로부터 설정을 받아 인스턴스 생성 전에 사용 + +이러한 패턴도 모두 top‑level await 의 혜택을 받습니다. 모듈 로드 시 한 번만 데이터를 가져와 모든 소비자가 사용할 수 있게 보장하기 때문입니다. + +## Frequently Asked Questions + +**Q: Does top‑level await block other modules?** +A: No. Each module runs independently. Only the module that contains the await is paused; other modules continue loading in parallel. + +**Q: What if the delay promise rejects?** +A: An unhandled rejection will abort the module evaluation and surface as an error in the console. Wrap the await in a `try…catch` if you need graceful fallback. + +**Q: Is the `static` keyword required?** +A: Not for the counter itself, but the static block is a handy way to demonstrate that code runs *once* at load time—great for logging or feature‑detection. + +## Conclusion + +You’ve just built a **top level await example** that showcases `await delay javascript`, an **increment counter class**, and the power of **public class fields javascript**. The complete, runnable snippet lives above, and the console output proves that the static block fires before the delayed code runs. + +From here you can experiment with more complex async flows, swap the delay for a real API call, or expand the class with additional methods. Remember, modern JavaScript lets you treat modules as first‑class async entities—no extra wrappers needed. + +Happy coding, and feel free to drop your variations in the comments. If you found this guide useful, share it with a teammate who’s still wrestling with async patterns! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/conversion-html-to-other-formats/_index.md b/html/korean/java/conversion-html-to-other-formats/_index.md index de4e019fe..e8cf1db03 100644 --- a/html/korean/java/conversion-html-to-other-formats/_index.md +++ b/html/korean/java/conversion-html-to-other-formats/_index.md @@ -86,18 +86,24 @@ SVG 그래픽을 XPS 형식으로 변환하여 기기 간 일관된 인쇄를 Aspose.HTML를 사용하여 Java에서 HTML을 PDF로 변환하는 방법을 배우세요. HTML 콘텐츠에서 고품질 PDF를 손쉽게 생성합니다. ### [Java에서 HTML을 PDF로 변환 – 페이지 크기 설정을 포함한 단계별 가이드](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Aspose.HTML를 사용하여 Java에서 페이지 크기 옵션을 지정하며 HTML을 PDF로 변환하는 방법을 단계별로 안내합니다. +### [PDF 사용자 정의 크기 만들기 – Aspose를 사용한 HTML을 PDF로 변환](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Aspose.HTML를 사용하여 HTML을 PDF로 변환하면서 PDF 페이지 크기를 사용자 정의하는 방법을 단계별로 안내합니다. ### [HTML을 MHTML로 변환](./convert-html-to-mhtml/) Aspose.HTML for Java를 사용하여 HTML을 MHTML로 손쉽게 변환합니다. 효율적인 HTML‑to‑MHTML 변환을 위한 단계별 가이드를 따라 주세요. ### [HTML을 XPS로 변환](./convert-html-to-xps/) Aspose.HTML for Java를 사용하여 HTML을 XPS로 손쉽게 변환하는 방법을 배우세요. 크로스‑플랫폼 문서를 쉽게 생성합니다. ### [Markdown을 HTML로 변환](./convert-markdown-to-html/) Aspose.HTML for Java를 사용하여 Java에서 Markdown을 HTML로 원활하게 변환합니다. 문서 변환 요구를 간소화하기 위한 단계별 가이드를 따라 주세요. +### [Java에서 HTML을 Markdown으로 변환 – 원본 서식 유지](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Aspose.HTML를 사용하여 Java에서 HTML을 Markdown으로 변환하고 원본 서식을 유지하는 방법을 배웁니다. ### [SVG를 이미지로 변환](./convert-svg-to-image/) Aspose.HTML를 사용하여 Java에서 SVG를 이미지로 변환하는 방법을 배우세요. 고품질 출력에 대한 포괄적인 가이드입니다. ### [SVG를 PDF로 변환](./convert-svg-to-pdf/) Aspose.HTML를 사용하여 Java에서 SVG를 PDF로 변환합니다. 고품질 문서 변환을 위한 원활한 솔루션입니다. ### [SVG를 XPS로 변환](./convert-svg-to-xps/) Aspose.HTML for Java를 사용하여 SVG를 XPS로 변환하는 방법을 배우세요. 원활한 변환을 위한 간단하고 단계별 가이드입니다. +### [Java에서 HTML을 PDF로 변환 – 병렬 배치 변환 가이드](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Aspose.HTML를 사용하여 Java에서 여러 HTML 파일을 동시에 PDF로 변환하는 병렬 배치 처리 방법을 단계별로 안내합니다. ## 자주 묻는 질문 diff --git a/html/korean/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/korean/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..ab16b636b --- /dev/null +++ b/html/korean/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Aspose HTML 변환을 사용하여 Java에서 HTML을 마크다운으로 변환하고 원본 서식을 유지하면서 마크다운 파일을 생성합니다. + 단계별로 배우세요. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: ko +og_description: Aspose HTML 변환 for Java를 사용하여 HTML을 빠르게 마크다운으로 변환하고, 마크다운 파일을 생성하며 + 원본 서식을 유지합니다. +og_title: Java에서 HTML을 Markdown으로 변환 – 서식 유지 +tags: +- Aspose +- Java +- Markdown +title: Java에서 HTML을 Markdown으로 변환 – 원본 형식 유지 +url: /ko/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java에서 HTML을 Markdown으로 변환 – 원본 포맷 유지 + +HTML을 **Markdown으로 변환**하고 싶지만, 공백, 테이블, 인라인 태그가 사라질까 걱정되셨나요? 당신만 그런 것이 아닙니다. 많은 개발자들이 웹 페이지의 내용을 깔끔하고 버전 관리에 친화적인 형식으로 옮기려 할 때 이 문제에 부딪힙니다. 좋은 소식은? 몇 줄의 Java 코드와 Aspose HTML만 있으면 **원본과 동일한 포맷**(공백 포함)의 markdown 파일을 **생성**할 수 있다는 것입니다. + +이 가이드에서는 전체 과정을 단계별로 살펴봅니다: 복잡한 HTML 파일을 로드하고, **원본 포맷을 유지**하도록 변환 옵션을 설정한 뒤, 최종적으로 `preserved.md`에 출력하는 방법을 안내합니다. 끝까지 읽으시면 바로 실행 가능한 코드 스니펫을 얻고, 각 설정이 왜 중요한지 이해하며, 커스텀 CSS나 임베디드 스크립트와 같은 특수 상황에 코드를 어떻게 적용할지 알 수 있습니다. + +## 준비 사항 + +- Java 17(또는 최신 JDK) – API는 Java 8 이상에서도 동작하지만 최신 버전이 성능이 더 좋습니다. +- Aspose HTML for Java 라이브러리(버전 23.11 이상). Maven Central에서 가져올 수 있습니다: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- 헤딩, 테이블, 코드 블록, 그리고 인라인 `` 스타일링이 포함된 샘플 HTML 파일(`complex.html`). +- 약간의 인내심과 실험 정신. + +이것만 있으면 됩니다. 외부 도구도, 커맨드라인 해킹도 필요 없이 순수 Java 코드만으로 가능합니다. + +## 1단계: 소스 HTML 문서 로드 + +먼저 `HTMLDocument` 인스턴스를 생성해 소스 파일을 가리키게 합니다. Aspose HTML은 파일을 DOM으로 취급하므로, 변환 전에 문서를 검사하거나 수정할 수 있습니다. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **왜 중요한가:** 이렇게 문서를 로드하면 스타일시트와 이미지 같은 연결된 리소스가 파일 위치를 기준으로 올바르게 해석됩니다. 문자열을 바로 전달하면 외부 CSS가 적용되지 않아 **원본 포맷을 유지**하려는 목적에 방해가 될 수 있습니다. + +## 2단계: Markdown 변환 옵션 설정 + +Aspose HTML은 `MarkdownConversionOptions` 클래스를 제공합니다. 여기서 핵심 속성은 `setPreserveOriginalFormatting(true)`입니다. 이 옵션을 켜면 변환기가 줄바꿈, 들여쓰기, 그리고 markdown이 기본적으로 표현하지 못하는 HTML 스니펫까지 그대로 유지합니다. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **팁:** 나중에 인라인 스타일이 제거되는 것을 발견하면 `markdownOptions.setIncludeHtml(true)`를 호출해 원시 HTML 블록을 markdown에 강제로 포함시킬 수 있습니다. + +## 3단계: 변환 실행 + +이제 `HTMLDocument`, 대상 파일 경로, 옵션을 정적 메서드 `Converter.convertHTML`에 전달합니다. 메서드가 내부에서 모든 무거운 작업을 수행합니다. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +호출이 끝나면 소스 파일 옆에 `preserved.md`가 생성됩니다. 편집기로 열어보면 원본의 줄바꿈과 테이블 정렬이 그대로 유지된 것을 확인할 수 있습니다. + +## 4단계: 결과 검증 (선택 사항이지만 권장) + +간단한 검증을 하면 나중에 발생할 수 있는 미묘한 버그를 방지할 수 있습니다. 파일을 다시 Java로 읽어 첫 몇 줄을 출력하거나, VS Code에서 직접 열어보세요. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +예상 출력 예시: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +`` 태그가 그대로 남아 있는 것을 볼 수 있습니다. 이는 markdown의 기본 테이블 문법으로는 정확한 스타일을 표현할 수 없기 때문이며, `preserve original formatting` 옵션 덕분에 유지된 것입니다. + +## 5단계: 전체 예제 – 바로 실행 가능한 코드 + +아래는 완전한 실행 가능한 클래스입니다. `YOUR_DIRECTORY`를 실제 경로로 교체하세요. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +`mvn exec:java` 혹은 선호하는 IDE에서 실행하면 원본 HTML 레이아웃을 그대로 반영한 **markdown 파일**이 생성됩니다. + +## 자주 묻는 질문 및 엣지 케이스 + +### 외부 CSS 파일도 적용되나요? + +네. CSS 파일이 상대 경로로 접근 가능하면 Aspose HTML이 자동으로 로드합니다. 원격 URL에서 HTML을 가져오는 경우, 네트워크 접근을 허용하도록 `ResourceLoadingOptions` 객체를 별도로 설정해야 할 수 있습니다. + +### markdown에 원시 HTML을 포함하고 싶지 않다면? + +옵션을 다음과 같이 바꾸면 됩니다: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +변환기는 가능한 모든 내용을 순수 markdown 구문으로 변환하려 시도하므로 레이아웃 정확도가 떨어질 수 있습니다. + +### 파일 대신 문자열을 변환할 수 있나요? + +가능합니다. `String`을 받는 생성자를 사용하세요: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +그 후 기존과 같이 `Converter.convertHTML`에 `doc`을 전달하면 됩니다. + +### Flexmark나 pandoc 같은 다른 라이브러리와 차이점은? + +대부분 오픈소스 도구는 HTML을 단순 텍스트로 취급하고 공백을 과감히 제거합니다. Aspose HTML의 `preserveOriginalFormatting` 플래그는 **고유 기능**으로, 원본의 공백, 줄바꿈, 지원되지 않는 태그까지 원시 HTML 블록으로 보존합니다. 그래서 이 튜토리얼은 정확한 충실도가 필요한 Java 개발자를 위해 **aspose html conversion**을 강조합니다. + +## 프로덕션 사용 팁 + +- **배치 처리:** 변환 로직을 루프에 감싸 여러 HTML 파일을 한 번에 처리하세요. +- **예외 처리:** `IOException` 및 `com.aspose.html.exceptions.AssertionFailedException`을 잡아 리소스 누락을 알리세요. +- **성능 최적화:** 큰 사이트의 조각을 변환할 때는 `HTMLDocument` 인스턴스를 재사용하면 라이브러리가 파싱된 CSS를 캐시해 줍니다. + +## 결론 + +우리는 Java에서 **HTML을 markdown으로 변환**하면서 **원본 포맷을 유지**하는 방법을 살펴보았습니다. 짧고 독립적인 스니펫을 통해 HTML 문서 로드, `MarkdownConversionOptions` 설정, 변환 실행, 결과 검증까지 전체 흐름을 보여줍니다. Aspose HTML의 강력한 API 덕분에 정적 사이트 생성기, 문서 파이프라인, 콘텐츠 마이그레이션 도구 등에서 **markdown 파일을 프로그래밍적으로 생성**할 수 있게 되었습니다. + +다음 단계로 시도해볼 내용: + +- **html to markdown java**를 활용한 대규모 사이트 일괄 마이그레이션 +- GitHub‑flavored markdown 테이블을 위한 변환 옵션 미세 조정 +- 소스 HTML이 변경될 때마다 자동으로 문서를 업데이트하는 CI/CD 파이프라인에 이 접근법 통합 + +실험해보고 궁금한 점이 있으면 댓글로 알려 주세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/korean/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..69328b309 --- /dev/null +++ b/html/korean/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,193 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML for Java를 사용하여 HTML에서 PDF 맞춤 크기를 생성합니다. 몇 단계만으로 HTML을 PDF로 + 변환하고 PDF 페이지 크기를 설정하는 방법을 배워보세요. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: ko +og_description: Aspose를 사용하여 HTML에서 PDF 맞춤 크기를 만들기. 이 가이드는 HTML을 PDF로 변환하고, PDF 페이지 + 크기를 변경하며, PDF 페이지 크기를 손쉽게 설정하는 방법을 보여줍니다. +og_title: PDF 맞춤 크기 만들기 – HTML을 PDF로 변환하는 빠른 가이드 +tags: +- aspose +- java +- pdf +- html +title: PDF 맞춤 크기 만들기 – Aspose로 HTML을 PDF로 변환 +url: /ko/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF 사용자 정의 크기 만들기 – Aspose를 사용해 HTML을 PDF로 변환 + +HTML 파일에서 **PDF 사용자 정의 크기**를 만들어야 했던 적이 있나요? 이 튜토리얼에서는 **HTML을 PDF로 변환**하고 Aspose.HTML for Java를 사용해 PDF 페이지 크기를 설정하는 방법을 보여드립니다. + +청구서, 보고서, 전자책 등을 만들 때 정확한 페이지 크기가 중요합니다—그렇지 않으면 레이아웃이 중앙에서 벗어나거나 잘려 나갑니다. + +소스 HTML을 로드하는 것부터 여백을 조정하는 것까지 모든 단계를 차근차근 안내하고, 바로 사용할 수 있는 PDF를 완성합니다. 모호한 설명 없이 오늘 바로 복사·붙여넣기 할 수 있는 완전한 실행 예제를 제공합니다. + +## 필요한 준비물 + +- **Java 17** (또는 최신 JDK). +- **Aspose.HTML for Java** JAR – 최신 버전은 Maven 저장소나 Aspose 웹사이트에서 받을 수 있습니다. +- 제어 가능한 폴더에 놓은 간단한 `input.html` 파일. +- 원하는 IDE 또는 텍스트 편집기; 저는 보통 IntelliJ IDEA를 사용하지만 Eclipse도 충분히 작동합니다. + +이러한 전제 조건을 갖추면 중간에 “class not found” 오류가 발생하지 않습니다. + +그럼 시작해봅시다. + +![PDF 사용자 정의 크기 예시](/images/create-pdf-custom-size.png "맞춤 페이지 크기와 여백으로 생성된 PDF를 보여주는 스크린샷 – PDF 사용자 정의 크기") + +## PDF 사용자 정의 크기 만들기 – 핵심 단계 + +아래는 최종적으로 얻을 수 있는 전체 Java 프로그램입니다. `ConvertHtmlToPdfCustomPage.java` 파일에 복사하고, 프로젝트에 Aspose 의존성을 추가한 뒤 실행해 보세요. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### 단계 1 – HTML을 PDF로 변환: 문서 로드 + +먼저 **HTML을 로드**합니다. `HTMLDocument`는 파일을 읽고, 상대 링크를 해석하며, Aspose가 렌더링할 수 있는 DOM을 구축합니다. + +> **왜 중요한가:** HTML이 CSS나 이미지를 참조하면 Aspose가 파일 경로를 기준으로 이를 가져옵니다. 절대 경로(`YOUR_DIRECTORY/input.html`)를 사용하면 “file not found” 오류를 방지할 수 있습니다. + +### 단계 2 – PDF 페이지 크기 변경: 옵션 구성 + +여기서 `PdfConversionOptions` 객체를 생성합니다. +- `setPageSize(PageSize.A4)`는 Aspose에게 표준 A4 크기(210 × 297 mm)를 사용하도록 지시합니다. +- `setPageOrientation(...)`은 가로 방향이 필요할 경우 페이지를 전환합니다. +- `setMargins(new Margin(20, 20, 20, 20))`은 모든 면에 20포인트 여백을 설정합니다. + +`PageSize.A4`를 `PageSize.LETTER`로 교체하거나 `SizeF` 객체를 전달하여 **사용자 정의 크기**를 지정할 수도 있습니다. 예시: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **전문가 팁:** 1포인트는 1/72인치와 같습니다. 밀리미터 단위로 생각한다면 2.83465를 곱해 포인트로 변환합니다. + +### 단계 3 – HTML에서 PDF 생성: 변환 실행 + +`Converter.convertHTML`이 핵심 작업을 수행합니다. 로드된 `HTMLDocument`, 출력 경로, 그리고 방금 설정한 옵션을 인수로 받습니다. + +내용에 따라 **PDF 페이지 크기**를 동적으로 설정하려면, 이 단계 전에 필요한 크기를 계산하고 `pdfOptions`를 그에 맞게 조정하면 됩니다. + +### 단계 4 – 결과 확인 + +`System.out.println` 구문은 선택 사항이지만, 콘솔에서 프로그램을 실행할 때 빠른 피드백을 제공합니다. 실행 후 `custom_page.pdf`를 열면, 지정한 대로 20포인트 균일 여백이 적용된 A4 세로 PDF가 표시됩니다. + +## HTML을 PDF로 변환 – 일반적인 변형 + +### 파일 경로 대신 스트림 사용 + +때때로 물리적인 파일이 없을 수 있습니다; HTML이 데이터베이스나 API에서 제공될 수도 있습니다. 이 경우 문자열을 `ByteArrayInputStream`으로 감싸면 됩니다: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +두 번째 인자는 상대 리소스를 해석하기 위한 기본 URL입니다. + +### 페이지 방향 변경 + +보고서가 넓다면 가로 방향으로 전환하세요: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### 여백 미세 조정 + +여백은 부동 소수점 값을 허용하므로, 0.5 pt와 같이 아주 얇은 경계를 설정할 수 있습니다: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### 대용량 HTML 파일 처리 + +대용량 문서의 경우 **메모리 효율적인 스트리밍**을 활성화하는 것을 고려하세요: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +이는 Aspose에게 모든 데이터를 RAM에 보관하는 대신 중간 데이터를 임시 파일에 기록하도록 지시합니다. + +## PDF 페이지 크기 설정 – 엣지 케이스 및 함정 + +- **Missing Fonts:** HTML에 서버에 설치되지 않은 사용자 정의 폰트가 사용된 경우, PDF는 기본 폰트로 대체됩니다. `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`를 사용해 폰트를 임베드하세요. +- **Image Scaling:** 고해상도 이미지는 PDF 용량을 크게 만들 수 있습니다. `pdfOptions.setImageResolution(150);`를 사용해 품질을 유지하면서 해상도를 낮추세요. +- **CSS Compatibility:** 모든 CSS 속성이 완전히 지원되는 것은 아닙니다. 표준 레이아웃 기법을 사용하세요(플렉스박스는 작동하지만 그리드는 quirks가 있을 수 있습니다). +- **Path Permissions:** 프로세스가 `YOUR_DIRECTORY`에 대한 쓰기 권한을 가지고 있는지 확인하세요. 그렇지 않으면 `IOException`이 발생합니다. + +## 기대 출력 + +프로그램을 실행하면 다음과 같은 PDF가 생성됩니다(개념적 일러스트): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- 페이지 크기: **A4** (210 × 297 mm). +- 방향: **세로**. +- 여백: 각 면 **20 pt**. + +PDF 뷰어(Adobe Reader, Chrome 등)로 파일을 열어 확인하세요. + +## 마무리 + +이제 Aspose.HTML for Java를 사용해 HTML 소스에서 **PDF 사용자 정의 크기**를 만드는 방법을 알게 되었습니다. 튜토리얼은 전체 파이프라인을 다루었습니다: **HTML을 PDF로 변환**, **PDF 페이지 크기 변경**, **PDF 페이지 크기 설정**, 그리고 사용자 정의 여백을 가진 **HTML에서 PDF 생성**. + +자유롭게 실험해 보세요—`PageSize.LETTER`를 법적 크기로 바꾸거나, 여백을 조정하거나, 자체 폰트를 임베드할 수 있습니다. 다음으로는 **워터마크 추가**, **PDF 암호화**, 혹은 **여러 HTML 파일을 일괄 처리** 등을 탐색해 볼 수 있습니다. 이 모든 주제는 방금 다룬 핵심 개념을 기반으로 합니다. + +특정 엣지 케이스에 대한 질문이 있나요? 아래에 댓글을 남겨 주세요. 문제 해결을 도와드리겠습니다. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/korean/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..9b2ff56a8 --- /dev/null +++ b/html/korean/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: 고정된 스레드 풀을 사용해 HTML에서 PDF를 빠르게 생성하세요. 배치 HTML을 PDF로 변환하고 Java에서 병렬 작업을 + 실행하는 방법을 배우세요. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: ko +og_description: 고정 스레드 풀을 사용해 HTML을 빠르게 PDF로 변환하세요. HTML을 PDF로 일괄 처리하고 Java에서 병렬 작업을 + 실행하는 방법을 배워보세요. +og_title: Java에서 HTML을 PDF로 만들기 – 병렬 배치 변환 가이드 +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Java에서 HTML을 PDF로 만들기 – 병렬 배치 변환 가이드 +url: /ko/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML에서 PDF 만들기 – 병렬 배치 변환 가이드 + +HTML을 **PDF로 변환**하고 싶지만 단일 스레드 변환이 영원히 진행되는 것처럼 느껴진 적 있나요? 당신만 그런 것이 아닙니다. 실제 프로젝트에서는 하루 안에 수십 개의 HTML 보고서를 PDF로 만들어야 하는 경우가 많으며, 하나씩 처리하는 것은 현실적이지 않습니다. + +그래서 이 튜토리얼에서는 **고정 스레드 풀**을 사용해 **HTML을 PDF로 배치 변환**하고 **병렬 작업**을 손쉽게 수행하는 방법을 보여드립니다. 마지막에는 폴더에 있는 HTML 파일들을 짧은 시간 안에 PDF로 변환하는 완전한 실행 가능한 프로그램을 얻게 됩니다. + +## 배울 내용 + +다음 섹션에서는 다음을 다룹니다: + +* Aspose.HTML(무거운 작업을 수행하는 라이브러리)의 정확한 Maven/Gradle 의존성 +* CPU‑집약적인 변환 작업에 **고정 스레드 풀**이 왜 최적의 선택인지 +* 수백 개 문서에도 확장 가능한 파일 목록을 만드는 방법 +* IDE에 바로 붙여넣을 수 있는 완전한 코드—누락된 import나 “TODO” 주석 없음 +* 오류 처리, 풀 크기 조정, 출력 검증 팁 + +Aspose.HTML에 대한 사전 지식은 필요 없으며, 기본적인 Java 환경과 실험 의지만 있으면 됩니다. 시작해봅시다. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*이미지 대체 텍스트: create pdf from html – 병렬 변환 다이어그램* + +## 1단계: 프로젝트 준비 및 Aspose.HTML 추가 + +우선 프로젝트에 Aspose.HTML 라이브러리를 추가해야 합니다. Maven을 사용한다면 `pom.xml`에 다음을 넣으세요: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle이라면 다음과 같습니다: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +왜 Aspose.HTML인가요? 상용 라이브러리이지만 **HTML을 PDF로 변환**하는 API를 제공하며 CSS, JavaScript, 복잡한 레이아웃을 바로 처리합니다. 오픈소스 대안을 원한다면 나중에 `Converter.convertHTML` 호출만 교체하면 되며, 스레드 로직은 그대로 유지됩니다. + +> **Pro tip:** 공식 릴리스 노트와 버전 번호를 맞춰 두세요. 최신 버전은 렌더링 속도가 개선되는 경우가 많아, 다수의 작업을 병렬로 실행할 때 큰 차이를 만듭니다. + +## 2단계: 병렬 변환을 위한 고정 스레드 풀 구축 + +파일 배치를 처리할 때 무제한으로 스레드를 생성하면 OS가 과부하됩니다. **고정 스레드 풀**은 메모리 사용량을 제어하면서 예측 가능한 동시성을 제공합니다. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +왜 4개일까요? 일반적인 8코어 머신에서는 절반 정도 코어를 I/O와 OS에 남겨두는 것이 좋습니다. 실험해볼 수 있는데, `Runtime.getRuntime().availableProcessors()`가 코어 수를 반환하고, 경험 법칙은 `cores / 2`입니다. 변환은 CPU 집약적이므로 코어보다 많은 스레드를 만들면 성능이 오히려 떨어집니다. + +## 3단계: 변환할 HTML 파일 수집 + +다음 단계는 **배치 HTML to PDF** 목록을 만드는 것입니다. 예시처럼 배열을 직접 지정하거나 디렉터리를 스캔할 수 있습니다. 아래는 폴더 내 모든 `.html` 파일을 읽어들이는 유연한 버전입니다: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +이 방법을 사용하면 새 파일을 폴더에 넣기만 하면 프로그램이 자동으로 인식하므로, 야간 배치 작업에 최적입니다. + +## 4단계: 각 파일에 대해 변환 작업 제출 (병렬 작업 실행) + +이제 재미있는 부분입니다: 각 파일을 **Runnable**(또는 `Callable`)로 만들어 풀에 제출합니다. 아래 코드는 원본 예제를 그대로 유지하면서 오류 처리와 간단한 로그 메시지를 추가했습니다. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**왜 변환을 try‑catch로 감싸나요?** **병렬 작업을 실행**할 때 하나의 잘못된 HTML 파일이 전체 실행기를 중단시킬 수 있습니다. 로컬에서 예외를 잡아두면 나머지 배치는 계속 진행됩니다. + +## 5단계: Executor 종료 및 완료 대기 + +모든 작업을 제출한 뒤에는 풀에 새로운 작업을 받지 않도록 알리고, 모든 작업이 끝날 때까지 기다려야 합니다. 이렇게 하면 JVM이 조기에 종료되는 일을 방지할 수 있습니다. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +파일이 수천 개에 달하는 대규모 폴더라면 타임아웃을 늘리거나 진행 상황 모니터를 구현할 수 있습니다. 핵심은 **우아하게 종료**하는 것이며, 이는 프로덕션 수준 코드의 필수 요소입니다. + +## 전체 작동 예제 + +모든 내용을 합치면 `src/main/java`에 복사해 실행할 수 있는 독립형 클래스가 됩니다: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**예상 출력** (샘플): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +생성된 `.pdf` 파일을 열어보면 원본 HTML 레이아웃이 그대로 유지됩니다—폰트, 표, 기본 JavaScript 기반 콘텐츠까지 올바르게 렌더링됩니다. + +## 자주 묻는 질문 및 예외 상황 + +| 질문 | 답변 | +|----------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/conversion-html-to-various-image-formats/_index.md b/html/korean/java/conversion-html-to-various-image-formats/_index.md index 126ddb6a9..d4e21a17c 100644 --- a/html/korean/java/conversion-html-to-various-image-formats/_index.md +++ b/html/korean/java/conversion-html-to-various-image-formats/_index.md @@ -98,6 +98,10 @@ Aspose.HTML를 사용해 Java에서 HTML을 PNG 이미지로 변환하는 방법 Aspose.HTML for Java를 사용해 HTML을 TIFF로 쉽게 변환하는 방법을 배웁니다. 효율적인 문서 처리를 위한 단계별 가이드입니다. ### [HTML을 WebP로 변환 – Aspose.HTML와 함께하는 완전한 Java 가이드](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Aspose.HTML for Java를 사용해 HTML을 WebP 이미지로 변환하는 방법을 단계별로 안내합니다. +### [HTML을 WebP로 변환 – 완전한 Java 가이드](./convert-html-to-webp-complete-java-guide/) +Aspose.HTML for Java를 사용해 HTML을 WebP 이미지로 변환하는 방법을 단계별로 안내합니다. +### [Java에서 SVG를 사용해 다중 페이지 TIFF 생성 – 단계별 가이드](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Aspose.HTML for Java를 사용해 SVG에서 다중 페이지 TIFF를 생성하는 방법을 단계별로 안내합니다. ## 자주 묻는 질문 diff --git a/html/korean/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/korean/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..0d636f21b --- /dev/null +++ b/html/korean/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,224 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML를 사용하여 HTML을 빠르게 WebP로 변환하세요. 몇 단계만으로 HTML을 WebP로 저장하고, HTML을 + WebP로 렌더링하며, HTML에서 WebP를 생성하는 방법을 배워보세요. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: ko +og_description: Aspose.HTML를 사용하여 HTML을 빠르게 WebP로 변환하십시오. 이 튜토리얼에서는 Java에서 HTML을 WebP로 + 렌더링하고 HTML에서 WebP를 생성하는 방법을 보여줍니다. +og_title: HTML을 WebP로 변환 – 완전한 Java 가이드 +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML을 WebP로 변환 – 완전한 Java 가이드 +url: /ko/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to WebP – Complete Java Guide + +HTML을 WebP로 **변환**해야 하는데, 어떤 라이브러리를 사용해야 할지 몰라 고민한 적 있나요? 혼자가 아닙니다. 동적 페이지에서 생성된 가벼운 이미지를 제공하려다 많은 개발자들이 이 문제에 부딪히곤 합니다. 좋은 소식은? Aspose.HTML for Java를 사용하면 *HTML을 WebP로 저장*하는 작업을 단 한 줄의 메서드 호출로 처리할 수 있으며, 전체 과정이 아주 부드럽습니다. + +이 튜토리얼에서는 Aspose.HTML 의존성 설정부터 압축 옵션 조정, 최종적으로 HTML 문서를 웹에서 제공할 수 있는 WebP 파일로 렌더링하는 방법까지 모든 과정을 단계별로 안내합니다. 튜토리얼을 마치면 **HTML을 WebP로 렌더링**하고, **HTML에서 WebP를 생성**하며, 각 설정 옵션의 “왜?”에 대해 이해하게 될 것입니다. 외부 스크립트나 커맨드‑라인 트릭 없이 순수 Java 코드만으로 진행됩니다. + +## Prerequisites + +시작하기 전에 다음이 준비되어 있는지 확인하세요: + +- Java 8 이상 설치 (라이브러리는 JDK 8+을 지원합니다). +- Maven 또는 Gradle을 이용한 의존성 관리 (Maven 예제를 보여드립니다). +- WebP 이미지로 변환하고 싶은 간단한 HTML 파일(`input.html`). +- 원하는 IDE 또는 텍스트 편집기 — IntelliJ IDEA가 편리하지만, 어떤 환경이든 상관없습니다. + +다 준비됐나요? 좋습니다, 시작해봅시다. + +## Step 1: Add Aspose.HTML to Your Project + +먼저, Aspose.HTML 라이브러리를 클래스패스에 추가해야 합니다. Maven을 사용한다면 `pom.xml`에 다음을 삽입하세요: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle을 사용할 경우는 다음과 같습니다: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +왜 이 단계가 중요한가요? JAR 파일이 없으면 `HTMLDocument`, `Converter`, `WebpConversionOptions` 클래스 자체가 존재하지 않으며, 컴파일러가 `ClassNotFoundException`을 발생시킵니다. 또한 이 의존성은 WebP 인코딩에 필요한 네이티브 바이너리도 함께 가져오므로 별도로 DLL이나 `.so` 파일을 찾을 필요가 없습니다. + +> **Pro tip:** 의존성을 최신 상태로 유지하세요. 최신 Aspose 릴리스는 WebP 압축 알고리즘을 개선하고 최신 HTML5 기능을 지원하는 경우가 많습니다. + +## Step 2: Load the Source HTML Document + +라이브러리가 준비되었으니 변환할 HTML을 로드합니다. `HTMLDocument` 클래스가 파일을 파싱하고 DOM을 구축하며, 이후 변환기가 이를 렌더링합니다. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +주석 “Load the source HTML document”는 페이지가 동적 스타일링에 의존한다면 CSS나 JavaScript를 삽입할 수 있다는 점을 상기시켜 줍니다. 이 단계를 건너뛰면 변환기가 렌더링할 내용이 없어 빈 이미지가 생성됩니다. + +## Step 3: Configure WebP Conversion Options + +Aspose.HTML는 출력에 대한 세밀한 제어를 제공합니다. 대부분의 경우 **lossy** WebP에 품질을 85 정도로 설정하면 시각적 품질과 파일 크기 사이에 좋은 균형을 이룹니다. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +왜 lossy를 선택하나요? WebP의 lossy 모드는 예측 코딩을 사용해 PNG 대비 30‑50 % 정도 파일을 줄이면서 대부분의 시각적 디테일을 유지합니다. 로고와 같이 픽셀 단위의 완벽함이 필요하다면 `CompressionMode`를 `Lossless`로 바꾸고 `quality`를 100으로 올리세요. + +## Step 4: Convert and Save the WebP Image + +문서와 옵션이 준비되었으면 변환은 한 줄로 끝납니다. 정적 `Converter.convertHTML` 메서드가 모든 작업을 수행합니다: DOM을 비트맵에 렌더링하고, WebP로 인코딩한 뒤 파일을 디스크에 저장합니다. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +이게 전부입니다! 프로그램이 종료되면 `output.webp` 파일이 원본 HTML 옆에 생성됩니다. 이제 웹 서버에서 직접 제공하거나 `` 요소에 삽입하거나 WebP를 지원하는 어떤 컨텍스트에서도 사용할 수 있습니다. + +## Step 5: Verify the Result (Optional but Recommended) + +변환이 정상적으로 이루어졌는지, 이미지가 기대한 대로 보이는지 확인하는 것이 좋습니다. Chrome, Firefox 등 브라우저나 WebP를 지원하는 이미지 뷰어에서 파일을 열어볼 수 있습니다. 간단히 프로그램matically 확인하고 싶다면 파일 크기와 차원을 읽어볼 수 있습니다: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +파일이 예상보다 크거나 차원이 맞지 않다면 **Step 3**으로 돌아가 `quality`나 원본 HTML의 뷰포트 설정을 조정하세요. WebP는 루트 요소의 CSS `width`/`height`를 그대로 반영하므로 `` 태그가 없으면 의외의 결과가 나올 수 있습니다. + +## Full Working Example + +모든 내용을 하나로 합치면 다음과 같은 완전한 Java 클래스가 됩니다: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +파일명을 `HtmlToWebp.java`로 저장하고, `YOUR_DIRECTORY`를 실제 폴더 경로로 바꾼 뒤 `javac`로 컴파일하고 `java HtmlToWebp`로 실행하세요. 콘솔에 파일 크기와 차원이 출력되고, 최종 성공 메시지가 표시됩니다. + +![convert html to webp example](/images/convert-html-to-webp.png "Screenshot of a WebP image generated from HTML – convert html to webp") + +## Common Questions & Edge Cases + +### What if my HTML references external resources (CSS, images)? + +Aspose.HTML는 `input.html` 위치를 기준으로 상대 URL을 자동으로 해석합니다. 파일 시스템이나 웹 서버에서 리소스에 접근할 수 있도록 해두세요. 커스텀 베이스 URL을 지정해야 한다면 `URI` 베이스를 받는 `HTMLDocument` 생성자를 사용하면 됩니다. + +### Can I generate multiple WebP images from the same HTML (e.g., different viewport sizes)? + +가능합니다. 변환 로직을 루프 안에 넣고, 각 호출 전에 `webpOptions.setWidth()`와 `setHeight()`를 조정한 뒤 파일명을 다르게 지정하면 됩니다. 이는 모바일과 데스크톱에 서로 다른 이미지 크기를 제공해야 하는 반응형 디자인에 유용합니다. + +### How do I switch to lossless compression? + +다음 코드를: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +다음과 같이 교체하세요: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless 모드는 픽셀 단위의 완벽한 정확성을 보장하지만 파일 크기가 커집니다—필요한 경우에만 사용하세요. + +### Does this work on Linux/macOS? + +네. Aspose.HTML JAR에는 Windows, Linux, macOS용 네이티브 바이너리가 모두 포함되어 있어 동일한 Java 코드가 어디서든 실행됩니다. 단, 해당 플랫폼에 맞는 JRE가 설치되어 있어야 합니다. + +## Conclusion + +Aspose.HTML for Java를 사용해 **HTML을 WebP로 변환**하는 방법을 모두 익혔습니다. 의존성 설정부터 압축 옵션 미세 조정, 결과 검증까지 전 과정을 다루었습니다. 이제 **HTML을 WebP로 저장**, **HTML을 WebP로 렌더링**, **HTML에서 WebP를 생성**하는 작업을 실시간으로 수행할 수 있습니다—동적 이미지 파이프라인, 이메일 뉴스레터, 혹은 가벼운 비주얼이 중요한 모든 시나리오에 최적입니다. + +다음 단계는? 다양한 `quality` 값을 실험해보고, `Lossless` 모드를 탐색하거나, 이 변환기를 Spring Boot REST 엔드포인트에 통합해 웹 서비스가 요청 시 WebP 이미지를 반환하도록 해보세요. 폴더에 있는 여러 HTML 파일을 일괄 처리하거나, 헤드리스 Chrome과 결합해 SVG‑to‑WebP 변환을 구현하는 것도 좋은 아이디어입니다. + +다른 언어에서 **HTML을 변환**하는 방법에 대한 질문이 있거나 특정 엣지 케이스에 대한 도움이 필요하면 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/korean/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..dd2b87280 --- /dev/null +++ b/html/korean/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML을 사용하여 Java에서 SVG로부터 다중 페이지 TIFF를 생성합니다. SVG를 TIFF로 변환하는 방법, + Java에서 SVG 문서를 로드하는 방법, 그리고 다중 페이지 TIFF 파일을 만드는 방법을 배워보세요. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: ko +og_description: Java에서 SVG를 사용해 다중 페이지 TIFF 만들기. 이 튜토리얼은 SVG 문서를 로드하고, TIFF 옵션을 설정한 + 뒤, 무손실 다중 페이지 TIFF를 생성하는 방법을 보여줍니다. +og_title: Java에서 SVG로 멀티페이지 TIFF 만들기 – 완전 가이드 +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Java에서 SVG로 멀티페이지 TIFF 만들기 – 단계별 가이드 +url: /ko/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Java에서 SVG를 사용해 다중 페이지 TIFF 만들기 – 단계별 가이드 + +SVG에서 **다중 페이지 tiff 만들기**가 필요했지만 어디서 시작해야 할지 몰랐던 적이 있나요? 당신만 그런 것이 아닙니다—많은 개발자들이 인쇄 가능하고 손실 없는 문서를 여러 페이지에 걸쳐 필요로 할 때 바로 이 문제에 부딪힙니다. 이 가이드에서는 **SVG를 TIFF로 변환하는 방법**을 보여주는 완전하고 바로 실행 가능한 솔루션을 단계별로 살펴보고, Java에서 SVG 문서를 로드하고, LZW 압축을 사용해 **다중 페이지 tiff 만들기** 파일을 만들 수 있도록 출력 옵션을 구성합니다. + +우리는 Aspose.HTML 라이브러리 설정부터 대용량 SVG 자산과 같은 엣지 케이스 처리까지 모두 다룰 것입니다. 튜토리얼이 끝날 때쯤이면 어떤 프로젝트에든 바로 넣어 다중 페이지 TIFF를 즉시 생성할 수 있는 단일 Java 클래스를 얻게 됩니다. + +## 필요 사항 + +- **Java Development Kit (JDK) 8+** – 코드는 표준 Java API를 사용합니다. +- **Aspose.HTML for Java** (버전 23.5 이상) – 이것이 유일한 서드파티 종속성입니다. +- **샘플 SVG 파일** (벡터 그래픽이면 무엇이든 상관없으며, `input.svg`라고 부르겠습니다). +- 좋아하는 IDE 또는 간단한 텍스트 편집기와 터미널. + +추가 빌드 도구는 필요하지 않습니다; 예제는 `javac`로 컴파일하고 `java`로 실행됩니다. Maven이나 Gradle을 선호한다면 Aspose.HTML JAR를 프로젝트 클래스패스에 추가하면 됩니다. + +![Create multipage tiff example](create-multipage-tiff.png){alt="다중 페이지 tiff 예시 출력"} + +## 1단계 – SVG 문서 로드 (load svg document java) + +먼저 SVG를 `HTMLDocument` 객체로 읽어와야 합니다. Aspose.HTML은 SVG 파일을 HTML 문서로 취급하므로 변환을 위한 통합 API를 제공합니다. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**왜 중요한가:** SVG를 `HTMLDocument`로 로드하면 전체 렌더링 엔진에 접근할 수 있어, 변환 전에 모든 스타일, 폰트 및 임베디드 이미지가 올바르게 해석됩니다. 이 단계를 건너뛰고 원시 바이트를 바로 컨버터에 전달하면 요소가 누락되거나 색상이 잘못 표시되는 경우가 많습니다. + +## 2단계 – TIFF 옵션 설정 (how to create multipage tiff) + +다음으로 `TiffConversionOptions`를 설정합니다. 이 객체는 페이지 레이아웃부터 압축까지 모든 것을 제어합니다. 진정한 다중 페이지 출력을 위해 `setMultipage(true)`를 활성화하고, 손실이 없고 널리 지원되는 **LZW** 압축을 선택합니다. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**왜 중요한가:** `setMultipage(true)`를 생략하면 라이브러리는 단일 페이지 TIFF를 생성하고, SVG에서 추론될 수 있는 추가 페이지(예: SVG에 여러 `` 루트 요소가 있는 경우)를 모두 버립니다. LZW는 이미지 품질을 손상시키지 않으면서 파일 크기를 합리적으로 유지해 아카이브나 인쇄 파이프라인에 적합합니다. + +## 3단계 – 변환 수행 (how to convert svg to tiff) + +이제 실제 변환 작업이 이루어집니다. 정적 `Converter.convertSVG` 메서드는 로드된 문서, 대상 경로 및 방금 정의한 옵션을 인수로 받습니다. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**왜 중요한가:** 정적 `convertSVG` 호출은 변환을 트리거하는 가장 직관적인 방법입니다. 내부적으로 Aspose.HTML은 기본 96 dpi에서 벡터 데이터를 래스터화합니다; 더 높은 품질이 필요하면 `tiffOptions.setResolution(...)`로 DPI를 조정할 수 있습니다. + +## 4단계 – 결과 확인 + +변환이 완료된 후 파일이 존재하고 예상 페이지 수를 포함하고 있는지 확인하는 것이 좋습니다. 멀티페이지 TIFF를 지원하는 이미지 뷰어(예: IrfanView, XnView 또는 Java의 `ImageIO`)를 사용하면 간단히 확인할 수 있습니다. + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +프로그램 실행: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +콘솔에 성공 메시지가 표시되고 `output.tiff`를 열면 SVG 루트 요소당 한 페이지가 생성된 것을 확인할 수 있습니다(또는 SVG에 캔버스가 하나만 있으면 단일 페이지). + +## 일반적인 함정 & 전문가 팁 + +| 문제 | 발생 원인 | 해결 방법 | +|-------|----------------|---------------| +| **폰트 누락** | SVG가 서버에 설치되지 않은 시스템 폰트를 참조합니다. | SVG에 폰트를 임베드하거나 Aspose.HTML의 `FontSettings`를 사용해 사용자 정의 폰트 폴더를 지정합니다. | +| **파일 크기 과다** | 고해상도 래스터화로 TIFF 크기가 급증합니다. | `tiffOptions.setResolution(150)`으로 DPI를 낮추거나 디버깅 시에만 `Compression.NONE`으로 전환합니다. | +| **다중 페이지 미생성** | SVG에 `` 요소가 하나만 포함되어 있습니다. | 소스를 별도 SVG 파일로 분할하거나 변환 전에 각 논리 페이지를 `` 태그로 감쌉니다. | +| **지원되지 않는 SVG 기능** | 특정 필터나 애니메이션이 렌더링되지 않습니다. | SVG를 단순화하거나 Inkscape와 같은 도구로 사전 처리해 필터를 평탄화합니다. | + +**전문가 팁:** 특정 페이지 순서가 필요하다면 SVG 파일명을 `page1.svg`, `page2.svg` 등으로 바꾸고 반복문으로 처리하면서 매번 `tiffOptions.setMultipage(true)`를 사용해 동일한 TIFF에 변환 결과를 추가하면 됩니다. + +## 전체 작업 예제 + +아래는 `SvgToMultipageTiff.java`라는 파일에 복사‑붙여넣기 할 수 있는 완전하고 독립적인 Java 클래스입니다. import 문, 주석 및 프로덕션 환경을 위한 오류 처리를 포함하고 있습니다. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +코드를 실행하면 각 SVG 루트가 별도 페이지가 되는 TIFF가 생성됩니다—인쇄나 아카이브용 **다중 페이지 tiff 만들기**에 정확히 필요한 결과입니다. + +## 결론 + +우리는 Java와 Aspose.HTML을 사용해 **다중 페이지 tiff 만들기** 방법을 보여주었습니다. 튜토리얼에서는 SVG 로드(`load svg document java`), 변환 옵션 구성, 변환 수행(`how to convert svg to tiff`), 그리고 출력 확인까지 다루었습니다. 전체 소스 코드를 손에 넣으면 수십 개의 SVG를 배치 처리하거나 DPI 설정을 조정하거나 더 큰 문서 생성 파이프라인에 이 로직을 통합하는 등 자유롭게 확장할 수 있습니다. + +다음 도전 과제가 준비되셨나요? SVG 폴더를 하나의 다중 페이지 TIFF로 변환해 보거나, 다양한 압축 방식을 실험하거나, `TiffConversionOptions`를 `PdfConversionOptions`로 교체해 PDF 출력도 시도해 보세요. 같은 원칙이 적용되므로 다른 포맷에도 쉽게 확장할 수 있습니다. + +질문이 있거나 특이한 SVG 엣지 케이스에 부딪혔다면 아래에 댓글을 남겨 주세요. 즐거운 코딩 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/html5-canvas-rendering/_index.md b/html/korean/java/html5-canvas-rendering/_index.md index ac4377c5a..f067ac8ae 100644 --- a/html/korean/java/html5-canvas-rendering/_index.md +++ b/html/korean/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ url: /ko/java/html5-canvas-rendering/ Aspose.HTML for Java로 HTML5 Canvas를 만들고 렌더링합니다. 이 강력한 Java 라이브러리를 사용하여 그리기, 스타일 지정 및 PDF로 내보내기 방법을 단계별로 학습합니다. ### [Aspose.HTML for Java로 HTML5 Canvas 마스터하기](./html5-canvas/) Aspose.HTML for Java를 사용하여 HTML5 Canvas를 PDF로 만들고 변환하는 방법을 알아보세요. 이 가이드는 웹 프로젝트를 개선하려는 개발자에게 완벽합니다. +### [iPhone 에뮬레이트하는 방법 – Aspose.HTML을 활용한 완전 가이드](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Aspose.HTML을 사용해 iPhone 환경을 에뮬레이트하고 웹 페이지를 테스트하는 방법을 단계별로 안내합니다. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/korean/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/korean/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..b1af66287 --- /dev/null +++ b/html/korean/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML을 사용하여 Java에서 iPhone을 에뮬레이트하는 방법을 배웁니다. 정확한 모바일 렌더링을 위해 사용자 + 지정 사용자 에이전트를 설정하고 디바이스 픽셀 비율을 설정하는 단계가 포함됩니다. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: ko +og_description: Java에서 iPhone을 에뮬레이트하는 방법은? 이 튜토리얼에서는 Aspose.HTML을 사용해 사용자 지정 User + Agent와 디바이스 픽셀 비율을 설정하는 방법을 보여주며, 픽셀 완벽한 모바일 페이지를 제공합니다. +og_title: iPhone 에뮬레이션 방법 – 단계별 Aspose.HTML 가이드 +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: iPhone 에뮬레이트하는 방법 – Aspose.HTML와 함께하는 완전 가이드 +url: /ko/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# iPhone 에뮬레이션하는 방법 – Aspose.HTML 완전 가이드 + +로컬에서 웹 페이지를 테스트할 때 **iPhone을 에뮬레이션하는 방법**이 궁금하셨나요? 반응형 레이아웃을 디버깅 중인데 데스크톱 브라우저로는 부족할 때가 있죠. 좋은 소식은 물리적인 기기가 필요 없다는 것입니다—Aspose.HTML의 `DocumentSandbox`를 사용하면 몇 줄의 Java 코드만으로 iPhone의 화면, 사용자 에이전트, 그리고 디바이스 픽셀 비율(DPR)을 모방할 수 있습니다. + +이 튜토리얼에서는 **맞춤 사용자 에이전트**를 설정하고, **디바이스 픽셀 비율**을 구성하며, 모든 것이 기대대로 작동하는지 확인하는 정확한 단계를 안내합니다. 끝까지 따라오시면 iPhone 8처럼 페이지를 렌더링하는 재사용 가능한 샌드박스를 만들 수 있으며, 각 설정이 왜 중요한지도 이해하게 됩니다. + +## 달성 목표 + +- iPhone의 치수와 DPR을 반영하는 `Screen` 객체를 생성합니다. +- 서버가 iOS Safari에서 온 요청이라고 인식하도록 **맞춤 사용자 에이전트** 문자열을 적용합니다. +- 화면과 사용자 에이전트를 연결하는 `DocumentSandbox`를 구축합니다. +- 샌드박스 내부에서 `HTMLDocument`를 실행하고, 콘솔 출력으로 구성이 확인되는지 확인합니다. + +Aspose.HTML 외에 별도의 라이브러리는 필요 없으며, 코드는 Java 17+ 환경 어디서든 실행됩니다. + +--- + +![iPhone 에뮬레이션 스크린샷](https://example.com/images/iphone-emulation.png "Aspose.HTML 샌드박스를 사용한 iPhone 에뮬레이션 방법") + +## Aspose.HTML 샌드박스로 iPhone 에뮬레이션하기 + +먼저 iPhone의 물리적 치수 *및* 픽셀 밀도를 반영하는 `Screen`이 필요합니다. 이것이 **iPhone을 정확히 에뮬레이션하는 방법**의 핵심입니다. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**왜 중요한가:** +- width = 375 px, height = 667 px는 iPhone 8을 Chrome DevTools에서 선택했을 때 표시되는 CSS 픽셀 치수입니다. +- DPR을 2로 설정하면 렌더링 엔진이 각 CSS 픽셀을 두 개의 물리 픽셀로 처리해 텍스트와 이미지가 선명해집니다—실제 기기와 동일한 효과를 제공합니다. + +> *Pro tip:* 최신 iPhone(iPhone 13 등)을 에뮬레이션하려면 숫자를 390 × 844, DPR = 3으로 바꾸면 됩니다. + +## 사용자 에이전트 맞춤 설정 (set custom user agent) + +다음으로 **맞춤 사용자 에이전트**를 설정해 서버가 모바일 전용 HTML/CSS를 제공하도록 해야 합니다. 이 설정이 없으면 많은 사이트가 여전히 데스크톱으로 인식합니다. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**작동 원리:** +- `User-Agent` 헤더는 브라우저가 자신을 알리는 핸드셰이크 역할을 합니다. +- iOS 16 Safari가 보내는 정확한 문자열을 제공하면 서버가 모바일에 최적화된 자산(반응형 이미지, 적응형 스크립트 등)을 반환합니다. + +다른 기기에 대해 **사용자 에이전트를 설정하는 방법**이 필요하면 문자열을 해당 값(예: Google Chrome, Firefox, 혹은 커스텀 봇)으로 교체하면 됩니다. + +## 디바이스 픽셀 비율 설정 (set device pixel ratio) + +이제 샌드박스 내부에서 **디바이스 픽셀 비율**을 실제로 **설정**합니다. 이는 시뮬레이션 환경에서 “**dpr을 설정하는 방법**”에 직접 답하는 단계입니다. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**설명:** +- `Builder` 패턴을 사용하면 화면(DPR을 포함)과 사용자 에이전트를 유연하게 연결할 수 있습니다. +- 샌드박스가 `HTMLDocument`를 렌더링할 때, 정확히 해당 픽셀 밀도를 가진 디바이스에서 실행되는 것처럼 동작합니다. + +> *왜 신경 써야 할까:* 일부 CSS 미디어 쿼리는 `device-pixel-ratio`(예: `@media (-webkit-min-device-pixel-ratio: 2)`)를 사용합니다. DPR을 설정하지 않으면 해당 규칙이 전혀 적용되지 않아 고해상도 자산을 놓치게 됩니다. + +## 샌드박스 구성 검증 (how to set user-agent) + +샌드박스를 실제로 작동시켜 보겠습니다. 아래 스니펫은 `HTMLDocument`를 생성하고 페이지를 로드한 뒤, 샌드박스가 활성화되었음을 확인하는 메시지를 출력합니다. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**예상 콘솔 출력** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +프로그램을 실행해 해당 라인이 보이면 **iPhone을 에뮬레이션하는 방법**을 올바른 DPR과 사용자 에이전트로 성공적으로 구현한 것입니다. 실제 브라우저에서 페이지를 열고 뷰포트 치수를 확인하면 우리가 설정한 iPhone 값과 일치함을 알 수 있습니다. + +## 일반적인 함정 및 DPR 올바르게 설정하기 (how to set dpr) + +올바른 코드를 사용하더라도 몇 가지 함정이 있을 수 있습니다: + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **DPR stays at 1** | `Screen`을 생성할 때 세 번째 인자(DPR)를 전달하지 않았기 때문입니다. | 항상 `new Screen(width, height, dpr)` 형태로 사용하세요. | +| **User‑Agent ignored** | 샌드박스가 `HTMLDocument`에 연결되지 않았습니다. | `HTMLDocument` 생성자의 두 번째 인자로 `documentSandbox`를 전달하세요. | +| **Wrong dimensions** | 하드웨어 픽셀 대신 CSS 픽셀을 사용했습니다. | width/height는 **CSS 픽셀**이며, 하드웨어 픽셀이 아님을 기억하세요. | +| **Server still sends desktop CSS** | 일부 사이트는 헤더뿐 아니라 JavaScript로 디바이스를 감지합니다. | 필요에 따라 뷰포트 메타 태그를 추가 삽입하는 것을 고려하세요. | + +이 점들을 기억하면 에뮬레이션이 기대대로 동작하지 않는 상황을 거의 만나지 않을 것입니다. + +## 샌드박스 확장 – 다음 단계 + +이제 **맞춤 사용자 에이전트를 설정하는 방법**과 **dpr을 설정하는 방법**을 알았으니, 더 다양한 실험을 할 수 있습니다: + +- **화면 크기 변경**으로 태블릿이나 더 큰 폰을 에뮬레이션합니다. +- **사용자 에이전트 교체**로 Android용 Chrome(`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`)을 테스트합니다. +- **쿠키 또는 헤더 추가**는 샌드박스의 `setHeaders` 메서드를 통해 인증 테스트에 활용합니다. +- **스크린샷 캡처**는 `HTMLDocument.renderToFile("output.png")`를 사용해 시각적 차이를 자동으로 비교합니다. + +이러한 확장을 통해 IDE를 떠나지 않고도 완전한 테스트 하네스를 구축할 수 있습니다. + +--- + +## 결론 + +우리는 Aspose.HTML의 `DocumentSandbox`를 이용해 **iPhone을 에뮬레이션하는 방법**을 다루었으며, **맞춤 사용자 에이전트를 설정하는 방법**, **디바이스 픽셀 비율을 설정하는 방법**, 그리고 “**사용자 에이전트를 설정하는 방법**”과 “**dpr을 설정하는 방법**” 사이의 미묘한 차이까지 정확히 보여주었습니다. 완전하고 실행 가능한 예제는 모든 요소를 한 곳에 모아두었으니, 복사·붙여넣기·조정만 하면 즉시 모바일 레이아웃 테스트를 시작할 수 있습니다. + +한 번 시도해 보세요—화면 크기를 바꾸고, 다양한 사용자 에이전트를 적용해 보며 페이지가 어떻게 반응하는지 확인해 보세요. 이 설정들을 마스터하면 반응형 디자인 디버깅이 쉬워지고, 실제 기기에서 버그를 찾는 데 소요되는 시간을 크게 절감할 수 있습니다. + +궁금한 점이 있거나 자신만의 변형을 공유하고 싶다면 아래에 댓글을 남겨 주세요. 즐거운 에뮬레이션 되세요! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/advanced-usage/_index.md b/html/polish/java/advanced-usage/_index.md index a4b691897..21cdf1016 100644 --- a/html/polish/java/advanced-usage/_index.md +++ b/html/polish/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Naucz się regulować rozmiar stron PDF przy użyciu Aspose.HTML dla Javy. Twór Dowiedz się, jak regulować rozmiar stron XPS przy użyciu Aspose.HTML dla Javy. Łatwo kontroluj wymiary wyjściowe dokumentów XPS. ### [Jak uruchomić JavaScript w Javie – Kompletny przewodnik](./how-to-run-javascript-in-java-complete-guide/) Dowiedz się, jak wykonywać kod JavaScript w aplikacji Java przy użyciu Aspose.HTML, krok po kroku, od konfiguracji po wywołanie skryptu. +### [Przykład top‑level await – użycie await delay w JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Poznaj, jak zastosować top‑level await i funkcję delay w kodzie JavaScript przy użyciu Aspose.HTML. --- diff --git a/html/polish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/polish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..46696942e --- /dev/null +++ b/html/polish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Przykład top‑level await pokazujący await delay w JavaScript, klasę inkrementującą + licznik oraz publiczne pola klasy w JavaScript w demonstracji na żywo. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: pl +og_description: przykład top‑level await, który demonstruje await delay w JavaScript, + klasę inkrementującą licznik oraz publiczne pola klasy w JavaScript w zwięzłym tutorialu. +og_title: przykład top‑level await – użycie await delay w JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Przykład top‑level await – użycie await delay w JavaScript +url: /pl/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# przykład top level await – używanie await delay w JavaScript + +Zastanawiałeś się kiedyś, jak wstrzymać wykonywanie modułu bez owijania wszystkiego w async IIFE? To właśnie to, co pozwala zrobić **top level await example**. W tym tutorialu przejdziemy przez małą stronę internetową, która używa `await delay javascript` do odroczenia pracy, a następnie tworzy `increment counter class`, które wykorzystuje **public class fields javascript**. Na końcu będziesz mieć kompletny, gotowy do skopiowania fragment kodu, który działa w każdej nowoczesnej przeglądarce. + +Omówimy wszystko, od definiowania klasy z polem publicznym po podłączenie prostego pomocnika opóźnienia opartego na obietnicach. Bez zewnętrznych bibliotek, bez kroku budowania — tylko czysty HTML, ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Expected Console Output + +``` +Counter class initialized +Final count: 1 +``` + +Jeśli otworzysz stronę w DevTools, powinieneś zobaczyć komunikat ze statycznego bloku pojawiający się **przed** zakończeniem opóźnienia, co potwierdza, że klasa została oceniona jako pierwsza. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +Możesz się zastanawiać, dlaczego nie napisaliśmy: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Oba podejścia działają, ale **public class fields javascript** dają czystszą, bardziej deklaratywną składnię. Pole jest definiowane raz, a nie wewnątrz każdego wywołania konstruktora, co może być łatwiejsze do odczytania, gdy klasa rośnie. Dodatkowo, statyczne bloki nie mogą być umieszczone wewnątrz konstruktora, więc oddzielenie logiki inicjalizacyjnej staje się bardziej naturalne. + +## Step 6 – Adapting the Example for Real‑World Apps + +W produkcji często potrzebujesz więcej niż jednego licznika. Oto kilka szybkich pomysłów: + +- **Multiple counters:** Przechowuj je w `Map` kluczowanej identyfikatorem. +- **Persisted state:** Zamień `console.log` na zapisy do `localStorage`. +- **Async initialization:** Użyj statycznego bloku do pobrania konfiguracji z serwera przed utworzeniem jakiejkolwiek instancji. + +Wszystkie te wzorce nadal korzystają z top‑level await, ponieważ możesz pobrać dane raz przy ładowaniu modułu i mieć pewność, że będą gotowe dla każdego konsumenta. + +## Frequently Asked Questions + +**Q: Czy top‑level await blokuje inne moduły?** +A: Nie. Każdy moduł działa niezależnie. Tylko moduł zawierający await jest wstrzymany; pozostałe moduły ładują się równolegle. + +**Q: Co się stanie, jeśli obietnica opóźnienia zostanie odrzucona?** +A: Nieobsłużone odrzucenie przerwie ocenianie modułu i pojawi się jako błąd w konsoli. Owiń `await` w `try…catch`, jeśli potrzebujesz łagodnego fallbacku. + +**Q: Czy słowo kluczowe `static` jest wymagane?** +A: Nie dla samego licznika, ale statyczny blok jest przydatny, aby pokazać, że kod uruchamia się *jednorazowo* przy ładowaniu — świetny do logowania lub wykrywania funkcji. + +## Conclusion + +Właśnie zbudowałeś **top level await example**, które prezentuje `await delay javascript`, **increment counter class** oraz moc **public class fields javascript**. Pełny, działający fragment kodu znajduje się powyżej, a wynik w konsoli dowodzi, że statyczny blok uruchamia się przed kodem opóźnionym. + +Od tego momentu możesz eksperymentować z bardziej złożonymi przepływami async, zamienić opóźnienie na prawdziwe wywołanie API lub rozbudować klasę o dodatkowe metody. Pamiętaj, nowoczesny JavaScript pozwala traktować moduły jako pierwszorzędne jednostki async — bez dodatkowych wrapperów. + +Miłego kodowania i zachęcam do dzielenia się swoimi wariacjami w komentarzach. Jeśli ten przewodnik okazał się przydatny, podziel się nim z kolegą, który wciąż zmaga się z wzorcami async! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/conversion-html-to-other-formats/_index.md b/html/polish/java/conversion-html-to-other-formats/_index.md index f5a75bf2c..2aa72fe24 100644 --- a/html/polish/java/conversion-html-to-other-formats/_index.md +++ b/html/polish/java/conversion-html-to-other-formats/_index.md @@ -84,6 +84,8 @@ Podsumowując, opanowanie **html to pdf java** oraz szerszego zestawu konwersji ## Konwersja - Samouczki HTML do Innych Formatów ### [Converting HTML to PDF](./convert-html-to-pdf/) Learn how to convert HTML to PDF in Java using Aspose.HTML. Create high-quality PDFs from your HTML content effortlessly. +### [Tworzenie PDF z HTML w Javie – Przewodnik konwersji wsadowej równoległej](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Dowiedz się, jak równolegle przetwarzać wiele plików HTML na PDF w Javie, zwiększając wydajność konwersji. ### [Konwertowanie HTML do PDF w Javie – Przewodnik krok po kroku z ustawieniami rozmiaru strony](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Dowiedz się, jak konwertować HTML do PDF w Javie, ustawiając rozmiar strony krok po kroku. ### [Converting HTML to MHTML](./convert-html-to-mhtml/) @@ -98,6 +100,10 @@ Learn how to convert SVG to images in Java with Aspose.HTML. Comprehensive guide Convert SVG to PDF in Java with Aspose.HTML. A seamless solution for high-quality document conversion. ### [Converting SVG to XPS](./convert-svg-to-xps/) Learn how to convert SVG to XPS with Aspose.HTML for Java. Simple, step-by-step guide for seamless conversions. +### [Utwórz PDF o niestandardowym rozmiarze – konwertuj HTML do PDF przy użyciu Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Dowiedz się, jak ustawić własny rozmiar strony przy konwersji HTML do PDF w Javie przy użyciu Aspose.HTML. +### [Konwertuj HTML do Markdown w Javie – Zachowaj oryginalne formatowanie](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Dowiedz się, jak konwertować HTML do Markdown w Javie, zachowując oryginalne formatowanie przy użyciu Aspose.HTML. ## Często zadawane pytania diff --git a/html/polish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/polish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..2feb32f13 --- /dev/null +++ b/html/polish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Konwertuj HTML na markdown i generuj plik markdown, zachowując oryginalne + formatowanie przy użyciu konwersji Aspose HTML w Javie. Ucz się krok po kroku. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: pl +og_description: Szybko konwertuj HTML na markdown, generuj plik markdown i zachowaj + oryginalne formatowanie przy użyciu konwersji Aspose HTML dla Javy. +og_title: Konwertuj HTML na Markdown w Javie – zachowaj formatowanie +tags: +- Aspose +- Java +- Markdown +title: Konwertuj HTML na Markdown w Javie – zachowaj oryginalne formatowanie +url: /pl/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konwertuj HTML na Markdown w Javie – Zachowaj oryginalne formatowanie + +Kiedykolwiek potrzebowałeś **convert HTML to markdown**, ale obawiałeś się, że stracisz odstępy, tabele lub znaczniki inline? Nie jesteś jedyny. Wielu programistów napotyka ten problem, gdy próbują przenieść treść ze strony internetowej do czystego formatu przyjaznego kontroli wersji. Dobra wiadomość? Kilka linii Javy i Aspose HTML pozwoli Ci **generate markdown file**, który wygląda dokładnie tak jak źródło, łącznie z białymi znakami. + +W tym przewodniku przejdziemy przez cały proces: wczytanie złożonego pliku HTML, skonfigurowanie konwersji tak, aby **preserve original formatting**, a na końcu zapisanie wyniku do `preserved.md`. Po zakończeniu będziesz mieć gotowy do uruchomienia fragment kodu, zrozumiesz *why* każde ustawienie ma znaczenie i będziesz wiedział, jak dostosować kod do przypadków brzegowych, takich jak niestandardowy CSS czy osadzone skrypty. + +## Czego będziesz potrzebować + +- Java 17 (lub dowolny nowoczesny JDK) – API działa z Java 8+, ale nowsze wersje zapewniają lepszą wydajność. +- Biblioteka Aspose HTML for Java (wersja 23.11 lub późniejsza). Możesz ją pobrać z Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Przykładowy plik HTML (`complex.html`) zawierający nagłówki, tabele, bloki kodu i ewentualnie trochę stylizacji inline ``. +- Odrobina cierpliwości i chęć eksperymentowania. + +To wszystko. Żadnych zewnętrznych narzędzi, żadnych hacków w wierszu poleceń — po prostu czysty kod Javy. + +## Krok 1: Wczytaj źródłowy dokument HTML + +Pierwszą rzeczą, którą robimy, jest stworzenie instancji `HTMLDocument`, która wskazuje na Twój plik źródłowy. Aspose HTML traktuje plik jako DOM, co oznacza, że możesz go przeglądać lub modyfikować przed konwersją, jeśli zajdzie taka potrzeba. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Why this matters:** Ładowanie dokumentu w ten sposób zapewnia, że wszystkie powiązane zasoby (arkusze stylów, obrazy) są rozwiązywane względem lokalizacji pliku. Jeśli pominiesz ten krok i podasz surowy łańcuch znaków, możesz stracić zewnętrzny CSS wpływający na odstępy — dokładnie to, co chcesz **preserve original formatting**. + +## Krok 2: Skonfiguruj opcje konwersji do Markdown + +Aspose HTML udostępnia klasę `MarkdownConversionOptions`. Kluczową właściwością dla nas jest `setPreserveOriginalFormatting(true)`. Po włączeniu konwerter zachowuje podziały linii, wcięcia i nawet surowe fragmenty HTML, których markdown nie potrafi przedstawić natywnie. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro tip:** Jeśli później odkryjesz, że niektóre style inline są usuwane, możesz także wywołać `markdownOptions.setIncludeHtml(true)`, aby wymusić wstawienie surowych bloków HTML do wyniku markdown. + +## Krok 3: Wykonaj konwersję + +Teraz przekazujemy `HTMLDocument`, docelową ścieżkę pliku i nasze opcje do statycznej metody `Converter.convertHTML`. Metoda wykonuje całą ciężką pracę w tle. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Gdy wywołanie zakończy się, znajdziesz `preserved.md` obok pliku źródłowego. Otwórz go w dowolnym edytorze — zauważ, że oryginalne podziały linii i wyrównanie tabel są zachowane. + +## Krok 4: Zweryfikuj wynik (Opcjonalnie, ale zalecane) + +Szybka kontrola poprawności chroni Cię przed subtelnymi błędami później. Możesz wczytać plik z powrotem do Javy i wydrukować kilka pierwszych linii, albo po prostu otworzyć go w VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Powinieneś zobaczyć coś takiego: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Tag `` nadal jest obecny, ponieważ natywna składnia tabel markdown nie była w stanie oddać dokładnego stylu — dzięki `preserve original formatting`. + +## Krok 5: Podsumowanie – pełny, gotowy do uruchomienia przykład + +Poniżej znajduje się kompletny, gotowy do uruchomienia kod klasy. Zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę na swoim komputerze. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Uruchom program poleceniem `mvn exec:java` lub w ulubionym IDE, a otrzymasz **generate markdown file**, który odzwierciedla oryginalny układ HTML. + +## Częste pytania i przypadki brzegowe + +### Czy to działa z zewnętrznymi plikami CSS? + +Tak. O ile pliki CSS są dostępne poprzez ścieżki względne, Aspose HTML ładuje je automatycznie. Jeśli pobierasz HTML z zdalnego URL, może być konieczne ustawienie własnego obiektu `ResourceLoadingOptions`, aby zezwolić na dostęp sieciowy. + +### Co zrobić, jeśli nie chcę żadnego surowego HTML w markdown? + +Po prostu zmień opcję: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Konwerter spróbuje wtedy przetłumaczyć wszystko na czystą składnię markdown, co może spowodować utratę niektórych elementów układu. + +### Czy mogę konwertować łańcuch znaków zamiast pliku? + +Oczywiście. Użyj konstruktora, który przyjmuje `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Następnie przekaż `doc` do `Converter.convertHTML` jak wcześniej. + +### Czym różni się to od innych bibliotek, takich jak Flexmark czy pandoc? + +Większość narzędzi open‑source traktuje HTML jako zwykły tekst i agresywnie usuwa białe znaki. Flaga `preserveOriginalFormatting` w Aspose HTML jest **proprietary feature**, która respektuje białe znaki, podziały linii i nawet zachowuje nieobsługiwane tagi jako surowe bloki HTML. Dlatego ten tutorial podkreśla **aspose html conversion** dla programistów Javy, którzy potrzebują dokładnej wierności. + +## Wskazówki do użycia w produkcji + +- **Batch processing:** Umieść logikę konwersji w pętli, aby obsłużyć wiele plików HTML jednocześnie. +- **Error handling:** Przechwytuj `IOException` oraz `com.aspose.html.exceptions.AssertionFailedException`, aby wykrywać brakujące zasoby. +- **Performance:** Ponownie używaj jednej instancji `HTMLDocument` przy konwertowaniu fragmentów dużej witryny; biblioteka buforuje parsowany CSS. + +## Zakończenie + +Właśnie pokazaliśmy, jak **convert HTML to markdown** w Javie, jednocześnie zapewniając, że wynik **preserve original formatting**. Krótki, samodzielny fragment kodu demonstruje cały przepływ pracy — od wczytania dokumentu HTML, przez konfigurację `MarkdownConversionOptions`, wykonanie konwersji i weryfikację wyniku. Dzięki solidnemu API Aspose HTML możesz teraz **generate markdown file** programowo, niezależnie od tego, czy tworzysz generator statycznych stron, pipeline dokumentacji, czy narzędzie do migracji treści. + +Następnie możesz zbadać: + +- Użycie **html to markdown java** do masowych migracji w całej witrynie. +- Dostosowanie opcji konwersji, aby uzyskać tabele w stylu GitHub‑flavored markdown. +- Połączenie tego podejścia z krokiem CI/CD, który automatycznie aktualizuje dokumentację przy każdej zmianie źródłowego HTML. + +Śmiało eksperymentuj i zostaw komentarz, jeśli napotkasz jakiekolwiek problemy. Szczęśliwego kodowania! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/polish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..28ac9823d --- /dev/null +++ b/html/polish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,198 @@ +--- +category: general +date: 2026-03-26 +description: Utwórz PDF o niestandardowym rozmiarze z HTML przy użyciu Aspose.HTML + dla Javy. Dowiedz się, jak konwertować HTML do PDF i ustawić rozmiar strony PDF + w kilku prostych krokach. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: pl +og_description: Utwórz PDF o niestandardowym rozmiarze z HTML przy użyciu Aspose. + Ten przewodnik pokaże, jak konwertować HTML na PDF, zmieniać rozmiar strony PDF + i łatwo ustawiać rozmiar strony PDF. +og_title: Utwórz PDF o niestandardowym rozmiarze – szybki przewodnik konwersji HTML + do PDF +tags: +- aspose +- java +- pdf +- html +title: Utwórz PDF o niestandardowym rozmiarze – konwertuj HTML na PDF przy użyciu + Aspose +url: /pl/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie PDF o niestandardowym rozmiarze – konwersja HTML do PDF przy użyciu Aspose + +Czy kiedykolwiek potrzebowałeś **utworzyć PDF o niestandardowym rozmiarze** z pliku HTML? W tym samouczku pokażemy, jak **konwertować HTML do PDF** i ustawić rozmiar strony PDF przy użyciu Aspose.HTML dla Javy. + +Jeśli tworzysz faktury, raporty lub e‑booki, dokładne wymiary strony mają znaczenie — w przeciwnym razie układ będzie wyśrodkowany nieprawidłowo lub zostanie obcięty. + +Przejdziemy przez każdy krok, od wczytania źródłowego HTML po dostosowanie marginesów, i zakończymy gotowym PDF. Bez niejasnych odniesień, tylko kompletny, gotowy do uruchomienia przykład, który możesz skopiować i wkleić już dziś. + +## Czego będziesz potrzebować + +- **Java 17** (lub dowolny nowszy JDK). +- **Aspose.HTML for Java** JAR‑y – możesz pobrać najnowszą wersję z repozytorium Maven lub ze strony Aspose. +- Prosty plik `input.html` umieszczony w wybranym przez Ciebie folderze. +- IDE lub edytor tekstu według własnego wyboru; zazwyczaj koduję w IntelliJ IDEA, ale Eclipse również się sprawdza. + +Posiadanie tych wymagań wstępnych oznacza, że nie napotkasz błędów „class not found” w połowie procesu. + +Teraz zanurzmy się. + +![Przykład tworzenia PDF o niestandardowym rozmiarze](/images/create-pdf-custom-size.png "Zrzut ekranu pokazujący PDF wygenerowany z niestandardowym rozmiarem strony i marginesami – create pdf custom size") + +## Tworzenie PDF o niestandardowym rozmiarze – Kluczowe kroki + +Poniżej znajduje się pełny program w Javie, który otrzymasz. Śmiało skopiuj go do pliku o nazwie `ConvertHtmlToPdfCustomPage.java` i uruchom po dodaniu zależności Aspose do swojego projektu. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Krok 1 – Konwersja HTML do PDF: Ładowanie dokumentu + +Pierwszą rzeczą, którą robimy, jest **wczytanie HTML**, który chcemy przekształcić w PDF. +`HTMLDocument` odczytuje plik, rozwiązuje względne odnośniki i buduje DOM, który Aspose może renderować. + +> **Dlaczego to ważne:** Jeśli HTML odwołuje się do CSS lub obrazów, Aspose pobierze je względem ścieżki pliku. Użycie ścieżki bezwzględnej (`YOUR_DIRECTORY/input.html`) zapobiega niespodziankom typu „file not found”. + +### Krok 2 – Zmiana rozmiaru strony PDF: Konfigurowanie opcji + +Tworzymy tutaj obiekt `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` instruuje Aspose, aby użył standardowych wymiarów A4 (210 × 297 mm). +- `setPageOrientation(...)` obraca stronę, jeśli potrzebny jest tryb poziomy. +- `setMargins(new Margin(20, 20, 20, 20))` ustawia margines 20 punktów po każdej stronie. + +Możesz zamienić `PageSize.A4` na `PageSize.LETTER` lub nawet **niestandardowy rozmiar**, przekazując obiekt `SizeF`, np.: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Pro tip:** Jeden punkt to 1/72 cala. Jeśli myślisz w milimetrach, pomnóż przez 2.83465, aby uzyskać liczbę punktów. + +### Krok 3 – Generowanie PDF z HTML: Uruchamianie konwersji + +`Converter.convertHTML` wykonuje najcięższą pracę. Przyjmuje wczytany `HTMLDocument`, ścieżkę wyjściową oraz opcje, które właśnie skonfigurowaliśmy. + +Jeśli chcesz **ustawić rozmiar strony PDF** dynamicznie w zależności od zawartości, możesz obliczyć wymagane wymiary przed tym krokiem i odpowiednio dostosować `pdfOptions`. + +### Krok 4 – Weryfikacja wyniku + +Linia `System.out.println` jest opcjonalna, ale zapewnia szybki feedback podczas uruchamiania programu z konsoli. Po wykonaniu otwórz `custom_page.pdf` – powinieneś zobaczyć PDF w formacie A4 w orientacji pionowej z jednolitymi marginesami 20 punktów, dokładnie tak, jak określiliśmy. + +## Konwersja HTML do PDF – Typowe warianty + +### Użycie strumienia zamiast ścieżki pliku + +Czasami nie masz fizycznego pliku; może HTML pochodzi z bazy danych lub API. W takim przypadku otocz ciąg w `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Drugi argument to bazowy URL służący do rozwiązywania względnych zasobów. + +### Zmiana orientacji strony + +Jeśli Twój raport jest szeroki, przełącz na orientację poziomą: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Drobne dopasowanie marginesów + +Marginesy akceptują wartości zmiennoprzecinkowe, więc możesz ustawić 0,5 pt dla bardzo cienkiej krawędzi: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Obsługa dużych plików HTML + +Dla ogromnych dokumentów rozważ włączenie **wydajnego pamięciowo strumieniowania**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Powoduje to, że Aspose zapisuje dane pośrednie do plików tymczasowych zamiast trzymać wszystko w pamięci RAM. + +## Ustawianie rozmiaru strony PDF – przypadki brzegowe i pułapki + +- **Brak czcionek:** Jeśli Twój HTML używa niestandardowej czcionki niezainstalowanej na serwerze, PDF przejdzie na domyślną. Osadź czcionkę za pomocą `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Skalowanie obrazów:** Obrazy o wysokiej rozdzielczości mogą zwiększyć rozmiar PDF. Użyj `pdfOptions.setImageResolution(150);`, aby zmniejszyć rozdzielczość przy zachowaniu jakości. +- **Kompatybilność CSS:** Nie wszystkie właściwości CSS są w pełni obsługiwane. Trzymaj się standardowych technik układu (flexbox działa, ale grid może mieć drobne problemy). +- **Uprawnienia do ścieżki:** Upewnij się, że proces ma prawo zapisu do `YOUR_DIRECTORY`. W przeciwnym razie zostanie rzucony `IOException`. + +## Oczekiwany wynik + +Uruchomienie programu generuje PDF, który wygląda tak (ilustracja koncepcyjna): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Rozmiar strony: **A4** (210 × 297 mm). +- Orientacja: **Pionowa**. +- Marginesy: **20 pt** po każdej stronie. + +Otwórz plik w dowolnym przeglądarce PDF (Adobe Reader, Chrome itp.), aby potwierdzić. + +## Podsumowanie + +Teraz wiesz, jak **utworzyć PDF o niestandardowym rozmiarze** z źródła HTML przy użyciu Aspose.HTML dla Javy. Samouczek obejmował cały proces: **konwersję HTML do PDF**, **zmianę rozmiaru strony PDF**, **ustawienie rozmiaru strony PDF** oraz **generowanie PDF z HTML** z niestandardowymi marginesami. + +Śmiało eksperymentuj — zamień `PageSize.LETTER` na rozmiar legal, dostosuj marginesy lub osadź własne czcionki. Następnie możesz zbadać **dodawanie znaków wodnych**, **szyfrowanie PDF** lub **przetwarzanie wsadowe wielu plików HTML**. Wszystkie te tematy opierają się na tych samych podstawowych koncepcjach, które właśnie omówiliśmy. + +Masz pytanie dotyczące konkretnego przypadku brzegowego? Napisz komentarz poniżej, a pomogę Ci rozwiązać problem. Szczęśliwego kodowania! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/polish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..f65f7591a --- /dev/null +++ b/html/polish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Twórz PDF z HTML szybko, używając stałej puli wątków. Naucz się przetwarzania + wsadowego HTML do PDF i uruchamiania zadań równoległych w Javie. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: pl +og_description: Twórz PDF z HTML szybko, używając stałej puli wątków. Dowiedz się, + jak przetwarzać HTML na PDF w partiach i uruchamiać zadania równoległe w Javie. +og_title: Tworzenie PDF z HTML w Javie – Przewodnik po równoległej konwersji wsadowej +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Tworzenie PDF z HTML w Javie – Przewodnik po równoległej konwersji wsadowej +url: /pl/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie PDF z HTML w Javie – Przewodnik po równoległej konwersji wsadowej + +Kiedykolwiek potrzebowałeś **utworzyć PDF z HTML**, ale utknąłeś, obserwując, jak jednowątkowa konwersja wolno się przetacza? Nie jesteś sam. W wielu rzeczywistych projektach otrzymujemy dziesiątki raportów HTML, które muszą stać się PDF‑ami do końca dnia, a przetwarzanie ich po kolei po prostu nie jest praktyczne. + +Dlatego ten tutorial pokazuje, **jak konwertować HTML do PDF** przy użyciu **stałego puli wątków**, pozwalając **wsadowo konwertować HTML do PDF** i **uruchamiać zadania równolegle** bez większego wysiłku. Po zakończeniu będziesz mieć kompletny, gotowy do uruchomienia program, który zamienia folder z plikami HTML w PDF‑y w ułamku czasu. + +## Czego się nauczysz + +W kolejnych sekcjach omówimy wszystko, co musisz wiedzieć: + +* Dokładną zależność Maven/Gradle dla Aspose.HTML (biblioteka, która wykonuje ciężką pracę). +* Dlaczego **stała pula wątków** jest optymalnym rozwiązaniem dla konwersji obciążonej CPU. +* Jak wypisać pliki źródłowe, aby proces mógł skalować się do setek dokumentów. +* Dokładny kod, który wklejasz do swojego IDE — bez brakujących importów, bez komentarzy „TODO”. +* Wskazówki dotyczące obsługi błędów, dostrajania rozmiaru puli i weryfikacji wyników. + +Wstępna znajomość Aspose.HTML nie jest wymagana, wystarczy podstawowa konfiguracja Javy i chęć eksperymentowania. Zaczynajmy. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Image alt text: create pdf from html – parallel conversion diagram* + +## Krok 1: Przygotuj projekt i dodaj Aspose.HTML + +Na początek — Twój projekt potrzebuje biblioteki Aspose.HTML. Jeśli używasz Maven, wstaw to do swojego `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Dla Gradle wystarczy: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Dlaczego Aspose.HTML? To komercyjna biblioteka, ale oferuje **API convert html to pdf**, które obsługuje CSS, JavaScript i złożone układy od razu. Jeśli wolisz otwarto‑źródłową alternatywę, możesz później zamienić wywołanie `Converter.convertHTML`, ale logika wątków pozostaje taka sama. + +> **Pro tip:** Trzymaj numer wersji zgodny z oficjalnymi notatkami wydania; nowsze wersje często przyspieszają renderowanie, co ma znaczenie przy uruchamianiu wielu zadań równolegle. + +## Krok 2: Zbuduj stałą pulę wątków dla równoległej konwersji + +Gdy masz wsad plików, nie chcesz tworzyć nieograniczonej liczby wątków — system operacyjny zacznie się „thrashować”. **Stała pula wątków** zapewnia przewidywalną ilość współbieżności, jednocześnie kontrolując zużycie pamięci. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Dlaczego cztery? Na typowej maszynie 8‑rdzeniowej połowa rdzeni może pozostać wolna dla I/O i systemu operacyjnego. Możesz eksperymentować: `Runtime.getRuntime().availableProcessors()` zwraca liczbę rdzeni, a prostą zasadą jest `cores / 2`. Pamiętaj, że każda konwersja jest intensywna pod względem CPU, więc więcej wątków niż rdzeni zazwyczaj obniża wydajność. + +## Krok 3: Zbierz pliki HTML, które chcesz konwertować + +Kolejnym elementem układanki jest lista **batch html to pdf**. Możesz zakodować tablicę na sztywno (jak w przykładzie) lub przeskanować katalog. Oto elastyczna wersja, która odczytuje każdy plik `.html` z folderu: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Takie podejście oznacza, że możesz wrzucać nowe pliki do folderu, a program automatycznie je wykryje — idealne do nocnego zadania wsadowego. + +## Krok 4: Zgłoś zadanie konwersji dla każdego pliku (uruchom zadania równolegle) + +Teraz najciekawsza część: każdy plik staje się **Runnable** (lub `Callable`), które pula wykonuje. Poniższy kod odzwierciedla oryginalny przykład, ale dodaje obsługę błędów i małą wiadomość logowania. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Dlaczego opakować konwersję w try‑catch?** Gdy **uruchamiasz zadania równolegle**, pojedynczy niepoprawny plik HTML mógłby inaczej zniszczyć cały executor. Łapanie wyjątków lokalnie zapewnia, że reszta wsadu będzie kontynuować pracę. + +## Krok 5: Zamknij executor i poczekaj na zakończenie + +Po zgłoszeniu wszystkich zadań musisz poinformować pulę, że nie przyjmuje już nowych prac, a następnie poczekać, aż wszystko się zakończy. To gwarantuje, że JVM nie zakończy się przedwcześnie. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Jeśli masz ogromny folder (tysiące plików), możesz zwiększyć limit czasu lub zaimplementować monitor postępu. Kluczowe jest **grzeczne zamknięcie** — to znak kodu gotowego do produkcji. + +## Pełny działający przykład + +Łącząc wszystko razem, oto samodzielna klasa, którą możesz skopiować‑wkleić do `src/main/java` i uruchomić: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Oczekiwany wynik** (przykład): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Jeśli otworzysz wygenerowane pliki `.pdf`, zobaczysz zachowaną pierwotną strukturę HTML — czcionki, tabele i nawet podstawową zawartość generowaną przez JavaScript. + +## Częste pytania i przypadki brzegowe + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/conversion-html-to-various-image-formats/_index.md b/html/polish/java/conversion-html-to-various-image-formats/_index.md index 2e1d027d5..7aeb17ec6 100644 --- a/html/polish/java/conversion-html-to-various-image-formats/_index.md +++ b/html/polish/java/conversion-html-to-various-image-formats/_index.md @@ -54,7 +54,7 @@ Wywołaj `renderer.renderToFile(outputPath, saveOptions)`, aby wygenerować obra *Te same trzy kroki mają zastosowanie do BMP, TIFF i każdego innego obsługiwanego formatu.* ## Konwertowanie HTML do BMP -Konwertowanie HTML do BMP jest częstym wymogiem przy archiwizacji stron internetowych lub generowaniu miniatur, które wymagają jakości bezstratnej. Niezależnie od tego, czy tworzysz system zarządzania dokumentami, czy narzędzie raportujące, ten przewodnik pokaże, jak wykonać konwersję bez wysiłku. +Konwertowanie HTML do BMP jest częstym wymogiem przy archiwizacji stron internetowych lub generowaniu miniatur, które wymagają jakości bezstratnej. Niezależnie od tego, czy tworzysz system zarządzania dokumentami, czy narzędzie raportujące, ten przewodnik pokaże Ci, jak wykonać konwersję bez wysiłku. ## Konwertowanie HTML do GIF Chcesz **convert HTML to GIF** dla animowanych podglądów lub lekkich grafik? Aspose.HTML for Java upraszcza to zadanie. Ten samouczek przeprowadzi Cię przez proces, zapewniając wysokiej jakości wynik przy minimalnym kodzie. @@ -97,7 +97,11 @@ Dowiedz się, jak konwertować HTML do obrazów PNG w Javie przy użyciu Aspose. ### [Converting HTML to TIFF](./convert-html-to-tiff/) Dowiedz się, jak łatwo konwertować HTML do TIFF przy użyciu Aspose.HTML for Java. Przewodnik krok po kroku dla efektywnego zarządzania dokumentami. -### [Konwertowanie HTML do WebP – Kompletny przewodnik Java z Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Utworzenie wielostronicowego TIFF z SVG w Javie – Przewodnik krok po kroku](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Dowiedz się, jak utworzyć wielostronicowy plik TIFF z SVG w Javie przy użyciu Aspose.HTML. Kompletny przewodnik krok po kroku. + +### [Konwertowanie HTML do WebP – Kompletny przewodnik Java z Aspose.HTML](./convert-html-to-webp-complete-java-guide/) +Dowiedz się, jak konwertować HTML do formatu WebP w Javie przy użyciu Aspose.HTML. Szczegółowy przewodnik krok po kroku. ## Najczęściej zadawane pytania diff --git a/html/polish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/polish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..daecc70ff --- /dev/null +++ b/html/polish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-03-26 +description: Szybko konwertuj HTML na WebP za pomocą Aspose.HTML. Dowiedz się, jak + zapisać HTML jako WebP, renderować HTML jako WebP oraz generować WebP z HTML w kilku + prostych krokach. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: pl +og_description: Szybko konwertuj HTML na WebP za pomocą Aspose.HTML. Ten samouczek + pokazuje, jak renderować HTML jako WebP i generować WebP z HTML w Javie. +og_title: Konwertuj HTML do WebP – Kompletny przewodnik Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Konwertuj HTML na WebP – Kompletny przewodnik Java +url: /pl/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konwertowanie HTML do WebP – Kompletny przewodnik Java + +Kiedykolwiek potrzebowałeś **przekonwertować HTML do WebP**, ale nie wiedziałeś, która biblioteka poradzi sobie z tym zadaniem bez problemów? Nie jesteś sam. Wielu programistów napotyka ten problem, gdy chcą serwować lekkie obrazy generowane z dynamicznych stron. Dobra wiadomość? Dzięki Aspose.HTML for Java możesz *zapisać HTML jako WebP* jednym wywołaniem metody, a cały proces jest tak gładki, jak masło. + +W tym tutorialu przejdziemy przez wszystko, co musisz wiedzieć: od dodania zależności Aspose.HTML, przez dostosowanie ustawień kompresji, aż po renderowanie dokumentu HTML jako pliku WebP, który możesz udostępnić w sieci. Na koniec będziesz potrafił **renderować HTML jako WebP**, **generować WebP z HTML** oraz zrozumiesz „dlaczego” każdej opcji konfiguracyjnej. Bez zewnętrznych skryptów, bez gimnastyki wiersza poleceń — po prostu czysty kod Java. + +## Wymagania wstępne + +Zanim zaczniemy, upewnij się, że masz: + +- Java 8 lub nowszą (biblioteka obsługuje JDK 8+). +- Maven lub Gradle do zarządzania zależnościami (pokażemy fragment Maven). +- Prosty plik HTML (`input.html`), który chcesz zamienić w obraz WebP. +- IDE lub edytor tekstu według własnego wyboru — IntelliJ IDEA świetnie się sprawdza, ale każdy będzie odpowiedni. + +Masz wszystko? Świetnie, zaczynamy. + +## Krok 1: Dodaj Aspose.HTML do projektu + +Na początek potrzebujesz biblioteki Aspose.HTML w classpath. Jeśli używasz Maven, wstaw to do swojego `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Dla Gradle wygląda to tak: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Dlaczego ten krok jest kluczowy? Bez JAR‑a klasy `HTMLDocument`, `Converter` czy `WebpConversionOptions` nie istnieją, a kompilator zgłosi `ClassNotFoundException`. Dodanie zależności pobiera także natywne binaria potrzebne do kodowania WebP, więc nie musisz szukać zewnętrznych plików DLL czy `.so`. + +> **Pro tip:** Aktualizuj zależności na bieżąco. Nowsze wydania Aspose często ulepszają algorytmy kompresji WebP i dodają wsparcie dla nowych funkcji HTML5. + +## Krok 2: Załaduj źródłowy dokument HTML + +Teraz, gdy biblioteka jest gotowa, możemy wczytać HTML, który chcesz przekonwertować. Klasa `HTMLDocument` parsuje plik i buduje DOM, który później zostanie wyrenderowany przez konwerter. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Zauważ komentarz „Load the source HTML document” — to przypomnienie, że możesz także wstrzyknąć CSS lub JavaScript przed konwersją, jeśli Twoja strona zależy od dynamicznego stylowania. Jeśli pominiesz ten krok, konwerter nie będzie miał czego renderować, co skutkować będzie pustym obrazem. + +## Krok 3: Skonfiguruj opcje konwersji WebP + +Aspose.HTML daje precyzyjną kontrolę nad wynikiem. W większości przypadków **strata** WebP z ustawieniem jakości około 85 zapewnia dobry kompromis między jakością wizualną a rozmiarem pliku. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Dlaczego wybrać tryb stratny? Tryb stratny WebP używa kodowania predykcyjnego, które może zmniejszyć pliki o 30‑50 % w porównaniu do PNG, zachowując większość szczegółów wizualnych. Jeśli potrzebujesz perfekcyjnej odwzorowania piksel po pikselu (np. dla logotypów), przełącz `CompressionMode` na `Lossless` i ustaw `quality` na 100. + +## Krok 4: Konwertuj i zapisz obraz WebP + +Mając dokument i opcje, sama konwersja to jednowierszowy kod. Statyczna metoda `Converter.convertHTML` wykonuje całą ciężką pracę: renderuje DOM na bitmapę, koduje ją jako WebP i zapisuje plik na dysku. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +I to wszystko! Po zakończeniu programu znajdziesz `output.webp` obok źródłowego HTML. Teraz możesz serwować go bezpośrednio z serwera WWW, osadzić w elemencie `` lub używać w dowolnym kontekście obsługującym WebP. + +## Krok 5: Zweryfikuj wynik (opcjonalnie, ale zalecane) + +Zawsze warto sprawdzić, czy konwersja zakończyła się sukcesem i czy obraz wygląda tak, jak powinien. Możesz otworzyć plik WebP w Chrome, Firefoxie lub dowolnym przeglądarce obrazów obsługującej ten format. Dla szybkiej, programowej weryfikacji możesz odczytać rozmiar pliku i wymiary: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Jeśli plik jest nieoczekiwanie duży lub wymiary są nieprawidłowe, wróć do **Kroku 3** i dostosuj `quality` lub ustawienia viewportu w źródłowym HTML. Pamiętaj, że WebP respektuje CSS‑owe `width`/`height` elementu root, więc brak tagu `` może dawać zaskakujące rezultaty. + +## Pełny działający przykład + +Łącząc wszystko razem, oto kompletny, gotowy do uruchomienia kod Java: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Zapisz ten plik jako `HtmlToWebp.java`, zamień `YOUR_DIRECTORY` na rzeczywistą ścieżkę folderu, skompiluj poleceniem `javac`, a uruchom przy pomocy `java HtmlToWebp`. Powinieneś zobaczyć w konsoli informacje o rozmiarze i wymiarach pliku, a na końcu komunikat o sukcesie. + +![przykład konwersji html do webp](/images/convert-html-to-webp.png "Zrzut ekranu obrazu WebP wygenerowanego z HTML – konwersja html do webp") + +## Często zadawane pytania i przypadki brzegowe + +### Co zrobić, gdy mój HTML odwołuje się do zewnętrznych zasobów (CSS, obrazy)? + +Aspose.HTML automatycznie rozwiązuje względne URL‑e na podstawie lokalizacji `input.html`. Upewnij się, że zasoby są dostępne w systemie plików lub na serwerze WWW. Jeśli potrzebujesz wstrzyknąć własny bazowy URL, użyj przeciążonego konstruktora `HTMLDocument`, który przyjmuje bazowy `URI`. + +### Czy mogę wygenerować wiele obrazów WebP z tego samego HTML (np. o różnych rozmiarach viewportu)? + +Oczywiście. Umieść logikę konwersji w pętli, przed każdym wywołaniem dostosuj `webpOptions.setWidth()` i `setHeight()`, a wynikowi nadaj unikalną nazwę pliku. To przydatne w responsywnym designie, gdy serwujesz różne rozmiary obrazu dla mobile i desktop. + +### Jak przełączyć się na kompresję bezstratną? + +Zastąp linię: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +następującą: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Kompresja bezstratna gwarantuje perfekcyjną wierność pikseli, ale generuje większe pliki — używaj jej tylko wtedy, gdy jest to niezbędne. + +### Czy to działa na Linux/macOS? + +Tak. JAR‑a Aspose.HTML zawiera natywne binaria dla Windows, Linux i macOS, więc ten sam kod Java działa wszędzie. Wystarczy, że masz odpowiednią JRE. + +## Zakończenie + +Właśnie nauczyłeś się **konwertować HTML do WebP** przy użyciu Aspose.HTML for Java, obejmując wszystko od konfiguracji zależności, przez precyzyjne dostrajanie kompresji, aż po weryfikację wyniku. Dzięki tej wiedzy możesz **zapisać HTML jako WebP**, **renderować HTML jako WebP** i **generować WebP z HTML** w locie — idealne rozwiązanie dla dynamicznych potoków obrazów, newsletterów e‑mailowych lub każdego scenariusza, w którym liczy się lekkość grafiki. + +Co dalej? Eksperymentuj z różnymi wartościami `quality`, poznawaj tryb `Lossless`, albo wbuduj ten konwerter w endpoint REST Spring Boot, aby Twój serwis mógł zwracać obrazy WebP na żądanie. Możesz także przetwarzać wsadowo folder HTML‑ów lub połączyć to z headless Chrome w celu konwersji SVG‑do‑WebP. + +Masz więcej pytań o **konwersję HTML** w innych językach lub potrzebujesz pomocy przy konkretnym przypadku brzegowym? Zostaw komentarz poniżej i powodzenia w kodowaniu! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/polish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..2a366002b --- /dev/null +++ b/html/polish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Utwórz wielostronicowy plik TIFF z SVG w Javie przy użyciu Aspose.HTML. + Dowiedz się, jak konwertować SVG na TIFF, ładować dokument SVG w Javie oraz tworzyć + wielostronicowe pliki TIFF. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: pl +og_description: Utwórz wielostronicowy plik TIFF z SVG w Javie. Ten tutorial pokazuje, + jak załadować dokument SVG, skonfigurować opcje TIFF i wygenerować bezstratny wielostronicowy + plik TIFF. +og_title: Tworzenie wielostronicowego pliku TIFF z SVG w Javie – Kompletny przewodnik +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Tworzenie wielostronicowego TIFF z SVG w Javie – Przewodnik krok po kroku +url: /pl/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tworzenie wielostronicowego TIFF z SVG w Javie – Przewodnik krok po kroku + +Kiedykolwiek potrzebowałeś **utworzyć wielostronicowy TIFF** z pliku SVG, ale nie wiedziałeś, od czego zacząć? Nie jesteś sam — wielu programistów napotyka ten sam problem, gdy potrzebują drukowalnego, bezstratnego dokumentu rozciągającego się na kilka stron. W tym przewodniku przeprowadzimy Cię przez kompletną, gotową do uruchomienia rozwiązanie, które pokazuje **jak przekonwertować SVG na TIFF**, załadować dokument SVG w Javie oraz skonfigurować wyjście, aby **tworzyć wielostronicowe pliki TIFF** z kompresją LZW. + +Omówimy wszystko, od konfiguracji biblioteki Aspose.HTML po obsługę przypadków brzegowych, takich jak duże zasoby SVG. Po zakończeniu tutorialu będziesz mieć jedną klasę Java, którą możesz wkleić do dowolnego projektu i natychmiast zacząć generować wielostronicowe TIFF‑y. + +## Czego będziesz potrzebować + +- **Java Development Kit (JDK) 8+** – kod korzysta ze standardowych API Javy. +- **Aspose.HTML for Java** (wersja 23.5 lub nowsza) – jedyne zewnętrzne zależności. +- **Przykładowy plik SVG** (dowolna grafika wektorowa; nazwijmy go `input.svg`). +- Ulubione IDE lub prosty edytor tekstu oraz terminal. + +Nie są wymagane dodatkowe narzędzia budujące; przykład kompiluje się przy użyciu `javac` i uruchamia przy pomocy `java`. Jeśli wolisz Maven lub Gradle, po prostu dodaj plik JAR Aspose.HTML do classpathu projektu. + +![Create multipage tiff example](create-multipage-tiff.png){alt="przykład tworzenia wielostronicowego tiff"} + +## Krok 1 – Załaduj dokument SVG (load svg document java) + +Pierwszą rzeczą, którą musimy zrobić, jest odczytanie SVG do obiektu `HTMLDocument`. Aspose.HTML traktuje pliki SVG jako dokumenty HTML, co daje nam jednolite API do konwersji. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Dlaczego to ważne:** Załadowanie SVG jako `HTMLDocument` zapewnia dostęp do pełnego silnika renderującego, gwarantując, że wszystkie style, czcionki i osadzone obrazy zostaną poprawnie zinterpretowane przed konwersją. Pominięcie tego kroku i próba przekazania surowych bajtów bezpośrednio do konwertera często skutkuje brakującymi elementami lub nieprawidłowymi kolorami. + +## Krok 2 – Skonfiguruj opcje TIFF (how to create multipage tiff) + +Następnie ustawiamy `TiffConversionOptions`. Ten obiekt kontroluje wszystko, od układu stron po kompresję. Aby uzyskać prawdziwy wielostronicowy wynik, włączamy `setMultipage(true)` i wybieramy kompresję **LZW**, ponieważ jest bezstratna i szeroko wspierana. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Dlaczego to ważne:** Jeśli pominiesz `setMultipage(true)`, biblioteka wygeneruje jednopostaciowy TIFF, odrzucając dodatkowe strony, które mogłyby zostać wywnioskowane z SVG (np. gdy SVG zawiera wiele elementów `` jako korzeń). LZW utrzymuje rozmiar pliku w rozsądnych granicach bez utraty jakości obrazu — idealne do archiwizacji lub druku. + +## Krok 3 – Wykonaj konwersję (how to convert svg to tiff) + +Teraz następuje najcięższa część. Statyczna metoda `Converter.convertSVG` przyjmuje załadowany dokument, ścieżkę docelową oraz opcje, które właśnie zdefiniowaliśmy. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Dlaczego to ważne:** Użycie statycznego wywołania `convertSVG` jest najprostszym sposobem uruchomienia konwersji. W tle Aspose.HTML rasteryzuje dane wektorowe przy domyślnej rozdzielczości 96 dpi; możesz dostosować DPI za pomocą `tiffOptions.setResolution(...)`, jeśli wymagana jest wyższa jakość. + +## Krok 4 – Zweryfikuj wynik + +Po zakończeniu konwersji warto sprawdzić, czy plik istnieje i zawiera oczekiwaną liczbę stron. Szybka weryfikacja może być wykonana dowolnym przeglądarką obrazów obsługującą wielostronicowe TIFF (np. IrfanView, XnView lub nawet `ImageIO` w Javie). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Uruchom program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Powinieneś zobaczyć komunikat w konsoli potwierdzający sukces, a otwarcie `output.tiff` ujawni jedną stronę na każdy element korzenia SVG (lub jedną stronę, jeśli SVG ma tylko jedną płaszczyznę). + +## Typowe problemy i wskazówki profesjonalne + +| Problem | Dlaczego się pojawia | Jak to naprawić | +|-------|----------------|---------------| +| **Brakujące czcionki** | SVG odwołuje się do czcionek systemowych, które nie są zainstalowane na serwerze. | Osadź czcionki w SVG lub użyj `FontSettings` w Aspose.HTML, aby wskazać własny folder czcionek. | +| **Duży rozmiar pliku** | Rasteryzacja w wysokiej rozdzielczości może znacznie zwiększyć rozmiar TIFF. | Obniż DPI za pomocą `tiffOptions.setResolution(150)` lub tymczasowo przełącz na `Compression.NONE` w celach debugowania. | +| **Brak wielu stron** | SVG zawiera tylko jeden element ``. | Podziel źródło na osobne pliki SVG lub otocz każdą logiczną stronę tagiem `` przed konwersją. | +| **Nieobsługiwane funkcje SVG** | Niektóre filtry lub animacje nie są renderowane. | Uprość SVG lub przetwórz je wcześniej narzędziem takim jak Inkscape, aby spłaszczyć filtry. | + +**Wskazówka profesjonalna:** Jeśli potrzebujesz określonej kolejności stron, nazwij pliki SVG jako `page1.svg`, `page2.svg` itd., i iteruj po nich, dołączając każdy wynik konwersji do tego samego pliku TIFF przy użyciu `tiffOptions.setMultipage(true)` przy każdym przebiegu. + +## Pełny działający przykład + +Poniżej znajduje się kompletny, samodzielny kod klasy Java, który możesz skopiować i wkleić do pliku o nazwie `SvgToMultipageTiff.java`. Zawiera on instrukcje importu, komentarze oraz obsługę błędów przydatną w środowisku produkcyjnym. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Uruchomienie kodu generuje TIFF, w którym każdy korzeń SVG staje się osobną stroną — dokładnie to, czego potrzebujesz, aby **tworzyć wielostronicowe TIFF** do druku lub archiwizacji. + +## Zakończenie + +Pokazaliśmy, jak **tworzyć wielostronicowy TIFF** z SVG przy użyciu Javy i Aspose.HTML. Tutorial obejmował ładowanie SVG (`load svg document java`), konfigurowanie opcji konwersji, wykonywanie konwersji (`how to convert svg to tiff`) oraz weryfikację wyniku. Mając pełny kod źródłowy, możesz dostosować rozwiązanie do przetwarzania wsadowego dziesiątek SVG, modyfikować ustawienia DPI lub integrować logikę z większym potokiem generowania dokumentów. + +Gotowy na kolejny wyzwanie? Spróbuj przekonwertować cały folder SVG do jednego wielostronicowego TIFF, poeksperymentuj z różnymi schematami kompresji lub wypróbuj wyjście PDF, zamieniając `TiffConversionOptions` na `PdfConversionOptions`. Te same zasady się stosują, więc łatwo rozwiniesz ten wzorzec na inne formaty. + +Masz pytania lub napotkałeś nietypowy przypadek SVG? zostaw komentarz poniżej i powodzenia w kodowaniu! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/html5-canvas-rendering/_index.md b/html/polish/java/html5-canvas-rendering/_index.md index cd56094d5..a949d2a02 100644 --- a/html/polish/java/html5-canvas-rendering/_index.md +++ b/html/polish/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ Po pierwsze, porozmawiajmy o elemencie HTML5 Canvas. Pomyśl o nim jak o pustym Twórz i renderuj HTML5 Canvas za pomocą Aspose.HTML dla Java. Dowiedz się krok po kroku, jak rysować, stylizować i eksportować do PDF za pomocą tej potężnej biblioteki Java. ### [Opanowanie HTML5 Canvas z Aspose.HTML dla Java](./html5-canvas/) Dowiedz się, jak tworzyć i konwertować HTML5 Canvas do PDF za pomocą Aspose.HTML dla Java. Ten przewodnik jest idealny dla programistów, którzy chcą ulepszyć swoje projekty internetowe. +### [Jak emulować iPhone – Kompletny przewodnik z Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Dowiedz się, jak symulować iPhone w przeglądarce przy użyciu Aspose.HTML, aby testować responsywność i renderowanie stron. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/polish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/polish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..a5494c585 --- /dev/null +++ b/html/polish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Dowiedz się, jak emulować iPhone’a w Javie przy użyciu Aspose.HTML. Zawiera + kroki ustawienia niestandardowego agenta użytkownika i ustawienia współczynnika + pikseli urządzenia dla dokładnego renderowania mobilnego. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: pl +og_description: Jak emulować iPhone w Javie? Ten samouczek pokazuje, jak ustawić niestandardowy + user‑agent i współczynnik pikseli urządzenia przy użyciu Aspose.HTML, dostarczając + mobilne strony o idealnym odwzorowaniu pikseli. +og_title: Jak emulować iPhone – Przewodnik Aspose.HTML krok po kroku +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Jak emulować iPhone – Kompletny przewodnik z Aspose.HTML +url: /pl/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Jak emulować iPhone – Kompletny przewodnik z Aspose.HTML + +Zastanawiałeś się kiedyś **jak emulować iPhone**, testując stronę internetową lokalnie? Być może debugujesz responsywny układ i przeglądarka na komputerze po prostu nie wystarcza. Dobrą wiadomością jest to, że nie potrzebujesz fizycznego urządzenia — Aspose.HTML’s `DocumentSandbox` pozwala naśladować ekran iPhone’a, user‑agent oraz device‑pixel‑ratio (DPR) kilkoma liniami Javy. + +W tym tutorialu przejdziemy krok po kroku przez ustawienie **niestandardowego user‑agent**, skonfigurowanie **device pixel ratio** oraz weryfikację, że wszystko działa zgodnie z oczekiwaniami. Po zakończeniu będziesz mieć wielokrotnego użytku sandbox, który renderuje strony tak, jak iPhone 8, i zrozumiesz, dlaczego każde ustawienie ma znaczenie. + +## Co osiągniesz + +- Utwórz obiekt `Screen`, który odzwierciedla wymiary iPhone’a oraz DPR. +- Zastosuj **niestandardowy ciąg user‑agent**, aby serwery myślały, że żądanie pochodzi z Safari na iOS. +- Zbuduj `DocumentSandbox`, który łączy ekran i user‑agent. +- Uruchom `HTMLDocument` wewnątrz sandboxu i zobacz wyjście konsoli potwierdzające konfigurację. + +Nie są wymagane żadne zewnętrzne biblioteki poza Aspose.HTML, a kod działa w dowolnym środowisku Java 17+. + +--- + +![zrzut ekranu jak emulować iPhone](https://example.com/images/iphone-emulation.png "jak emulować iPhone przy użyciu sandboxu Aspose.HTML") + +## Jak emulować iPhone przy użyciu Aspose.HTML Sandbox + +Pierwszą rzeczą, której potrzebujemy, jest `Screen`, który odzwierciedla fizyczne wymiary iPhone’a *oraz* jego gęstość pikseli. To jest sedno **jak emulować iPhone** dokładnie. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Dlaczego to ma znaczenie:** +- Szerokość = 375 px i wysokość = 667 px to wymiary w pikselach CSS, które zobaczysz w Chrome DevTools po wybraniu iPhone 8. +- Ustawienie DPR na 2 informuje silnik renderujący, że każdy piksel CSS jest równy dwóm fizycznym pikselom, co daje ostre teksty i obrazy — dokładnie tak, jak robi to prawdziwe urządzenie. + +> *Wskazówka:* Jeśli potrzebujesz emulować nowszy iPhone (np. iPhone 13), po prostu zmień liczby na 390 × 844 i DPR = 3. + +## Ustawianie niestandardowego User Agent (set custom user agent) + +Następnie musimy **ustawić niestandardowy user agent**, aby serwer dostarczał mobilne wersje HTML/CSS. Bez tego wiele stron nadal będzie myślało, że jesteś na komputerze. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Jak to działa:** +- `User-Agent` to nagłówek, którego przeglądarki używają do przedstawienia się. +- Podając dokładny ciąg, który wysyła Safari na iOS 16, zapewniasz, że serwer zwróci zasoby zoptymalizowane pod mobile (np. responsywne obrazy, adaptacyjne skrypty, itp.). + +Jeśli kiedykolwiek będziesz musiał **ustawić user-agent** dla innego urządzenia, po prostu zamień ciąg na odpowiednią wartość — Google Chrome, Firefox lub nawet własny bot. + +## Konfigurowanie Device Pixel Ratio (set device pixel ratio) + +Teraz faktycznie **ustawiamy device pixel ratio** wewnątrz sandboxu. To krok, który bezpośrednio odpowiada na pytanie “**jak ustawić dpr**” w środowisku symulowanym. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Wyjaśnienie:** +- Wzorzec `Builder` pozwala płynnie dołączyć zarówno ekran (z DPR), jak i user‑agent. +- Gdy sandbox renderuje `HTMLDocument`, będzie udawał, że działa na urządzeniu o dokładnie takiej gęstości pikseli. + +> *Dlaczego to ważne:* Niektóre zapytania media w CSS używają `device-pixel-ratio` (np. `@media (-webkit-min-device-pixel-ratio: 2)`). Jeśli nie ustawisz DPR, te reguły nigdy się nie uruchomią i przegapisz zasoby w wysokiej rozdzielczości. + +## Weryfikacja konfiguracji sandboxu (how to set user-agent) + +Umieśćmy sandbox w działaniu. Poniższy fragment tworzy `HTMLDocument`, ładuje stronę i wypisuje potwierdzenie, że sandbox jest aktywny. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Oczekiwany wynik w konsoli** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Jeśli uruchomisz program i zobaczysz tę linię, pomyślnie **emulowałeś iPhone** z prawidłowym DPR i user‑agent. Otwórz stronę w prawdziwej przeglądarce i sprawdź wymiary viewportu — zauważysz, że odpowiadają wartościom iPhone’a, które ustawiliśmy. + +## Typowe pułapki i jak poprawnie ustawić DPR (how to set dpr) + +Nawet przy prawidłowym kodzie kilka drobnych problemów może Cię zaskoczyć: + +| Problem | Dlaczego się pojawia | Rozwiązanie | +|---------|----------------------|-------------| +| **DPR pozostaje przy 1** | Przekazałeś `Screen` bez trzeciego argumentu (DPR). | Zawsze używaj `new Screen(width, height, dpr)`. | +| **User‑Agent ignorowany** | Sandbox nie został podłączony do `HTMLDocument`. | Przekaż `documentSandbox` jako drugi argument do konstruktora `HTMLDocument`. | +| **Nieprawidłowe wymiary** | Używanie pikseli urządzenia zamiast pikseli CSS. | Pamiętaj: szerokość/wysokość to **piksele CSS**, a nie piksele sprzętowe. | +| **Serwer wciąż wysyła desktopowy CSS** | Niektóre strony używają JavaScriptu do wykrywania urządzeń, nie tylko nagłówka. | Rozważ także wstrzyknięcie meta tagu viewport, jeśli to konieczne. | + +Mając te informacje na uwadze, rzadko spotkasz sytuację, w której emulacja nie zachowuje się zgodnie z oczekiwaniami. + +## Rozszerzanie sandboxu – kolejne kroki + +Teraz, gdy znasz **jak ustawić niestandardowy user agent** i **jak ustawić dpr**, możesz dalej eksperymentować: + +- **Zmień rozmiar ekranu** aby emulować tablety lub większe telefony. +- **Zamień user‑agent** aby testować Chrome na Androidzie (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Dodaj ciasteczka lub nagłówki** za pomocą metody `setHeaders` sandboxu, aby testować uwierzytelnione sesje. +- **Zrób zrzut ekranu** używając `HTMLDocument.renderToFile("output.png")`, aby automatycznie porównać różnice wizualne. + +Te rozszerzenia pozwalają zbudować w pełni funkcjonalny zestaw testowy bez opuszczania IDE. + +--- + +## Zakończenie + +Omówiliśmy **jak emulować iPhone** przy użyciu `DocumentSandbox` z Aspose.HTML, pokazując dokładnie **jak ustawić niestandardowy user agent**, **jak ustawić device pixel ratio**, a także subtelne różnice między “**jak ustawić user-agent**” a “**jak ustawić dpr**”. Kompletny, działający przykład demonstruje wszystkie elementy w jednym miejscu, więc możesz kopiować‑wklejać, modyfikować i od razu rozpocząć testowanie układów mobilnych. + +Spróbuj — zmień wymiary ekranu, baw się różnymi user‑agentami i obserwuj, jak Twoje strony reagują. Gdy opanujesz te ustawienia, debugowanie responsywnych projektów stanie się bułką z masłem, a Ty zaoszczędzisz niezliczone godziny na poszukiwaniu błędów na prawdziwych urządzeniach. + +Masz pytania lub chcesz podzielić się własnymi wariacjami? zostaw komentarz poniżej i powodzenia w emulacji! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/advanced-usage/_index.md b/html/portuguese/java/advanced-usage/_index.md index 4121b05f1..94c8c127d 100644 --- a/html/portuguese/java/advanced-usage/_index.md +++ b/html/portuguese/java/advanced-usage/_index.md @@ -137,6 +137,8 @@ Aprenda a ajustar o tamanho de página XPS com Aspose.HTML for Java. Controle fa ### [Como Executar JavaScript em Java – Guia Completo](./how-to-run-javascript-in-java-complete-guide/) Aprenda a executar código JavaScript dentro de aplicações Java usando Aspose.HTML for Java. +### [Exemplo de top-level await – usando await delay em JavaScript](./top-level-await-example-using-await-delay-in-javascript/) + --- **Última atualização:** 2025-11-29 diff --git a/html/portuguese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/portuguese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..31efb6b57 --- /dev/null +++ b/html/portuguese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,172 @@ +--- +category: general +date: 2026-03-26 +description: Exemplo de top‑level await mostrando await delay JavaScript, classe de + incremento de contador e campos de classe públicos JavaScript em uma demonstração + ao vivo. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: pt +og_description: Exemplo de top-level await que demonstra await delay JavaScript, classe + de incremento de contador e campos de classe públicos JavaScript em um tutorial + conciso. +og_title: exemplo de await de nível superior – Usando await delay em JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Exemplo de await de nível superior – Usando await delay em JavaScript +url: /pt/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# exemplo de top level await – Usando await delay em JavaScript + +Já se perguntou como pausar a execução de um módulo sem envolver tudo em um IIFE async? É exatamente isso que um **top level await example** permite fazer. Neste tutorial vamos percorrer uma pequena página web que usa `await delay javascript` para adiar trabalho, e então cria uma `increment counter class` que aproveita **public class fields javascript**. Ao final você terá um trecho completo, pronto‑para‑copiar‑e‑colar, que roda em qualquer navegador moderno. + +Vamos cobrir tudo, desde definir uma classe com um campo público até conectar um simples helper de atraso baseado em promises. Sem bibliotecas externas, sem etapa de build — apenas HTML puro, um ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Saída esperada no console + +``` +Counter class initialized +Final count: 1 +``` + +Se você abrir a página nas DevTools, deverá ver a mensagem do bloco estático aparecer **antes** que o atraso termine, confirmando que a classe foi avaliada primeiro. + +## Etapa 5 – Por que usar campos de classe públicos em vez de um construtor? + +Você pode se perguntar por que não escrevemos: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Ambas as abordagens funcionam, mas **public class fields javascript** fornecem uma sintaxe mais limpa e declarativa. O campo é definido uma única vez, não dentro de cada chamada ao construtor, o que pode ser mais fácil de ler quando a classe cresce. Além disso, blocos estáticos não podem ser colocados dentro de um construtor, então separar a lógica de inicialização torna‑se mais natural. + +## Etapa 6 – Adaptando o exemplo para aplicativos do mundo real + +Em produção você frequentemente precisará de mais que um único contador. Aqui vão algumas ideias rápidas: + +- **Múltiplos contadores:** Armazene‑os em um `Map` indexado por identificador. +- **Estado persistente:** Substitua `console.log` por gravações em `localStorage`. +- **Inicialização async:** Use o bloco estático para buscar configuração de um servidor antes que quaisquer instâncias sejam criadas. + +Todos esses padrões ainda se beneficiam do top‑level await, porque você pode buscar dados uma única vez no carregamento do módulo e garantir que estejam prontos para cada consumidor. + +## Perguntas Frequentes + +**P: O top‑level await bloqueia outros módulos?** +R: Não. Cada módulo roda de forma independente. Apenas o módulo que contém o await é pausado; os demais continuam carregando em paralelo. + +**P: E se a promise de atraso for rejeitada?** +R: Uma rejeição não tratada abortará a avaliação do módulo e aparecerá como erro no console. Envolva o await em um `try…catch` se precisar de fallback elegante. + +**P: A palavra‑chave `static` é obrigatória?** +R: Não para o contador em si, mas o bloco estático é uma maneira prática de demonstrar que o código roda *uma única vez* no carregamento — ótimo para logs ou detecção de recursos. + +## Conclusão + +Você acabou de construir um **top level await example** que demonstra `await delay javascript`, uma **increment counter class**, e o poder de **public class fields javascript**. O trecho completo e executável está acima, e a saída no console prova que o bloco estático dispara antes do código atrasado. + +A partir daqui você pode experimentar fluxos async mais complexos, trocar o atraso por uma chamada real a uma API, ou expandir a classe com métodos adicionais. Lembre‑se, o JavaScript moderno permite tratar módulos como entidades async de primeira classe — sem wrappers extras. + +Feliz codificação, e sinta‑se à vontade para compartilhar suas variações nos comentários. Se este guia foi útil, compartilhe com um colega que ainda está lutando com padrões async! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/conversion-html-to-other-formats/_index.md b/html/portuguese/java/conversion-html-to-other-formats/_index.md index 7a450e146..a3b63bcad 100644 --- a/html/portuguese/java/conversion-html-to-other-formats/_index.md +++ b/html/portuguese/java/conversion-html-to-other-formats/_index.md @@ -92,12 +92,17 @@ Converta HTML para MHTML facilmente usando Aspose.HTML for Java. Siga nosso guia Aprenda como converter HTML para XPS usando Aspose.HTML for Java. Crie documentos multiplataforma com facilidade. ### [Convertendo Markdown para HTML](./convert-markdown-to-html/) Converta Markdown para HTML em Java de forma fluida com Aspose.HTML for Java. Siga nosso guia passo a passo para simplificar suas necessidades de conversão de documentos. +### [Converter HTML para Markdown em Java – Preservar Formatação Original](./convert-html-to-markdown-in-java-preserve-original-formattin/) ### [Convertendo SVG para Imagem](./convert-svg-to-image/) Aprenda como converter SVG para imagens em Java com Aspose.HTML. Guia abrangente para saída de alta qualidade. ### [Convertendo SVG para PDF](./convert-svg-to-pdf/) Converta SVG para PDF em Java com Aspose.HTML. Uma solução fluida para conversão de documentos de alta qualidade. ### [Convertendo SVG para XPS](./convert-svg-to-xps/) Aprenda como converter SVG para XPS com Aspose.HTML for Java. Guia simples, passo a passo, para conversões sem complicações. +### [Criar PDF de Tamanho Personalizado – Converter HTML para PDF com Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Aprenda a gerar PDFs com tamanhos de página personalizados ao converter HTML usando Aspose.HTML for Java. +### [Criar PDF a partir de HTML em Java – Guia de Conversão em Lote Paralela](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Aprenda a converter múltiplos arquivos HTML em PDFs simultaneamente usando Aspose.HTML for Java, otimizando desempenho em lote. ## Perguntas Frequentes diff --git a/html/portuguese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/portuguese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..0e13153ea --- /dev/null +++ b/html/portuguese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Converta HTML para markdown e gere um arquivo markdown preservando a + formatação original usando a conversão Aspose HTML em Java. Aprenda passo a passo. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: pt +og_description: Converta HTML para markdown rapidamente, gere um arquivo markdown + e mantenha a formatação original usando a conversão Aspose HTML para Java. +og_title: Converter HTML para Markdown em Java – Preservar a Formatação +tags: +- Aspose +- Java +- Markdown +title: Converter HTML para Markdown em Java – Preservar a Formatação Original +url: /pt/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converter HTML para Markdown em Java – Preservar Formatação Original + +Já precisou **converter HTML para markdown** mas temia perder o espaçamento, tabelas ou tags inline? Você não está sozinho. Muitos desenvolvedores enfrentam esse problema ao tentar mover conteúdo de uma página web para um formato limpo, amigável ao controle de versão. A boa notícia? Com algumas linhas de Java e Aspose HTML, você pode **gerar um arquivo markdown** que fica exatamente como a origem, incluindo os espaços em branco. + +Neste guia vamos percorrer todo o processo: carregar um arquivo HTML complexo, configurar a conversão para que **preserve a formatação original**, e finalmente gravar a saída em `preserved.md`. Ao final você terá um trecho pronto‑para‑executar, entenderá *por que* cada configuração importa, e saberá como adaptar o código para casos extremos como CSS personalizado ou scripts incorporados. + +## O que você precisará + +- Java 17 (ou qualquer JDK recente) – a API funciona com Java 8+ mas versões mais novas oferecem melhor desempenho. +- Biblioteca Aspose HTML for Java (versão 23.11 ou posterior). Você pode obtê-la no Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Um arquivo HTML de exemplo (`complex.html`) que contém cabeçalhos, tabelas, blocos de código e talvez algum estilo inline ``. +- Um pouco de paciência e disposição para experimentar. + +É isso. Sem ferramentas externas, sem truques de linha de comando — apenas código Java puro. + +## Etapa 1: Carregar o Documento HTML de Origem + +A primeira coisa que fazemos é criar uma instância `HTMLDocument` que aponta para o seu arquivo de origem. Aspose HTML trata o arquivo como um DOM, o que significa que você pode inspecioná‑lo ou modificá‑lo antes da conversão, se precisar. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Por que isso importa:** Carregar o documento dessa forma garante que todos os recursos vinculados (folhas de estilo, imagens) sejam resolvidos em relação à localização do arquivo. Se você pular esta etapa e fornecer uma string bruta, pode perder CSS externo que influencia o espaçamento — exatamente o tipo de coisa que você quer **preservar a formatação original**. + +## Etapa 2: Configurar as Opções de Conversão para Markdown + +Aspose HTML fornece a classe `MarkdownConversionOptions`. A propriedade chave para nós é `setPreserveOriginalFormatting(true)`. Quando ativada, o conversor mantém quebras de linha, indentação e até trechos de HTML bruto que o markdown não pode representar nativamente. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Dica de especialista:** Se mais tarde você descobrir que alguns estilos inline estão sendo removidos, pode também chamar `markdownOptions.setIncludeHtml(true)` para forçar blocos de HTML bruto na saída markdown. + +## Etapa 3: Executar a Conversão + +Agora entregamos o `HTMLDocument`, o caminho do arquivo de destino e nossas opções ao método estático `Converter.convertHTML`. O método realiza todo o trabalho pesado nos bastidores. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Quando a chamada terminar, você encontrará `preserved.md` ao lado do seu arquivo de origem. Abra‑o em qualquer editor — note como as quebras de linha originais e o alinhamento da tabela permanecem intactos. + +## Etapa 4: Verificar o Resultado (Opcional, mas Recomendado) + +Uma verificação rápida de sanidade salva você de bugs sutis mais tarde. Você pode ler o arquivo de volta no Java e imprimir as primeiras linhas, ou simplesmente abri‑lo no VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Você deve ver algo como: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +A tag `` ainda está presente porque a sintaxe nativa de tabelas do markdown não conseguiu capturar o estilo exato — graças ao `preserve original formatting`. + +## Etapa 5: Envolver Tudo – Exemplo Completo Executável + +Abaixo está a classe completa, pronta‑para‑executar. Substitua `YOUR_DIRECTORY` pelo caminho real na sua máquina. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Execute o programa com `mvn exec:java` ou sua IDE favorita, e você terá um **arquivo markdown gerado** que espelha o layout HTML original. + +## Perguntas Frequentes & Casos Limite + +### Isso funciona com arquivos CSS externos? + +Sim. Desde que os arquivos CSS sejam acessíveis via caminhos relativos, Aspose HTML os carrega automaticamente. Se você estiver obtendo HTML de uma URL remota, pode ser necessário definir um objeto `ResourceLoadingOptions` personalizado para permitir acesso à rede. + +### E se eu não quiser nenhum HTML bruto no markdown? + +Basta mudar a opção: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +O conversor então tentará traduzir tudo para sintaxe markdown puro, potencialmente perdendo parte da fidelidade do layout. + +### Posso converter uma string em vez de um arquivo? + +Absolutamente. Use o construtor que aceita um `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Então passe `doc` para `Converter.convertHTML` como antes. + +### Como isso difere de outras bibliotecas como Flexmark ou pandoc? + +A maioria das ferramentas de código aberto trata HTML como texto simples e remove espaços em branco agressivamente. O sinalizador `preserveOriginalFormatting` do Aspose HTML é um **recurso proprietário** que respeita os espaços em branco, quebras de linha da fonte original e até mantém tags não suportadas como blocos de HTML bruto. É por isso que este tutorial enfatiza **aspose html conversion** para desenvolvedores Java que precisam de fidelidade exata. + +## Dicas para Uso em Produção + +- **Processamento em lote:** Envolva a lógica de conversão em um loop para lidar com vários arquivos HTML de uma só vez. +- **Tratamento de erros:** Capture `IOException` e `com.aspose.html.exceptions.AssertionFailedException` para expor recursos ausentes. +- **Desempenho:** Reutilize uma única instância `HTMLDocument` ao converter fragmentos de um site grande; a biblioteca faz cache do CSS analisado. + +## Conclusão + +Acabamos de mostrar como **converter HTML para markdown** em Java garantindo que a saída **preserve a formatação original**. O trecho curto e autocontido demonstra todo o fluxo de trabalho — desde o carregamento do documento HTML até a configuração de `MarkdownConversionOptions`, execução da conversão e verificação do resultado. Com a robusta API do Aspose HTML, você agora pode **gerar um arquivo markdown** programaticamente, seja construindo um gerador de site estático, um pipeline de documentação ou uma ferramenta de migração de conteúdo. + +Em seguida, você pode explorar: + +- Usar **html to markdown java** para migrações em massa em um site. +- Ajustar as opções de conversão para gerar tabelas markdown no estilo GitHub. +- Combinar esta abordagem com uma etapa CI/CD que atualiza automaticamente sua documentação sempre que o HTML de origem mudar. + +Sinta‑se à vontade para experimentar e deixe um comentário se encontrar algum problema. Feliz codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/portuguese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..4ec128276 --- /dev/null +++ b/html/portuguese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,197 @@ +--- +category: general +date: 2026-03-26 +description: Crie PDF de tamanho personalizado a partir de HTML usando Aspose.HTML + para Java. Aprenda como converter HTML em PDF e definir o tamanho da página do PDF + em apenas alguns passos. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: pt +og_description: Crie PDF de tamanho personalizado a partir de HTML com Aspose. Este + guia mostra como converter HTML para PDF, alterar o tamanho da página do PDF e definir + o tamanho da página do PDF com facilidade. +og_title: Criar PDF em Tamanho Personalizado – Guia Rápido para Converter HTML em + PDF +tags: +- aspose +- java +- pdf +- html +title: Criar PDF em Tamanho Personalizado – Converter HTML para PDF com Aspose +url: /pt/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar PDF com Tamanho Personalizado – Converter HTML para PDF com Aspose + +Já precisou **criar PDF com tamanho personalizado** a partir de um arquivo HTML? Neste tutorial vamos mostrar como **converter HTML para PDF** e definir o tamanho da página PDF usando Aspose.HTML para Java. + +Se você está criando notas fiscais, relatórios ou e‑books, obter as dimensões exatas da página é essencial — caso contrário, seu layout fica desalinhado ou cortado. + +Vamos percorrer cada passo, desde o carregamento do HTML de origem até o ajuste das margens, e terminar com um PDF pronto para uso. Sem referências vagas, apenas um exemplo completo e executável que você pode copiar‑colar hoje. + +## O Que Você Precisa + +- **Java 17** (ou qualquer JDK recente). +- **Aspose.HTML para Java** JARs – você pode obter a versão mais recente no repositório Maven ou no site da Aspose. +- Um arquivo simples `input.html` colocado em uma pasta que você controla. +- Uma IDE ou editor de texto de sua preferência; eu costumo programar no IntelliJ IDEA, mas o Eclipse funciona muito bem. + +Ter esses pré‑requisitos garante que você não encontrará erros “class not found” no meio do caminho. + +Agora, vamos mergulhar. + +![Exemplo de criação de PDF com tamanho personalizado](/images/create-pdf-custom-size.png "Captura de tela mostrando um PDF gerado com tamanho de página e margens personalizados – criar pdf tamanho personalizado") + +## Criar PDF com Tamanho Personalizado – Etapas Principais + +Abaixo está o programa Java completo que você terá ao final. Sinta‑se à vontade para copiá‑lo para um arquivo chamado `ConvertHtmlToPdfCustomPage.java` e executá‑lo depois de adicionar as dependências da Aspose ao seu projeto. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Etapa 1 – Converter HTML para PDF: Carregando o Documento + +A primeira coisa que fazemos é **carregar o HTML** que queremos transformar em PDF. +`HTMLDocument` lê o arquivo, resolve links relativos e constrói um DOM que a Aspose pode renderizar. + +> **Por que isso importa:** Se o HTML referencia CSS ou imagens, a Aspose as buscará em relação ao caminho do arquivo. Usar um caminho absoluto (`YOUR_DIRECTORY/input.html`) evita surpresas de “arquivo não encontrado”. + +### Etapa 2 – Alterar o Tamanho da Página PDF: Configurando as Opções + +Aqui criamos um objeto `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` indica à Aspose que use as dimensões padrão A4 (210 × 297 mm). +- `setPageOrientation(...)` gira a página caso você precise de paisagem. +- `setMargins(new Margin(20, 20, 20, 20))` define margem de 20 pontos em todos os lados. + +Você pode substituir `PageSize.A4` por `PageSize.LETTER` ou até por um **tamanho personalizado** passando um objeto `SizeF`, por exemplo: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Dica de especialista:** Um ponto equivale a 1/72 polegada. Se você pensa em milímetros, multiplique por 2,83465 para obter pontos. + +### Etapa 3 – Gerar PDF a partir do HTML: Executando a Conversão + +`Converter.convertHTML` faz o trabalho pesado. Ele recebe o `HTMLDocument` carregado, o caminho de saída e as opções que configuramos. + +Se quiser **definir o tamanho da página PDF** dinamicamente com base no conteúdo, calcule as dimensões necessárias antes desta etapa e ajuste `pdfOptions` conforme necessário. + +### Etapa 4 – Verificar o Resultado + +A linha `System.out.println` é opcional, mas fornece um feedback rápido quando você executa o programa a partir do console. Após a execução, abra `custom_page.pdf` – você deverá ver um PDF A4 em modo retrato com margens uniformes de 20 pontos, exatamente como especificado. + +## Converter HTML para PDF – Variações Comuns + +### Usando um Stream ao Invés de um Caminho de Arquivo + +Às vezes você não tem um arquivo físico; talvez o HTML venha de um banco de dados ou de uma API. Nesse caso, envolva a string em um `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +O segundo argumento é a URL base para resolver recursos relativos. + +### Alterando a Orientação da Página + +Se o seu relatório for largo, troque para paisagem: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Ajustando Finamente as Margens + +As margens aceitam valores de ponto flutuante, então você pode definir 0,5 pt para uma borda bem fina: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Lidando com Arquivos HTML Grandes + +Para documentos massivos, considere habilitar **streaming eficiente em memória**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Isso indica à Aspose que escreva dados intermediários em arquivos temporários ao invés de manter tudo na RAM. + +## Definir Tamanho da Página PDF – Casos Limite & Armadilhas + +- **Fontes Ausentes:** Se seu HTML usa uma fonte personalizada que não está instalada no servidor, o PDF usará uma fonte padrão. Incorpore a fonte com `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Escala de Imagens:** Imagens de alta resolução podem inflar o PDF. Use `pdfOptions.setImageResolution(150);` para reduzir a resolução mantendo a qualidade. +- **Compatibilidade CSS:** Nem todas as propriedades CSS são totalmente suportadas. Prefira técnicas de layout padrão (flexbox funciona, mas grid pode ter peculiaridades). +- **Permissões de Caminho:** Garanta que o processo tenha permissão de escrita em `YOUR_DIRECTORY`. Caso contrário, será lançada uma `IOException`. + +## Saída Esperada + +Executar o programa gera um PDF que se parece com isto (ilustração conceitual): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Tamanho da página: **A4** (210 × 297 mm). +- Orientação: **Retrato**. +- Margens: **20 pt** em cada lado. + +Abra o arquivo com qualquer visualizador de PDF (Adobe Reader, Chrome, etc.) para confirmar. + +## Conclusão + +Agora você sabe como **criar PDF com tamanho personalizado** a partir de uma fonte HTML usando Aspose.HTML para Java. O tutorial cobriu todo o fluxo: **converter HTML para PDF**, **alterar o tamanho da página PDF**, **definir o tamanho da página PDF** e **gerar PDF a partir do HTML** com margens personalizadas. + +Sinta‑se livre para experimentar — troque `PageSize.LETTER` por tamanho legal, ajuste as margens ou incorpore suas próprias fontes. Em seguida, você pode explorar **adicionar marcas d'água**, **criptografar o PDF** ou **processar em lote vários arquivos HTML**. Todos esses tópicos se baseiam nos mesmos conceitos centrais que acabamos de abordar. + +Tem alguma dúvida sobre um caso específico? Deixe um comentário abaixo e eu ajudarei a resolver. Boa codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/portuguese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..cdd32b60e --- /dev/null +++ b/html/portuguese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Crie PDF a partir de HTML rapidamente com um pool de threads fixo. Aprenda + a converter HTML em PDF em lote e execute tarefas paralelas em Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: pt +og_description: Crie PDF a partir de HTML rapidamente com um pool de threads fixo. + Aprenda como converter HTML em PDF em lote e executar tarefas paralelas em Java. +og_title: Criar PDF a partir de HTML em Java – Guia de Conversão Paralela em Lote +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Criar PDF a partir de HTML em Java – Guia de Conversão em Lote Paralela +url: /pt/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar PDF a partir de HTML em Java – Guia de Conversão em Lote Paralela + +Já precisou **criar PDF a partir de HTML** mas ficou preso vendo uma conversão monothread arrastando eternamente? Você não está sozinho. Em muitos projetos reais recebemos dezenas de relatórios HTML que precisam se tornar PDFs até o fim do dia, e processá‑los um a um simplesmente não é prático. + +É por isso que este tutorial mostra **como converter HTML para PDF** usando um **pool de threads fixo**, permitindo **converter HTML em lote para PDF** e **executar tarefas em paralelo** sem esforço. Ao final você terá um programa completo, pronto‑para‑executar, que transforma uma pasta de arquivos HTML em PDFs em uma fração do tempo. + +## O que você vai aprender + +Nas próximas seções cobriremos tudo o que você precisa saber: + +* A dependência exata do Maven/Gradle para Aspose.HTML (a biblioteca que faz o trabalho pesado). +* Por que um **pool de threads fixo** é o ponto ideal para trabalhos de conversão intensivos em CPU. +* Como listar seus arquivos de origem para que o processo escale para centenas de documentos. +* O código exato que você cola no seu IDE — sem imports ausentes, sem comentários “TODO”. +* Dicas para lidar com erros, ajustar o tamanho do pool e validar a saída. + +Nenhum conhecimento prévio de Aspose.HTML é necessário, apenas uma configuração básica de Java e disposição para experimentar. Vamos começar. + +--- + +![Diagrama mostrando um pool de threads fixo convertendo múltiplos arquivos HTML para PDF em paralelo – criar pdf a partir de html](/images/create-pdf-from-html-parallel.png) + +*Texto alternativo da imagem: criar pdf a partir de html – diagrama de conversão paralela* + +## Etapa 1: Prepare seu projeto e adicione Aspose.HTML + +Primeiro de tudo — seu projeto precisa da biblioteca Aspose.HTML. Se você usa Maven, adicione isto ao seu `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Para Gradle, é simplesmente: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Por que Aspose.HTML? É uma biblioteca comercial, mas oferece uma API **convert html to pdf** que lida com CSS, JavaScript e layouts complexos prontamente. Se preferir uma alternativa open‑source, pode trocar a chamada `Converter.convertHTML` depois, mas a lógica de threading permanece a mesma. + +> **Dica profissional:** Mantenha o número da versão sincronizado com as notas de lançamento oficiais; versões mais recentes costumam melhorar a velocidade de renderização, o que importa quando você executa muitas tarefas em paralelo. + +## Etapa 2: Crie um pool de threads fixo para conversão paralela + +Quando você tem um lote de arquivos, não quer criar um número ilimitado de threads — seu SO começará a sofrer thrashing. Um **pool de threads fixo** fornece uma quantidade previsível de concorrência enquanto mantém o uso de memória sob controle. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Por que quatro? Em uma máquina típica de 8 núcleos, metade dos núcleos pode ficar livre para I/O e para o SO. Você pode experimentar: `Runtime.getRuntime().availableProcessors()` devolve a contagem de núcleos, e uma regra prática é `núcleos / 2`. Lembre‑se, cada conversão é intensiva em CPU, então mais threads que núcleos geralmente prejudicam o desempenho. + +## Etapa 3: Reúna os arquivos HTML que você deseja converter + +A próxima peça do quebra‑cabeça é a lista **batch html to pdf**. Você pode codificar um array (como no exemplo) ou escanear um diretório. Aqui está uma versão flexível que lê todos os arquivos `.html` de uma pasta: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Essa abordagem permite que você solte novos arquivos na pasta e o programa os pegue automaticamente — perfeito para um job de lote noturno. + +## Etapa 4: Envie uma tarefa de conversão para cada arquivo (Execute tarefas paralelas) + +Agora a parte divertida: cada arquivo se torna um **Runnable** (ou `Callable`) que o pool executa. O código abaixo espelha o exemplo original, mas adiciona tratamento de erro e uma pequena mensagem de log. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Por que envolver a conversão em try‑catch?** Quando você **run parallel tasks**, um único arquivo HTML malformado poderia derrubar todo o executor. Ao capturar exceções localmente garantimos que o restante do lote continue avançando. + +## Etapa 5: Encerre o Executor e aguarde a conclusão + +Depois que todos os trabalhos são enviados, você deve dizer ao pool para parar de aceitar novo trabalho e então aguardar até que tudo termine. Isso garante que a JVM não saia prematuramente. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Se você tem uma pasta enorme (milhares de arquivos) pode aumentar o timeout ou implementar um monitor de progresso. O importante é **encerrar graciosamente** — este é o selo de código pronto para produção. + +## Exemplo completo funcionando + +Juntando tudo, aqui está uma classe autônoma que você pode copiar‑colar para `src/main/java` e executar: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Saída esperada** (exemplo): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Se você abrir os arquivos `.pdf` gerados verá o layout HTML original preservado — fontes, tabelas e até conteúdo básico acionado por JavaScript renderizados corretamente. + +## Perguntas frequentes & Casos de borda + +| Pergunta | Resposta | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/conversion-html-to-various-image-formats/_index.md b/html/portuguese/java/conversion-html-to-various-image-formats/_index.md index 5b1531c71..30909991e 100644 --- a/html/portuguese/java/conversion-html-to-various-image-formats/_index.md +++ b/html/portuguese/java/conversion-html-to-various-image-formats/_index.md @@ -92,7 +92,8 @@ Aprenda a converter HTML para JPEG com Aspose.HTML for Java. Guia passo a passo Aprenda a converter HTML para imagens PNG em Java com Aspose.HTML. Um guia abrangente com instruções passo a passo. ### [Convertendo HTML para TIFF](./convert-html-to-tiff/) Aprenda a converter HTML para TIFF usando Aspose.HTML for Java de forma fácil. Guia passo a passo para manipulação eficiente de documentos. -### [Convertendo HTML para WebP – Guia Completo em Java com Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Criar TIFF multipágina a partir de SVG em Java – Guia passo a passo](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +### [Convertendo HTML para WebP – Guia Completo em Java com Aspose.HTML](./convert-html-to-webp-complete-java-guide/) Aprenda a converter HTML para WebP em Java usando Aspose.HTML. Guia completo passo a passo para gerar imagens WebP de alta qualidade. ## Perguntas Frequentes diff --git a/html/portuguese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/portuguese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..9dd1045b0 --- /dev/null +++ b/html/portuguese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-03-26 +description: Converta HTML para WebP rapidamente com Aspose.HTML. Aprenda como salvar + HTML como WebP, renderizar HTML como WebP e gerar WebP a partir de HTML em apenas + alguns passos. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: pt +og_description: Converta HTML para WebP rapidamente com Aspose.HTML. Este tutorial + mostra como renderizar HTML como WebP e gerar WebP a partir de HTML em Java. +og_title: Converter HTML para WebP – Guia Completo de Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Converter HTML para WebP – Guia Java Completo +url: /pt/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converter HTML para WebP – Guia Completo em Java + +Precisa **converter HTML para WebP** mas não sabe qual biblioteca pode fazer isso sem dor de cabeça? Você não está sozinho. Muitos desenvolvedores encontram esse obstáculo ao tentar servir imagens leves geradas a partir de páginas dinâmicas. A boa notícia? Com Aspose.HTML para Java você pode *salvar HTML como WebP* em uma única chamada de método, e todo o processo é tão suave quanto manteiga. + +Neste tutorial vamos percorrer tudo o que você precisa saber: desde a configuração da dependência Aspose.HTML, passando pelos ajustes das opções de compressão, até a renderização do documento HTML como um arquivo WebP que pode ser servido na web. Ao final, você será capaz de **renderizar HTML como WebP**, **gerar WebP a partir de HTML**, e entender o “porquê” de cada opção de configuração. Sem scripts externos, sem malabarismos de linha de comando — apenas código Java limpo. + +## Pré‑requisitos + +Antes de mergulharmos, certifique‑se de que você tem: + +- Java 8 ou superior instalado (a biblioteca suporta JDK 8+). +- Maven ou Gradle para gerenciamento de dependências (mostraremos o trecho Maven). +- Um arquivo HTML simples (`input.html`) que você deseja transformar em uma imagem WebP. +- Uma IDE ou editor de texto de sua preferência — IntelliJ IDEA funciona muito bem, mas qualquer um serve. + +Tudo pronto? Ótimo, vamos começar. + +## Etapa 1: Adicionar Aspose.HTML ao Seu Projeto + +Primeiro, você precisa da biblioteca Aspose.HTML no classpath. Se estiver usando Maven, adicione isto ao seu `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Para Gradle, fica assim: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Por que essa etapa é crucial? Sem o JAR, nenhuma das classes `HTMLDocument`, `Converter` ou `WebpConversionOptions` existe, e o compilador lançará um `ClassNotFoundException`. Adicionar a dependência também traz os binários nativos necessários para a codificação WebP, então você não precisa procurar DLLs externas ou arquivos `.so`. + +> **Dica profissional:** Mantenha suas dependências atualizadas. Novas versões da Aspose costumam melhorar os algoritmos de compressão WebP e adicionar suporte a recursos mais recentes do HTML5. + +## Etapa 2: Carregar o Documento HTML de Origem + +Agora que a biblioteca está pronta, podemos carregar o HTML que será convertido. A classe `HTMLDocument` analisa o arquivo e constrói um DOM, que o conversor renderiza posteriormente. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Observe o comentário “Load the source HTML document” – ele serve como lembrete de que você também pode injetar CSS ou JavaScript antes da conversão se sua página depender de estilos dinâmicos. Se pular esta etapa, o conversor não terá nada para renderizar, resultando em uma imagem em branco. + +## Etapa 3: Configurar as Opções de Conversão WebP + +Aspose.HTML oferece controle granular sobre a saída. Na maioria dos casos, um WebP **com perdas** (lossy) com qualidade em torno de 85 oferece um bom equilíbrio entre fidelidade visual e tamanho do arquivo. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Por que escolher o modo com perdas? O modo lossy do WebP usa codificação preditiva, que pode reduzir arquivos em 30‑50 % em comparação ao PNG, preservando a maior parte dos detalhes visuais. Se precisar de resultados pixel‑perfeitos (por exemplo, para logotipos), altere `CompressionMode` para `Lossless` e aumente `quality` para 100. + +## Etapa 4: Converter e Salvar a Imagem WebP + +Com o documento e as opções prontos, a conversão em si é uma única linha. O método estático `Converter.convertHTML` faz todo o trabalho pesado: renderiza o DOM em um bitmap, codifica‑o como WebP e grava o arquivo no disco. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +É isso! Quando o programa terminar, você encontrará `output.webp` ao lado do seu HTML de origem. Agora você pode servi‑lo diretamente de um servidor web, incorporá‑lo em um elemento ``, ou usá‑lo em qualquer contexto que suporte WebP. + +## Etapa 5: Verificar o Resultado (Opcional, mas Recomendado) + +É sempre uma boa prática confirmar que a conversão foi bem‑sucedida e que a imagem está como esperado. Você pode abrir o arquivo WebP no Chrome, Firefox ou qualquer visualizador que suporte o formato. Para uma verificação rápida programática, você pode ler o tamanho do arquivo e as dimensões: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Se o arquivo estiver inesperadamente grande ou as dimensões estiverem incorretas, volte à **Etapa 3** e ajuste `quality` ou as configurações de viewport do HTML de origem. Lembre‑se de que o WebP respeita as propriedades CSS `width`/`height` do elemento raiz, então a falta de uma tag `` pode gerar resultados surpreendentes. + +## Exemplo Completo Funcional + +Juntando tudo, aqui está a classe Java completa, pronta para ser executada: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Salve este arquivo como `HtmlToWebp.java`, substitua `YOUR_DIRECTORY` pelo caminho real da pasta, compile com `javac` e execute com `java HtmlToWebp`. Você deverá ver a saída no console confirmando o tamanho e as dimensões do arquivo, seguida da mensagem final de sucesso. + +![exemplo de conversão de html para webp](/images/convert-html-to-webp.png "Captura de tela de uma imagem WebP gerada a partir de HTML – converter html para webp") + +## Perguntas Frequentes & Casos de Borda + +### E se meu HTML referenciar recursos externos (CSS, imagens)? + +Aspose.HTML resolve URLs relativas automaticamente com base na localização de `input.html`. Basta garantir que os recursos estejam acessíveis a partir do sistema de arquivos ou de um servidor web. Se precisar injetar uma URL base personalizada, use o construtor sobrecarregado de `HTMLDocument` que aceita um `URI` base. + +### Posso gerar múltiplas imagens WebP a partir do mesmo HTML (por exemplo, diferentes tamanhos de viewport)? + +Com certeza. Envolva a lógica de conversão em um loop, ajuste `webpOptions.setWidth()` e `setHeight()` antes de cada chamada, e dê a cada saída um nome de arquivo único. Isso é útil para design responsivo, onde você serve diferentes tamanhos de imagem para dispositivos móveis e desktop. + +### Como mudar para compressão sem perdas? + +Substitua a linha: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +por: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +O modo lossless garante fidelidade pixel‑perfeita, mas gera arquivos maiores — use‑o apenas quando necessário. + +### Isso funciona em Linux/macOS? + +Sim. O JAR da Aspose.HTML inclui binários nativos para Windows, Linux e macOS, então o mesmo código Java roda em qualquer plataforma. Apenas certifique‑se de ter a JRE apropriada instalada. + +## Conclusão + +Você acabou de aprender **como converter HTML para WebP** usando Aspose.HTML para Java, cobrindo tudo, desde a configuração da dependência até o ajuste fino da compressão e a verificação do resultado. Com esse conhecimento você pode **salvar HTML como WebP**, **renderizar HTML como WebP**, e **gerar WebP a partir de HTML** em tempo real — perfeito para pipelines de imagens dinâmicas, newsletters por e‑mail, ou qualquer cenário onde visuais leves são essenciais. + +Qual o próximo passo? Experimente diferentes valores de `quality`, explore o modo `Lossless`, ou integre este conversor em um endpoint REST Spring Boot para que seu serviço web retorne imagens WebP sob demanda. Você também pode processar em lote uma pasta de arquivos HTML, ou combinar isso com o Chrome headless para conversões de SVG‑para‑WebP. + +Tem mais dúvidas sobre **como converter HTML** em outras linguagens, ou precisa de ajuda para solucionar um caso específico? Deixe um comentário abaixo, e feliz codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/portuguese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..425e0eac4 --- /dev/null +++ b/html/portuguese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: Crie TIFF multipágina a partir de SVG em Java com Aspose.HTML. Aprenda + como converter SVG para TIFF, carregar documento SVG em Java e criar arquivos TIFF + multipágina. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: pt +og_description: Crie um TIFF multipágina a partir de SVG em Java. Este tutorial mostra + como carregar um documento SVG, configurar as opções de TIFF e gerar um TIFF multipágina + sem perdas. +og_title: Criar TIFF multipágina a partir de SVG em Java – Guia Completo +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Criar TIFF multipágina a partir de SVG em Java – Guia passo a passo +url: /pt/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Criar TIFF multipágina a partir de SVG em Java – Guia passo a passo + +Já precisou **criar TIFF multipágina** a partir de um SVG, mas não sabia por onde começar? Você não está sozinho — muitos desenvolvedores encontram esse mesmo obstáculo quando precisam de um documento imprimível, sem perdas, que abrange várias páginas. Neste guia, percorreremos uma solução completa, pronta‑para‑executar, que mostra **como converter SVG para TIFF**, carregar o documento SVG em Java e configurar a saída para que você possa **criar arquivos TIFF multipágina** com compressão LZW. + +Cobriremos tudo, desde a configuração da biblioteca Aspose.HTML até o tratamento de casos extremos, como ativos SVG grandes. Ao final do tutorial, você terá uma única classe Java que pode inserir em qualquer projeto e começar a gerar TIFFs multipágina instantaneamente. + +## O que você precisará + +- **Java Development Kit (JDK) 8+** – o código usa APIs Java padrão. +- **Aspose.HTML for Java** (versão 23.5 ou posterior) – esta é a única dependência de terceiros. +- Um **arquivo SVG de exemplo** (qualquer gráfico vetorial serve; chamaremos de `input.svg`). +- Seu IDE favorito ou um editor de texto simples e um terminal. + +Nenhuma ferramenta de build adicional é necessária; o exemplo compila com `javac` e executa com `java`. Se preferir Maven ou Gradle, basta adicionar o JAR do Aspose.HTML ao classpath do seu projeto. + +![Create multipage tiff example](create-multipage-tiff.png){alt="exemplo de criação de tiff multipágina"} + +## Etapa 1 – Carregar o Documento SVG (load svg document java) + +A primeira coisa que devemos fazer é ler o SVG em um objeto `HTMLDocument`. O Aspose.HTML trata arquivos SVG como documentos HTML, o que nos fornece uma API unificada para conversão. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Por que isso importa:** Carregar o SVG como um `HTMLDocument` nos dá acesso ao motor de renderização completo, garantindo que todos os estilos, fontes e imagens incorporadas sejam interpretados corretamente antes da conversão. Pular esta etapa e tentar alimentar bytes brutos diretamente no conversor costuma resultar em elementos ausentes ou cores incorretas. + +## Etapa 2 – Configurar as Opções de TIFF (how to create multipage tiff) + +Em seguida, configuramos `TiffConversionOptions`. Este objeto controla tudo, desde o layout da página até a compressão. Para uma saída verdadeiramente multipágina, habilitamos `setMultipage(true)`, e escolhemos a compressão **LZW** porque é sem perdas e amplamente suportada. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Por que isso importa:** Se você omitir `setMultipage(true)`, a biblioteca gerará um TIFF de página única, descartando quaisquer páginas adicionais que possam ser inferidas a partir do SVG (por exemplo, quando o SVG contém múltiplos elementos raiz ``). LZW mantém o tamanho do arquivo razoável sem sacrificar a fidelidade da imagem — perfeito para pipelines de arquivamento ou impressão. + +## Etapa 3 – Executar a Conversão (how to convert svg to tiff) + +Agora o trabalho pesado acontece. O método estático `Converter.convertSVG` recebe o documento carregado, o caminho de destino e as opções que acabamos de definir. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Por que isso importa:** Usar a chamada estática `convertSVG` é a maneira mais direta de disparar a conversão. Nos bastidores, o Aspose.HTML rasteriza os dados vetoriais a 96 dpi por padrão; você pode ajustar o DPI via `tiffOptions.setResolution(...)` se for necessária maior qualidade. + +## Etapa 4 – Verificar o Resultado + +Após a conversão terminar, é uma boa ideia confirmar que o arquivo existe e contém o número esperado de páginas. Uma verificação rápida pode ser feita com qualquer visualizador de imagens que suporte TIFF multipágina (por exemplo, IrfanView, XnView ou até mesmo o `ImageIO` do Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Você deverá ver a mensagem no console confirmando o sucesso, e ao abrir `output.tiff` será revelada uma página por elemento raiz SVG (ou uma única página se o SVG possuir apenas uma tela). + +## Armadilhas Comuns & Dicas Profissionais + +| Problema | Por que acontece | Como corrigir | +|----------|------------------|---------------| +| **Fontes ausentes** | O SVG referencia fontes do sistema que não estão instaladas no servidor. | Incorpore fontes no SVG ou use `FontSettings` no Aspose.HTML para fornecer uma pasta de fontes personalizada. | +| **Tamanho de arquivo grande** | Rasterização em alta resolução pode inflar o tamanho do TIFF. | Reduza o DPI via `tiffOptions.setResolution(150)` ou altere para `Compression.NONE` apenas para depuração. | +| **Múltiplas páginas não geradas** | O SVG contém apenas um elemento ``. | Divida sua fonte em arquivos SVG separados ou envolva cada página lógica em uma tag `` antes da conversão. | +| **Recursos SVG não suportados** | Alguns filtros ou animações não são renderizados. | Simplifique o SVG ou pré‑procese-o com uma ferramenta como o Inkscape para achatar os filtros. | + +**Dica profissional:** Se precisar de uma ordem de páginas específica, renomeie seus arquivos SVG para `page1.svg`, `page2.svg`, etc., e itere sobre eles, acrescentando cada resultado de conversão ao mesmo TIFF usando `tiffOptions.setMultipage(true)` a cada vez. + +## Exemplo Completo Funcional + +Abaixo está a classe Java completa e autônoma que você pode copiar‑colar em um arquivo chamado `SvgToMultipageTiff.java`. Ela inclui declarações de importação, comentários e tratamento de erros para uso em produção. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Executar o código produz um TIFF onde cada raiz SVG se torna uma página separada — exatamente o que você precisa quando deseja **criar arquivos TIFF multipágina** para impressão ou arquivamento. + +## Conclusão + +Acabamos de mostrar como **criar TIFF multipágina** a partir de um SVG usando Java e Aspose.HTML. O tutorial abordou o carregamento do SVG (`load svg document java`), a configuração das opções de conversão, a execução da conversão (`how to convert svg to tiff`) e a verificação da saída. Com o código-fonte completo em mãos, você pode adaptar a solução para processar em lote dezenas de SVGs, ajustar as configurações de DPI ou integrar a lógica em um pipeline maior de geração de documentos. + +Pronto para o próximo desafio? Tente converter uma pasta de SVGs em um único TIFF multipágina, experimente diferentes esquemas de compressão ou explore a saída em PDF trocando `TiffConversionOptions` por `PdfConversionOptions`. Os mesmos princípios se aplicam, então você se sentirá à vontade para estender esse padrão a outros formatos. + +Tem perguntas ou encontrou um caso estranho de SVG? Deixe um comentário abaixo, e feliz codificação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/html5-canvas-rendering/_index.md b/html/portuguese/java/html5-canvas-rendering/_index.md index 851a11d0a..e8e9fa725 100644 --- a/html/portuguese/java/html5-canvas-rendering/_index.md +++ b/html/portuguese/java/html5-canvas-rendering/_index.md @@ -30,9 +30,11 @@ Primeiro, vamos falar sobre o elemento Canvas do HTML5. Pense nele como uma tela Crie e renderize HTML5 Canvas com Aspose.HTML para Java. Aprenda passo a passo como desenhar, estilizar e exportar para PDF usando esta poderosa biblioteca Java. ### [Dominando HTML5 Canvas com Aspose.HTML para Java](./html5-canvas/) Aprenda como criar e converter HTML5 Canvas para PDF usando Aspose.HTML para Java. Este guia é perfeito para desenvolvedores que buscam aprimorar seus projetos web. +### [Como emular iPhone – Guia completo com Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Aprenda a emular o iPhone em ambientes de teste usando Aspose.HTML, passo a passo, para garantir renderização precisa em dispositivos iOS. {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/portuguese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/portuguese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..181344eee --- /dev/null +++ b/html/portuguese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Aprenda como emular iPhone em Java usando Aspose.HTML. Inclui etapas + para definir um agente de usuário personalizado e definir a proporção de pixels + do dispositivo para renderização móvel precisa. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: pt +og_description: Como emular iPhone em Java? Este tutorial mostra como definir um agente + de usuário personalizado e a proporção de pixels do dispositivo usando Aspose.HTML, + entregando páginas móveis com perfeição de pixel. +og_title: Como emular iPhone – Guia passo a passo do Aspose.HTML +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Como Emular iPhone – Guia Completo com Aspose.HTML +url: /pt/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Como emular iPhone – Guia completo com Aspose.HTML + +Já se perguntou **como emular iPhone** ao testar uma página web localmente? Talvez você esteja depurando um layout responsivo e o navegador de desktop simplesmente não sirva. A boa notícia é que você não precisa de um dispositivo físico—`DocumentSandbox` da Aspose.HTML permite que você imite a tela, o user‑agent e o device‑pixel‑ratio (DPR) de um iPhone com algumas linhas de Java. + +Neste tutorial vamos percorrer passo a passo como definir um **user agent personalizado**, configurar o **device pixel ratio** e verificar se tudo funciona como esperado. Ao final, você terá um sandbox reutilizável que renderiza páginas exatamente como um iPhone 8, e entenderá por que cada configuração é importante. + +## O que você vai alcançar + +- Crie um objeto `Screen` que reflita as dimensões e o DPR de um iPhone. +- Aplique uma string de **user agent personalizada** para que os servidores acreditem que a requisição vem do Safari no iOS. +- Construa um `DocumentSandbox` que una a tela e o user‑agent. +- Execute um `HTMLDocument` dentro do sandbox e veja a saída no console confirmando a configuração. + +Nenhuma biblioteca externa além do Aspose.HTML é necessária, e o código funciona em qualquer ambiente Java 17+. + +--- + +![captura de tela de como emular iPhone](https://example.com/images/iphone-emulation.png "como emular iPhone usando sandbox do Aspose.HTML") + +## Como emular iPhone com Aspose.HTML Sandbox + +A primeira coisa que precisamos é um `Screen` que reflita as dimensões físicas do iPhone *e* sua densidade de pixels. Este é o núcleo de **como emular iPhone** com precisão. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Por que isso importa:** +- A largura = 375 px e a altura = 667 px são as dimensões em pixels CSS que você verá no Chrome DevTools ao selecionar um iPhone 8. +- Definir o DPR para 2 indica ao motor de renderização que trate cada pixel CSS como dois pixels físicos, proporcionando texto e imagens nítidos—exatamente como um dispositivo real faz. + +> *Dica de especialista:* Se precisar emular um iPhone mais recente (como o iPhone 13), basta alterar os números para 390 × 844 e DPR = 3. + +## Definindo um User Agent Personalizado (set custom user agent) + +Em seguida, precisamos **definir um user agent personalizado** para que o servidor sirva o HTML/CSS específico para mobile. Sem isso, muitos sites ainda pensarão que você está em um desktop. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Como isso funciona:** +- O cabeçalho `User-Agent` é o aperto de mão que os navegadores usam para se apresentar. +- Ao fornecer a string exata que o Safari no iOS 16 envia, você garante que o servidor retorne os recursos otimizados para mobile (imagens responsivas, scripts adaptativos, etc.). + +Se algum dia precisar **definir user-agent** para outro dispositivo, basta substituir a string pelo valor apropriado—Google Chrome, Firefox ou até um bot customizado. + +## Configurando Device Pixel Ratio (set device pixel ratio) + +Agora realmente **definimos o device pixel ratio** dentro do sandbox. Esta é a etapa que responde diretamente à pergunta “**como definir dpr**” para um ambiente simulado. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Explicação:** +- O padrão `Builder` permite anexar fluentemente tanto a tela (que carrega o DPR) quanto o user‑agent. +- Quando o sandbox renderiza um `HTMLDocument`, ele fingirá que está sendo executado em um dispositivo com aquela densidade de pixels exata. + +> *Por que isso importa:* Algumas consultas de mídia CSS usam `device-pixel-ratio` (por exemplo, `@media (-webkit-min-device-pixel-ratio: 2)`). Se você não definir o DPR, essas regras nunca são acionadas, e você perderá recursos de alta resolução. + +## Verificando a Configuração do Sandbox (how to set user-agent) + +Vamos colocar o sandbox em ação. O trecho a seguir cria um `HTMLDocument`, carrega uma página e imprime uma confirmação de que o sandbox está ativo. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Saída esperada no console** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Se você executar o programa e vir essa linha, você **emulou iPhone** com sucesso usando o DPR e o user‑agent corretos. Abra a página em um navegador real e inspecione as dimensões da viewport—você notará que elas correspondem aos valores de iPhone que definimos. + +## Armadilhas comuns e como definir DPR corretamente (how to set dpr) + +Mesmo com o código correto, alguns detalhes podem causar problemas: + +| Problema | Por que acontece | Solução | +|----------|------------------|---------| +| **DPR permanece em 1** | Você passou um `Screen` sem o terceiro argumento (DPR). | Sempre use `new Screen(width, height, dpr)`. | +| **User‑Agent ignorado** | O sandbox não foi anexado ao `HTMLDocument`. | Passe o `documentSandbox` como segundo argumento ao construtor do `HTMLDocument`. | +| **Dimensões erradas** | Uso de pixels de dispositivo em vez de pixels CSS. | Lembre‑se: largura/altura são **pixels CSS**, não pixels de hardware. | +| **Servidor ainda envia CSS de desktop** | Alguns sites usam JavaScript para detectar dispositivos, não apenas o cabeçalho. | Considere também injetar uma meta tag viewport, se necessário. | + +Mantendo esses pontos em mente, você raramente encontrará uma situação em que a emulação não se comporte como esperado. + +## Expandindo o Sandbox – Próximos passos + +Agora que você sabe **como definir user agent personalizado** e **como definir dpr**, pode experimentar ainda mais: + +- **Altere o tamanho da tela** para emular tablets ou telefones maiores. +- **Troque o user‑agent** para testar Chrome no Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Adicione cookies ou cabeçalhos** via o método `setHeaders` do sandbox para testes autenticados. +- **Capture uma captura de tela** usando `HTMLDocument.renderToFile("output.png")` para comparar diferenças visuais automaticamente. + +Essas extensões permitem que você construa um harness de teste completo sem jamais sair do seu IDE. + +## Conclusão + +Cobremos **como emular iPhone** usando o `DocumentSandbox` da Aspose.HTML, mostrando exatamente **como definir user agent personalizado**, **como definir device pixel ratio**, e até as sutis diferenças entre “**como definir user-agent**” e “**como definir dpr**”. O exemplo completo e executável demonstra cada parte em um só lugar, para que você possa copiar‑colar, ajustar e começar a testar layouts mobile imediatamente. + +Experimente—troque as dimensões da tela, brinque com diferentes user‑agents e veja como suas páginas reagem. Quando você dominar essas configurações, depurar designs responsivos se torna muito mais fácil, e você economizará inúmeras horas correndo atrás de bugs em dispositivos reais. + +Tem perguntas ou quer compartilhar suas próprias variações? Deixe um comentário abaixo, e boa emulação! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/advanced-usage/_index.md b/html/russian/java/advanced-usage/_index.md index ca8cf880d..141924cdf 100644 --- a/html/russian/java/advanced-usage/_index.md +++ b/html/russian/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Aspose.HTML позволяет прикрепить `DomMutationObserver` к л Узнайте, как изменять размер страниц XPS с помощью Aspose.HTML for Java. Легко контролируйте размеры выводимых XPS‑документов. ### [Как выполнить JavaScript в Java – Полное руководство](./how-to-run-javascript-in-java-complete-guide/) Узнайте, как запускать JavaScript‑код из Java‑приложений с помощью Aspose.HTML for Java. +### [Пример top‑level await – использование await delay в JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Узнайте, как применять top‑level await с функцией задержки await delay в JavaScript для упрощения асинхронного кода. --- diff --git a/html/russian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/russian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..c994d3728 --- /dev/null +++ b/html/russian/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Пример top‑level await, показывающий await delay в JavaScript, класс‑счётчик + с инкрементом и публичные поля класса в JavaScript в живой демонстрации. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: ru +og_description: Пример top‑level await, демонстрирующий await delay в JavaScript, + класс‑счётчик с инкрементом и публичные поля класса в JavaScript в кратком руководстве. +og_title: пример await верхнего уровня – использование await delay в JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Пример top-level await – использование await delay в JavaScript +url: /ru/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# пример top level await – использование await delay в JavaScript + +Когда‑нибудь задумывались, как приостановить выполнение модуля без обёртывания всего в async IIFE? Именно это и позволяет **пример top level await**. В этом руководстве мы пройдёмся по небольшому веб‑страничному примеру, который использует `await delay javascript` для откладывания работы, а затем создаёт `increment counter class`, использующий **public class fields javascript**. К концу вы получите полностью готовый фрагмент кода, который можно скопировать и вставить в любой современный браузер. + +Мы рассмотрим всё: от определения класса с публичным полем до подключения простого помощника задержки на основе промисов. Никаких внешних библиотек, без сборки — только чистый HTML, ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Ожидаемый вывод в консоль + +``` +Counter class initialized +Final count: 1 +``` + +Если открыть страницу в DevTools, вы увидите сообщение из статического блока **до** завершения задержки, подтверждая, что класс был оценён первым. + +## Шаг 5 – Почему использовать публичные поля класса вместо конструктора? + +Возможно, вы задаётесь вопросом, почему мы не написали так: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Оба подхода работают, но **public class fields javascript** дают более чистый, декларативный синтаксис. Поле объявляется один раз, а не внутри каждого вызова конструктора, что упрощает чтение при росте класса. Кроме того, статические блоки нельзя разместить внутри конструктора, поэтому вынесение инициализационной логики становится более естественным. + +## Шаг 6 – Адаптация примера для реальных приложений + +В продакшене часто требуется больше одного счётчика. Вот несколько быстрых идей: + +- **Несколько счётчиков:** Хранить их в `Map` с ключом‑идентификатором. +- **Сохранённое состояние:** Заменить `console.log` на запись в `localStorage`. +- **Асинхронная инициализация:** Использовать статический блок для получения конфигурации с сервера до создания любых экземпляров. + +Все эти паттерны продолжают выигрывать от top‑level await, потому что вы можете один раз загрузить данные при загрузке модуля и гарантировать их готовность для всех потребителей. + +## Часто задаваемые вопросы + +**В опрос:** Блокирует ли top‑level await другие модули? +**О ответ:** Нет. Каждый модуль работает независимо. Приостановлен только тот модуль, где находится await; остальные продолжают загружаться параллельно. + +**В опрос:** Что если промис задержки отклонится? +**О ответ:** Необработанное отклонение прервет оценку модуля и отобразится как ошибка в консоли. Оберните `await` в `try…catch`, если нужен плавный откат. + +**В опрос:** Требуется ли ключевое слово `static`? +**О ответ:** Не для самого счётчика, но статический блок удобен для демонстрации кода, который выполняется *один раз* при загрузке — отлично подходит для логирования или обнаружения возможностей. + +## Заключение + +Вы только что создали **пример top level await**, демонстрирующий `await delay javascript`, **increment counter class** и возможности **public class fields javascript**. Полный, исполняемый фрагмент кода находится выше, а вывод в консоль подтверждает, что статический блок отрабатывает до кода с задержкой. + +Отсюда вы можете экспериментировать с более сложными асинхронными потоками, заменить задержку реальным API‑вызовом или расширить класс дополнительными методами. Помните, современный JavaScript позволяет рассматривать модули как полноценные асинхронные сущности — без лишних обёрток. + +Счастливого кодинга, и смело делитесь своими вариантами в комментариях. Если руководство оказалось полезным, поделитесь им с коллегой, который всё ещё борется с async‑паттернами! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/conversion-html-to-other-formats/_index.md b/html/russian/java/conversion-html-to-other-formats/_index.md index 7a599423a..84e70f526 100644 --- a/html/russian/java/conversion-html-to-other-formats/_index.md +++ b/html/russian/java/conversion-html-to-other-formats/_index.md @@ -91,11 +91,14 @@ Aspose.HTML for Java упрощает процесс конвертации HTML Легко конвертируйте HTML в MHTML с помощью Aspose.HTML for Java. Следуйте нашему пошаговому руководству для эффективной конвертации HTML в MHTML. ### [Конвертация HTML в XPS](./convert-html-to-xps/) -Узнайте, как без труда конвертировать HTML в XPS с помощью Aspose.HTML for Java. Создавайте кросс‑платформенные документы с лёгкостью. +Узнайте, как без труда конвертировать HTML в XPS с помощью Aspose.HTML for Java. Создавайте кросс‑платформные документы с лёгкостью. ### [Конвертация Markdown в HTML](./convert-markdown-to-html/) Бесшовно конвертируйте Markdown в HTML в Java с помощью Aspose.HTML for Java. Следуйте нашему пошаговому руководству, чтобы упростить ваши потребности в конвертации документов. +### [Конвертация HTML в Markdown в Java – Сохранение оригинального форматирования](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Конвертируйте HTML в Markdown в Java, сохраняя исходное форматирование и структуру документа. + ### [Конвертация SVG в изображение](./convert-svg-to-image/) Узнайте, как конвертировать SVG в изображения в Java с помощью Aspose.HTML. Полное руководство для получения высококачественного результата. @@ -108,6 +111,12 @@ Aspose.HTML for Java упрощает процесс конвертации HTML ### [Конвертация HTML в PDF в Java – Пошаговое руководство с настройками размера страницы](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Подробное пошаговое руководство по конвертации HTML в PDF в Java с настройкой размеров страниц. +### [Создание PDF пользовательского размера – Конвертация HTML в PDF с Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Узнайте, как задать пользовательские размеры страниц при конвертации HTML в PDF с помощью Aspose.HTML for Java. + +### [Создание PDF из HTML в Java – Руководство по параллельному пакетному преобразованию](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Узнайте, как выполнять параллельную пакетную конвертацию HTML в PDF в Java с помощью Aspose.HTML, повышая производительность. + ## Часто задаваемые вопросы **Q: Можно ли использовать Aspose.HTML for Java в коммерческом приложении?** diff --git a/html/russian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/russian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..f524bb252 --- /dev/null +++ b/html/russian/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Преобразуйте HTML в Markdown и создайте файл Markdown, сохраняя исходное + форматирование с помощью конвертации Aspose HTML в Java. Учитесь шаг за шагом. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: ru +og_description: Быстро конвертируйте HTML в markdown, создавайте файл markdown и сохраняйте + оригинальное форматирование с помощью Aspose HTML conversion for Java. +og_title: Конвертировать HTML в Markdown на Java – Сохранить форматирование +tags: +- Aspose +- Java +- Markdown +title: Конвертировать HTML в Markdown на Java — Сохранить оригинальное форматирование +url: /ru/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Преобразование HTML в Markdown в Java – Сохранение исходного форматирования + +Когда‑нибудь вам нужно было **convert HTML to markdown**, но вы боялись потерять отступы, таблицы или встроенные теги? Вы не одиноки. Многие разработчики сталкиваются с этой проблемой, когда пытаются перенести содержимое веб‑страницы в чистый формат, удобный для систем контроля версий. Хорошая новость? С несколькими строками Java и Aspose HTML вы можете **generate markdown file**, который выглядит точно так же, как исходный, включая пробелы. + +В этом руководстве мы пройдём весь процесс: загрузим сложный HTML‑файл, настроим конвертацию так, чтобы **preserve original formatting**, и наконец запишем результат в `preserved.md`. К концу вы получите готовый к запуску фрагмент кода, поймёте *почему* каждую настройку важно учитывать и узнаете, как адаптировать код для особых случаев, таких как пользовательские CSS‑файлы или встроенные скрипты. + +## Что понадобится + +- Java 17 (или любой современный JDK) – API работает с Java 8+, но более новые версии дают лучшую производительность. +- Библиотека Aspose HTML for Java (версия 23.11 или новее). Вы можете получить её из Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Пример HTML‑файла (`complex.html`), содержащего заголовки, таблицы, блоки кода и, возможно, некоторые встроенные стили ``. +- Немного терпения и готовность экспериментировать. + +Это всё. Никаких внешних инструментов, никаких хаки в командной строке — только чистый Java‑код. + +## Шаг 1: Загрузка исходного HTML‑документа + +Первое, что мы делаем, — создаём экземпляр `HTMLDocument`, указывающий на ваш исходный файл. Aspose HTML рассматривает файл как DOM, что позволяет инспектировать или изменять его перед конвертацией, если это понадобится. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Почему это важно:** Загрузка документа таким способом гарантирует, что все связанные ресурсы (таблицы стилей, изображения) будут разрешены относительно расположения файла. Если пропустить этот шаг и передать сырую строку, вы можете потерять внешние CSS, влияющие на отступы — именно то, что вы хотите **preserve original formatting**. + +## Шаг 2: Настройка параметров конвертации в Markdown + +Aspose HTML предоставляет класс `MarkdownConversionOptions`. Ключевое свойство для нас — `setPreserveOriginalFormatting(true)`. При включении конвертер сохраняет разрывы строк, отступы и даже необработанные фрагменты HTML, которые markdown не может представить нативно. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro tip:** Если позже обнаружите, что некоторые встроенные стили удаляются, вы также можете вызвать `markdownOptions.setIncludeHtml(true)`, чтобы принудительно включать необработанные HTML‑блоки в вывод markdown. + +## Шаг 3: Выполнение конвертации + +Теперь передаём `HTMLDocument`, путь к целевому файлу и наши параметры в статический метод `Converter.convertHTML`. Метод выполнит всю тяжёлую работу за кулисами. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Когда вызов завершится, вы найдёте `preserved.md` рядом с вашим исходным файлом. Откройте его в любом редакторе — обратите внимание, как сохранены оригинальные разрывы строк и выравнивание таблиц. + +## Шаг 4: Проверка результата (необязательно, но рекомендуется) + +Быстрая проверка спасёт от скрытых багов позже. Вы можете прочитать файл обратно в Java и вывести первые несколько строк, либо просто открыть его в VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Вы должны увидеть что‑то вроде: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Тег `` всё ещё присутствует, потому что нативный синтаксис таблиц markdown не смог точно передать стили — благодаря `preserve original formatting`. + +## Шаг 5: Соберите всё вместе — Полный исполняемый пример + +Ниже приведён полностью готовый к запуску класс. Замените `YOUR_DIRECTORY` на реальный путь на вашей машине. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Запустите программу командой `mvn exec:java` или через любимую IDE, и вы получите **generate markdown file**, который точно отражает оригинальное расположение элементов HTML. + +## Часто задаваемые вопросы и особые случаи + +### Работает ли это с внешними CSS‑файлами? + +Да. Пока CSS‑файлы доступны по относительным путям, Aspose HTML загружает их автоматически. Если вы получаете HTML из удалённого URL, возможно, понадобится задать пользовательский объект `ResourceLoadingOptions`, позволяющий сетевой доступ. + +### Что если я не хочу, чтобы в markdown присутствовал любой необработанный HTML? + +Просто переключите опцию: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Конвертер тогда постарается перевести всё в чистый синтаксис markdown, что может привести к потере части оформления. + +### Можно ли конвертировать строку вместо файла? + +Конечно. Используйте конструктор, принимающий `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Затем передайте `doc` в `Converter.convertHTML`, как и раньше. + +### Чем это отличается от других библиотек, таких как Flexmark или pandoc? + +Большинство открытых инструментов рассматривают HTML как простой текст и агрессивно удаляют пробелы. Флаг `preserveOriginalFormatting` в Aspose HTML — это **proprietary feature**, который сохраняет исходные пробелы, разрывы строк и даже оставляет неподдерживаемые теги как необработанные HTML‑блоки. Поэтому в этом руководстве делается акцент на **aspose html conversion** для Java‑разработчиков, которым нужна точная верность. + +## Советы для использования в продакшене + +- **Пакетная обработка:** Оберните логику конвертации в цикл, чтобы обрабатывать несколько HTML‑файлов за один запуск. +- **Обработка ошибок:** Перехватывайте `IOException` и `com.aspose.html.exceptions.AssertionFailedException`, чтобы выявлять отсутствующие ресурсы. +- **Производительность:** Переиспользуйте один экземпляр `HTMLDocument` при конвертации фрагментов большого сайта; библиотека кэширует разобранный CSS. + +## Заключение + +Мы только что показали, как **convert HTML to markdown** в Java, гарантируя, что вывод **preserve original formatting**. Краткий, автономный фрагмент кода демонстрирует весь рабочий процесс — от загрузки HTML‑документа до настройки `MarkdownConversionOptions`, выполнения конвертации и проверки результата. С мощным API Aspose HTML вы теперь можете **generate markdown file** программно, будь то генератор статических сайтов, конвейер документации или инструмент миграции контента. + +Дальше вы можете изучить: + +- Использование **html to markdown java** для массовой миграции по всему сайту. +- Настройку параметров конвертации для вывода таблиц в стиле GitHub‑flavored markdown. +- Интеграцию этого подхода в шаг CI/CD, который автоматически обновляет вашу документацию при изменении исходного HTML. + +Экспериментируйте, оставляйте комментарии, если столкнётесь с проблемами. Счастливого кодинга! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/russian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..20e4ee082 --- /dev/null +++ b/html/russian/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,198 @@ +--- +category: general +date: 2026-03-26 +description: Создайте PDF произвольного размера из HTML с помощью Aspose.HTML для + Java. Узнайте, как преобразовать HTML в PDF и установить размер страницы PDF за + несколько простых шагов. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: ru +og_description: Создайте PDF пользовательского размера из HTML с помощью Aspose. Это + руководство покажет, как конвертировать HTML в PDF, изменить размер страницы PDF + и установить размер страницы PDF без усилий. +og_title: Создайте PDF нестандартного размера – Краткое руководство по конвертации + HTML в PDF +tags: +- aspose +- java +- pdf +- html +title: Создать PDF пользовательского размера – конвертировать HTML в PDF с помощью + Aspose +url: /ru/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание PDF пользовательского размера – Конвертация HTML в PDF с помощью Aspose + +Когда‑нибудь нужно было **создать PDF пользовательского размера** из HTML‑файла? В этом руководстве мы покажем, как **конвертировать HTML в PDF** и задать размер страницы PDF, используя Aspose.HTML for Java. + +Если вы создаёте счета, отчёты или электронные книги, точные размеры страницы имеют значение — иначе ваш макет будет смещён или обрезан. + +Мы пройдём каждый шаг: от загрузки исходного HTML до настройки полей, и закончим готовым PDF. Никаких расплывчатых ссылок, только полный, готовый к запуску пример, который можно скопировать‑вставить уже сегодня. + +## Что понадобится + +- **Java 17** (или любой современный JDK). +- **Aspose.HTML for Java** JAR‑ы — их последнюю версию можно взять из Maven‑репозитория или с сайта Aspose. +- Простой файл `input.html`, размещённый в папке, которой вы управляете. +- IDE или текстовый редактор по вашему выбору; я обычно работаю в IntelliJ IDEA, но Eclipse тоже отлично подходит. + +Наличие этих предварительных условий избавит вас от ошибок «class not found» в середине работы. + +А теперь давайте начнём. + +![Пример создания PDF пользовательского размера](/images/create-pdf-custom-size.png "Скриншот, показывающий PDF, сгенерированный с пользовательским размером страницы и полями – create pdf custom size") + +## Создание PDF пользовательского размера – Основные шаги + +Ниже представлен полный Java‑программный код, который у вас получится. Скопируйте его в файл `ConvertHtmlToPdfCustomPage.java` и запустите после добавления зависимостей Aspose в ваш проект. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Шаг 1 – Конвертация HTML в PDF: загрузка документа + +Первое, что мы делаем, — **загружаем HTML**, который хотим превратить в PDF. +`HTMLDocument` читает файл, разрешает относительные ссылки и строит DOM, который Aspose может отрисовать. + +> **Почему это важно:** Если HTML ссылается на CSS или изображения, Aspose получит их относительно пути к файлу. Использование абсолютного пути (`YOUR_DIRECTORY/input.html`) избавит от неожиданностей «file not found». + +### Шаг 2 – Изменение размера страницы PDF: настройка параметров + +Здесь мы создаём объект `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` указывает Aspose использовать стандартный размер A4 (210 × 297 mm). +- `setPageOrientation(...)` меняет ориентацию страницы, если нужен альбомный вид. +- `setMargins(new Margin(20, 20, 20, 20))` задаёт поле в 20 поинтов со всех сторон. + +Вы можете заменить `PageSize.A4` на `PageSize.LETTER` или даже **пользовательский размер**, передав объект `SizeF`, например: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Полезный совет:** Один поинт = 1/72 дюйма. Если вам удобнее работать в миллиметрах, умножьте значение на 2.83465, чтобы получить поинты. + +### Шаг 3 – Генерация PDF из HTML: запуск конвертации + +`Converter.convertHTML` делает всю тяжёлую работу. Он принимает загруженный `HTMLDocument`, путь к выходному файлу и только что настроенные параметры. + +Если нужно **задать размер страницы PDF** динамически в зависимости от содержимого, вы можете вычислить требуемые размеры перед этим шагом и скорректировать `pdfOptions` соответственно. + +### Шаг 4 – Проверка результата + +Строка `System.out.println` необязательна, но даёт быстрый отклик при запуске программы из консоли. После выполнения откройте `custom_page.pdf` — вы должны увидеть PDF формата A4 в портретной ориентации с равномерными полями в 20 поинтов, точно как мы указали. + +## Конвертация HTML в PDF – Распространённые варианты + +### Использование потока вместо пути к файлу + +Иногда физического файла нет; HTML может приходить из базы данных или API. В этом случае оберните строку в `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Второй аргумент — базовый URL для разрешения относительных ресурсов. + +### Смена ориентации страницы + +Если ваш отчёт широкий, переключитесь на альбомный режим: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Точная настройка полей + +Поля принимают значения с плавающей точкой, так что можно задать, например, 0.5 pt для тонкой границы: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Обработка больших HTML‑файлов + +Для массивных документов рассмотрите включение **потоковой обработки с экономией памяти**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Это заставит Aspose записывать промежуточные данные во временные файлы вместо того, чтобы держать всё в ОЗУ. + +## Установка размера страницы PDF – Пограничные случаи и подводные камни + +- **Отсутствие шрифтов:** Если ваш HTML использует пользовательский шрифт, не установленный на сервере, PDF перейдёт к шрифту по умолчанию. Встроить шрифт можно с помощью `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Масштабирование изображений:** Высококачественные изображения могут раздувать PDF. Используйте `pdfOptions.setImageResolution(150);`, чтобы уменьшить разрешение, сохранив приемлемое качество. +- **Совместимость CSS:** Не все свойства CSS полностью поддерживаются. Оставайтесь на стандартных техниках верстки (flexbox работает, а grid может иметь нюансы). +- **Разрешения путей:** Убедитесь, что процесс имеет права записи в `YOUR_DIRECTORY`. Иначе будет выброшено `IOException`. + +## Ожидаемый результат + +Запуск программы создаёт PDF, выглядящий примерно так (концептуальная иллюстрация): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Размер страницы: **A4** (210 × 297 mm). +- Ориентация: **Портрет**. +- Поля: **20 pt** со всех сторон. + +Откройте файл в любом PDF‑просмотрщике (Adobe Reader, Chrome и т.д.), чтобы убедиться. + +## Итоги + +Теперь вы знаете, как **создать PDF пользовательского размера** из HTML‑источника с помощью Aspose.HTML for Java. Руководство охватило весь конвейер: **конвертация HTML в PDF**, **изменение размера страницы PDF**, **установка размера страницы PDF** и **генерацию PDF из HTML** с пользовательскими полями. + +Экспериментируйте — меняйте `PageSize.LETTER` на юридический размер, подстраивайте поля или встраивайте свои шрифты. Далее можно изучить **добавление водяных знаков**, **шифрование PDF** или **пакетную обработку нескольких HTML‑файлов**. Все эти темы опираются на те же базовые концепции, которые мы только что разобрали. + +Есть вопрос о конкретном пограничном случае? Оставьте комментарий ниже, и я помогу разобраться. Счастливого кодинга! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/russian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..9a98d4407 --- /dev/null +++ b/html/russian/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,243 @@ +--- +category: general +date: 2026-03-26 +description: Создавайте PDF из HTML быстро, используя фиксированный пул потоков. Изучите + пакетное преобразование HTML в PDF и запуск параллельных задач в Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: ru +og_description: Быстро создавайте PDF из HTML с помощью фиксированного пула потоков. + Узнайте, как пакетировать HTML в PDF и выполнять параллельные задачи в Java. +og_title: Создание PDF из HTML в Java — руководство по параллельному пакетному конвертированию +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Создание PDF из HTML в Java – Руководство по параллельному пакетному преобразованию +url: /ru/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание PDF из HTML в Java – Руководство по параллельному пакетному преобразованию + +Когда‑нибудь вам нужно было **создать PDF из HTML**, но вы застряли, наблюдая, как однопоточное преобразование ползёт вечно? Вы не одиноки. Во многих реальных проектах мы получаем десятки HTML‑отчётов, которые должны стать PDF к концу дня, и обрабатывать их по одному просто непрактично. + +Именно поэтому в этом руководстве показано, **как преобразовать HTML в PDF** с помощью **фиксированного пула потоков**, позволяя **пакетно преобразовывать HTML в PDF** и **запускать параллельные задачи** без усилий. К концу вы получите полностью готовую к запуску программу, которая за доли секунды превратит папку с HTML‑файлами в PDF. + +## Что вы узнаете + +В следующих разделах мы рассмотрим всё, что необходимо: + +* Точную зависимость Maven/Gradle для Aspose.HTML (библиотека, выполняющая основную работу). +* Почему **фиксированный пул потоков** — оптимальный вариант для CPU‑интенсивных задач преобразования. +* Как перечислить исходные файлы, чтобы процесс мог масштабироваться до сотен документов. +* Точный код, который нужно вставить в IDE — без пропущенных импортов и без комментариев «TODO». +* Советы по обработке ошибок, настройке размера пула и проверке результата. + +Предварительные знания Aspose.HTML не требуются, достаточно базовой настройки Java и желания экспериментировать. Приступим. + +--- + +![Диаграмма, показывающая фиксированный пул потоков, преобразующий несколько HTML‑файлов в PDF параллельно – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Текст альтернативного изображения: create pdf from html – диаграмма параллельного преобразования* + +## Шаг 1: Подготовьте проект и добавьте Aspose.HTML + +Прежде всего — ваш проект нуждается в библиотеке Aspose.HTML. Если вы используете Maven, добавьте следующее в ваш `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Для Gradle достаточно: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Почему Aspose.HTML? Это коммерческая библиотека, но она предоставляет API **convert html to pdf**, которое из коробки обрабатывает CSS, JavaScript и сложные макеты. Если вы предпочитаете открытое решение, позже можно заменить вызов `Converter.convertHTML`, но логика работы с потоками останется той же. + +> **Pro tip:** Синхронизируйте номер версии с официальными примечаниями к выпуску; более новые версии часто ускоряют рендеринг, что важно при запуске множества задач параллельно. + +## Шаг 2: Создайте фиксированный пул потоков для параллельного преобразования + +Когда у вас есть пакет файлов, не стоит создавать неограниченное количество потоков — операционная система начнёт «трешировать». **Фиксированный пул потоков** обеспечивает предсказуемый уровень параллелизма, удерживая использование памяти под контролем. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Почему четыре? На типичной 8‑ядерной машине половина ядер может оставаться свободной для ввода‑вывода и ОС. Вы можете экспериментировать: `Runtime.getRuntime().availableProcessors()` возвращает количество ядер, а эмпирическое правило — `cores / 2`. Помните, каждое преобразование требует значительных ресурсов CPU, поэтому больше потоков, чем ядер, обычно ухудшает производительность. + +## Шаг 3: Соберите HTML‑файлы, которые нужно преобразовать + +Следующий элемент головоломки — список **batch html to pdf**. Вы можете задать массив вручную (как в примере) или просканировать каталог. Ниже гибкая версия, читающая каждый файл `.html` из папки: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Такой подход позволяет просто копировать новые файлы в папку, и программа автоматически их подхватит — идеально для ночных пакетных заданий. + +## Шаг 4: Отправьте задачу преобразования для каждого файла (запуск параллельных задач) + +Теперь самое интересное: каждый файл превращается в **Runnable** (или `Callable`), который исполняет пул. Приведённый ниже код повторяет оригинальный пример, но добавляет обработку ошибок и небольшое сообщение в журнал. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Зачем оборачивать преобразование в try‑catch?** При **запуске параллельных задач** один некорректный HTML‑файл может вывести из строя весь executor. Локальное перехватывание исключений гарантирует, что остальная часть пакета продолжит работу. + +## Шаг 5: Завершите работу executor‑а и дождитесь завершения + +После отправки всех задач необходимо указать пулу прекратить принимать новые работы и дождаться завершения всех текущих. Это гарантирует, что JVM не завершится преждевременно. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Если у вас огромная папка (тысячи файлов), можно увеличить тайм‑аут или реализовать монитор прогресса. Главное — **корректно завершить работу** — это признак готового к продакшену кода. + +## Полный рабочий пример + +Объединив всё вместе, получаем самостоятельный класс, который можно скопировать в `src/main/java` и запустить: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Ожидаемый вывод** (пример): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Если открыть сгенерированные файлы `.pdf`, вы увидите сохранённый оригинальный макет HTML — шрифты, таблицы и даже базовый JavaScript‑контент отрисованы корректно. + +## Часто задаваемые вопросы и граничные случаи + +| Вопрос | Ответ | +|--------|-------| +| | | +| | | + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/conversion-html-to-various-image-formats/_index.md b/html/russian/java/conversion-html-to-various-image-formats/_index.md index d92382e42..9b0804b5b 100644 --- a/html/russian/java/conversion-html-to-various-image-formats/_index.md +++ b/html/russian/java/conversion-html-to-various-image-formats/_index.md @@ -106,6 +106,12 @@ weight: 24 ### [Преобразование HTML в WebP – Полное руководство Java с Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) Узнайте, как преобразовать HTML в WebP в Java с помощью Aspose.HTML. Полное пошаговое руководство. +### [Преобразование HTML в WebP – Полное руководство Java](./convert-html-to-webp-complete-java-guide/) +Узнайте, как преобразовать HTML в WebP в Java с помощью Aspose.HTML. Полное пошаговое руководство. + +### [Создание многостраничного TIFF из SVG в Java – пошаговое руководство](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Узнайте, как создать многостраничный TIFF из SVG в Java с помощью Aspose.HTML. Подробное пошаговое руководство. + ## Часто задаваемые вопросы **В: Можно ли конвертировать HTML в PNG с помощью Java без дополнительных библиотек для работы с изображениями?** diff --git a/html/russian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/russian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..1781d19a3 --- /dev/null +++ b/html/russian/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-03-26 +description: Быстро преобразуйте HTML в WebP с помощью Aspose.HTML. Узнайте, как сохранить + HTML в формате WebP, отобразить HTML как WebP и создать WebP из HTML всего за несколько + шагов. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: ru +og_description: Быстро преобразуйте HTML в WebP с помощью Aspose.HTML. Этот учебник + показывает, как отрисовать HTML в формате WebP и создать WebP из HTML на Java. +og_title: Конвертировать HTML в WebP – Полное руководство по Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Преобразование HTML в WebP – Полное руководство по Java +url: /ru/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Конвертация HTML в WebP – Полное руководство на Java + +Когда‑нибудь вам нужно было **конвертировать HTML в WebP**, но вы не знали, какая библиотека справится с задачей без проблем? Вы не одиноки. Многие разработчики сталкиваются с этой проблемой, пытаясь обслуживать лёгкие изображения, генерируемые из динамических страниц. Хорошая новость? С Aspose.HTML для Java вы можете *сохранить HTML как WebP* одним вызовом метода, и весь процесс будет гладким, как масло. + +В этом руководстве мы пройдём всё, что вам нужно знать: от настройки зависимости Aspose.HTML до настройки параметров сжатия и, наконец, рендеринга HTML‑документа в файл WebP, который можно разместить в вебе. К концу вы сможете **рендерить HTML как WebP**, **генерировать WebP из HTML** и понять, «почему» за каждой опцией конфигурации. Никаких внешних скриптов, никаких командных трюков — только чистый Java‑код. + +## Предварительные требования + +- Java 8 или новее установлен (библиотека поддерживает JDK 8+). +- Maven или Gradle для управления зависимостями (мы покажем фрагмент Maven). +- Простой HTML‑файл (`input.html`), который вы хотите превратить в изображение WebP. +- IDE или текстовый редактор по вашему выбору — IntelliJ IDEA отлично подходит, но подойдёт любой. + +Все готово? Отлично, приступим. + +## Шаг 1: Добавьте Aspose.HTML в ваш проект + +Сначала вам нужна библиотека Aspose.HTML в classpath. Если вы используете Maven, добавьте следующее в ваш `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Для Gradle это выглядит так: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Почему этот шаг важен? Без JAR‑файла классы `HTMLDocument`, `Converter` и `WebpConversionOptions` не существуют, и компилятор выдаст `ClassNotFoundException`. Добавление зависимости также подтягивает нативные бинарные файлы, необходимые для кодирования WebP, так что вам не придётся искать внешние DLL или `.so` файлы. + +> **Совет:** Держите зависимости в актуальном состоянии. Более новые версии Aspose часто улучшают алгоритмы сжатия WebP и добавляют поддержку новых возможностей HTML5. + +## Шаг 2: Загрузите исходный HTML‑документ + +Теперь, когда библиотека готова, мы можем загрузить HTML, который хотите конвертировать. Класс `HTMLDocument` парсит файл и строит DOM, который затем будет отрисован конвертером. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Обратите внимание на комментарий «Load the source HTML document» — это напоминание о том, что вы также можете внедрить CSS или JavaScript перед конвертацией, если ваша страница зависит от динамического стиля. Если пропустить этот шаг, у конвертера не будет чего рендерить, и получится пустое изображение. + +## Шаг 3: Настройте параметры конвертации WebP + +Aspose.HTML предоставляет детальный контроль над результатом. Для большинства случаев **lossy** WebP с качеством около 85 обеспечивает хороший баланс между визуальной точностью и размером файла. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Почему выбирают lossy? Режим lossy в WebP использует предиктивное кодирование, которое может уменьшить файлы на 30‑50 % по сравнению с PNG, сохраняя большую часть визуальных деталей. Если нужны пиксель‑идеальные результаты (например, для логотипов), переключите `CompressionMode` на `Lossless` и установите `quality` в 100. + +## Шаг 4: Конвертируйте и сохраните изображение WebP + +С документом и параметрами, готовыми к работе, сама конвертация сводится к одной строке. Статический метод `Converter.convertHTML` делает всю тяжёлую работу: он рендерит DOM в bitmap, кодирует его как WebP и записывает файл на диск. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Вот и всё! После завершения программы вы найдёте `output.webp` рядом с вашим исходным HTML. Теперь вы можете обслуживать его напрямую с веб‑сервера, вставлять в элемент `` или использовать в любом контексте, поддерживающем WebP. + +## Шаг 5: Проверьте результат (необязательно, но рекомендуется) + +Всегда полезно дважды проверить, что конвертация прошла успешно и изображение выглядит как ожидается. Вы можете открыть файл WebP в Chrome, Firefox или любом просмотрщике, поддерживающем этот формат. Для быстрой программной проверки можно прочитать размер файла и его размеры: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Если файл неожиданно большой или размеры не соответствуют, вернитесь к **Шагу 3** и отрегулируйте `quality` или настройки viewport в исходном HTML. Помните, WebP учитывает CSS‑свойства `width`/`height` корневого элемента, поэтому отсутствие тега `` может привести к неожиданным результатам. + +## Полный рабочий пример + +Объединив всё вместе, представляем полностью готовый к запуску Java‑класс: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Сохраните этот файл как `HtmlToWebp.java`, замените `YOUR_DIRECTORY` реальным путём к папке, скомпилируйте с помощью `javac` и запустите командой `java HtmlToWebp`. Вы должны увидеть вывод в консоли, подтверждающий размер и размеры файла, а затем финальное сообщение об успехе. + +![пример конвертации html в webp](/images/convert-html-to-webp.png "Снимок экрана изображения WebP, сгенерированного из HTML – конвертация html в webp") + +## Часто задаваемые вопросы и особые случаи + +### Что если мой HTML ссылается на внешние ресурсы (CSS, изображения)? + +Aspose.HTML автоматически разрешает относительные URL‑адреса на основе местоположения `input.html`. Просто убедитесь, что ресурсы доступны из файловой системы или веб‑сервера. Если нужно задать пользовательский базовый URL, используйте перегруженный конструктор `HTMLDocument`, принимающий базовый `URI`. + +### Могу ли я генерировать несколько изображений WebP из одного HTML (например, разных размеров viewport)? + +Конечно. Оберните логику конвертации в цикл, перед каждым вызовом изменяйте `webpOptions.setWidth()` и `setHeight()`, и задавайте каждому результату уникальное имя файла. Это удобно для адаптивного дизайна, когда вы обслуживаете разные размеры изображений для мобильных и десктопных устройств. + +### Как переключиться на без потерь (lossless) сжатие? + +Замените строку: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +на: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless гарантирует пиксель‑идеальную точность, но приводит к большим файлам — используйте его только при необходимости. + +### Работает ли это на Linux/macOS? + +Да. JAR‑файл Aspose.HTML содержит нативные бинарники для Windows, Linux и macOS, поэтому один и тот же Java‑код работает везде. Просто убедитесь, что установлен соответствующий JRE. + +## Заключение + +Вы только что узнали **как конвертировать HTML в WebP** с помощью Aspose.HTML для Java, охватив всё от настройки зависимостей до тонкой настройки сжатия и проверки результата. С этими знаниями вы можете **сохранять HTML как WebP**, **рендерить HTML как WebP** и **генерировать WebP из HTML** «на лету» — идеально для динамических конвейеров изображений, email‑рассылок или любой ситуации, где важны лёгкие визуальные элементы. + +Что дальше? Попробуйте поэкспериментировать с разными значениями `quality`, изучить режим `Lossless` или интегрировать этот конвертер в REST‑endpoint Spring Boot, чтобы ваш веб‑сервис мог возвращать изображения WebP по запросу. Вы также можете рассмотреть пакетную обработку папки HTML‑файлов или сочетание с headless Chrome для конвертации SVG в WebP. + +Есть дополнительные вопросы о **конвертации HTML** на других языках или нужна помощь с конкретным краевым случаем? Оставьте комментарий ниже, и удачной разработки! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/russian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..d25cf3c34 --- /dev/null +++ b/html/russian/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Создайте многостраничный TIFF из SVG в Java с помощью Aspose.HTML. Узнайте, + как конвертировать SVG в TIFF, загрузить SVG‑документ в Java и создать многостраничные + файлы TIFF. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: ru +og_description: Создайте многостраничный TIFF из SVG на Java. Это руководство показывает, + как загрузить документ SVG, настроить параметры TIFF и создать без потерь многостраничный + TIFF. +og_title: Создание многостраничного TIFF из SVG в Java — Полное руководство +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Создание многостраничного TIFF из SVG в Java – пошаговое руководство +url: /ru/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Создание многостраничного TIFF из SVG в Java – Пошаговое руководство + +Когда‑то вам нужно **создать многостраничный TIFF** из SVG, но вы не знали, с чего начать? Вы не одиноки — многие разработчики сталкиваются с этой проблемой, когда им требуется печатный, без потерь документ, охватывающий несколько страниц. В этом руководстве мы пройдем полный, готовый к запуску пример, показывающий **как конвертировать SVG в TIFF**, загрузить SVG‑документ в Java и настроить вывод, чтобы **создавать многостраничные TIFF**‑файлы с компрессией LZW. + +Мы рассмотрим всё: от настройки библиотеки Aspose.HTML до обработки особых случаев, таких как крупные SVG‑ресурсы. К концу урока у вас будет один Java‑класс, который можно добавить в любой проект и сразу начинать генерировать многостраничные TIFF‑файлы. + +## Что понадобится + +- **Java Development Kit (JDK) 8+** – код использует стандартные Java API. +- **Aspose.HTML for Java** (версия 23.5 или новее) – единственная сторонняя зависимость. +- **Пример SVG‑файла** (любой векторный графический файл; будем называть его `input.svg`). +- Любая IDE или простой текстовый редактор и терминал. + +Дополнительные инструменты сборки не требуются; пример компилируется с помощью `javac` и запускается через `java`. Если вы предпочитаете Maven или Gradle, просто добавьте JAR‑файл Aspose.HTML в classpath вашего проекта. + +![Create multipage tiff example](create-multipage-tiff.png){alt="вывод создания многостраничного tiff"} + +## Шаг 1 – Загрузка SVG‑документа (load svg document java) + +Первое, что нужно сделать, — прочитать SVG в объект `HTMLDocument`. Aspose.HTML рассматривает SVG‑файлы как HTML‑документы, предоставляя единый API для конвертации. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Почему это важно:** Загрузка SVG как `HTMLDocument` дает доступ к полному движку рендеринга, гарантируя корректную интерпретацию всех стилей, шрифтов и встроенных изображений перед конвертацией. Пропуск этого шага и попытка передать сырые байты напрямую в конвертер часто приводит к отсутствию элементов или неверным цветам. + +## Шаг 2 – Настройка параметров TIFF (how to create multipage tiff) + +Далее создаём `TiffConversionOptions`. Этот объект управляет всем: от раскладки страниц до компрессии. Чтобы получить действительно многостраничный вывод, включаем `setMultipage(true)` и выбираем компрессию **LZW**, поскольку она без потерь и широко поддерживается. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Почему это важно:** Если опустить `setMultipage(true)`, библиотека создаст одностраничный TIFF, отбрасывая дополнительные страницы, которые могли бы быть получены из SVG (например, когда SVG содержит несколько корневых элементов ``). LZW сохраняет размер файла приемлемым без потери качества изображения — идеально для архивных или печатных конвейеров. + +## Шаг 3 – Выполнение конвертации (how to convert svg to tiff) + +Теперь происходит основная работа. Статический метод `Converter.convertSVG` принимает загруженный документ, путь назначения и только что определённые параметры. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Почему это важно:** Вызов статического `convertSVG` — самый простой способ запустить конвертацию. Под капотом Aspose.HTML растеризует векторные данные с разрешением по умолчанию 96 dpi; при необходимости более высокого качества можно изменить DPI через `tiffOptions.setResolution(...)`. + +## Шаг 4 – Проверка результата + +После завершения конвертации рекомендуется убедиться, что файл существует и содержит ожидаемое количество страниц. Быструю проверку можно выполнить в любом просмотрщике изображений, поддерживающем многостраничные TIFF (например, IrfanView, XnView или даже в Java через `ImageIO`). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Запустите программу: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Вы должны увидеть сообщение в консоли, подтверждающее успех, а открытие `output.tiff` покажет одну страницу на каждый корневой элемент SVG (или одну страницу, если в SVG только один холст). + +## Распространённые проблемы и профессиональные советы + +| Проблема | Почему происходит | Как исправить | +|----------|-------------------|---------------| +| **Отсутствуют шрифты** | SVG ссылается на системные шрифты, которые не установлены на сервере. | Встроить шрифты в SVG или использовать `FontSettings` в Aspose.HTML для указания пользовательской папки со шрифтами. | +| **Большой размер файла** | Растеризация с высоким разрешением может сильно увеличить размер TIFF. | Понизить DPI через `tiffOptions.setResolution(150)` или временно переключиться на `Compression.NONE` только для отладки. | +| **Не генерируются несколько страниц** | В SVG только один элемент ``. | Разделить исходный файл на отдельные SVG‑файлы или обернуть каждую логическую страницу в отдельный тег `` перед конвертацией. | +| **Не поддерживаются некоторые возможности SVG** | Некоторые фильтры или анимации не рендерятся. | Упростить SVG или предварительно обработать его в Inkscape, чтобы «сплющить» фильтры. | + +**Профессиональный совет:** Если нужен определённый порядок страниц, переименуйте SVG‑файлы в `page1.svg`, `page2.svg` и т.д., а затем перебирайте их, добавляя каждый результат конвертации в один TIFF с помощью `tiffOptions.setMultipage(true)` при каждом вызове. + +## Полный рабочий пример + +Ниже представлен полностью самодостаточный Java‑класс, который можно скопировать в файл `SvgToMultipageTiff.java`. Он включает импорт, комментарии и обработку ошибок, пригодную для продакшн‑использования. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Запуск кода создаёт TIFF, где каждый корневой элемент SVG становится отдельной страницей — именно то, что нужно, когда вы хотите **создать многостраничный TIFF** для печати или архивирования. + +## Заключение + +Мы только что показали, как **создать многостраничный TIFF** из SVG с помощью Java и Aspose.HTML. В руководстве рассматривалась загрузка SVG (`load svg document java`), настройка параметров конвертации, выполнение конвертации (`how to convert svg to tiff`) и проверка результата. Имея полный исходный код, вы можете адаптировать решение для пакетной обработки десятков SVG, менять настройки DPI или интегрировать логику в более крупный конвейер генерации документов. + +Готовы к следующему вызову? Попробуйте конвертировать папку SVG‑файлов в один многостраничный TIFF, поэкспериментировать с различными схемами компрессии или вывести PDF, заменив `TiffConversionOptions` на `PdfConversionOptions`. Принципы одинаковы, так что вы легко сможете расширить этот паттерн на другие форматы. + +Есть вопросы или столкнулись с необычным случаем SVG? Оставляйте комментарий ниже, и счастливого кодинга! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/html5-canvas-rendering/_index.md b/html/russian/java/html5-canvas-rendering/_index.md index a3b5d7c4d..93a9ad9a3 100644 --- a/html/russian/java/html5-canvas-rendering/_index.md +++ b/html/russian/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ url: /ru/java/html5-canvas-rendering/ Создавайте и визуализируйте HTML5 Canvas с помощью Aspose.HTML для Java. Изучите пошаговое руководство по рисованию, стилю и экспорту в PDF с помощью этой мощной библиотеки Java. ### [Освоение HTML5 Canvas с Aspose.HTML для Java](./html5-canvas/) Узнайте, как создать и преобразовать HTML5 Canvas в PDF с помощью Aspose.HTML для Java. Это руководство идеально подходит для разработчиков, желающих улучшить свои веб-проекты. +### [Как эмулировать iPhone – Полное руководство с Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Узнайте, как эмулировать iPhone при рендеринге HTML с помощью Aspose.HTML, включая настройку пользовательского агента и создание скриншотов. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/russian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/russian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..07f9e7243 --- /dev/null +++ b/html/russian/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Узнайте, как эмулировать iPhone в Java с помощью Aspose.HTML. Включает + шаги по настройке пользовательского User-Agent и коэффициента пикселей устройства + для точного мобильного рендеринга. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: ru +og_description: Как эмулировать iPhone в Java? Этот учебник показывает, как установить + пользовательский user agent и коэффициент пикселей устройства с помощью Aspose.HTML, + обеспечивая пиксель‑идеальные мобильные страницы. +og_title: Как эмулировать iPhone – пошаговое руководство Aspose.HTML +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Как эмулировать iPhone – Полное руководство с Aspose.HTML +url: /ru/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Как эмулировать iPhone – Полное руководство с Aspose.HTML + +Когда‑то задавались вопросом **как эмулировать iPhone** при локальном тестировании веб‑страницы? Возможно, вы отлаживаете адаптивный макет, а настольный браузер просто не подходит. Хорошая новость: вам не нужен физический девайс — `DocumentSandbox` из Aspose.HTML позволяет имитировать экран iPhone, user‑agent и device‑pixel‑ratio (DPR) всего несколькими строками Java. + +В этом руководстве мы пройдём пошагово все действия по установке **пользовательского user‑agent**, настройке **device pixel ratio** и проверке, что всё работает как надо. К концу вы получите переиспользуемый sandbox, который рендерит страницы точно так же, как iPhone 8, и поймёте, зачем нужна каждая настройка. + +## Что вы получите + +- Создадите объект `Screen`, отражающий размеры iPhone и его DPR. +- Примените **пользовательскую строку user‑agent**, чтобы серверы думали, что запрос пришёл из Safari на iOS. +- Сформируете `DocumentSandbox`, связывающий экран и user‑agent. +- Запустите `HTMLDocument` внутри sandbox и увидите вывод в консоли, подтверждающий конфигурацию. + +Никаких внешних библиотек, кроме Aspose.HTML, не требуется, а код работает в любой среде Java 17+. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## Как эмулировать iPhone с помощью Aspose.HTML Sandbox + +Первое, что нам нужно, — это `Screen`, отражающий физические размеры iPhone *и* его плотность пикселей. Это ядро **как эмулировать iPhone** точно. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Почему это важно:** +- Ширина = 375 px и высота = 667 px — это CSS‑размеры, которые вы увидите в Chrome DevTools, выбирая iPhone 8. +- Установка DPR = 2 заставляет движок рендеринга рассматривать каждый CSS‑пиксель как два физических пикселя, обеспечивая чёткий текст и изображения — как на реальном устройстве. + +> *Совет:* Если нужно эмулировать более новый iPhone (например, iPhone 13), просто замените числа на 390 × 844 и DPR = 3. + +## Установка пользовательского User Agent (set custom user agent) + +Далее нам необходимо **установить пользовательский user‑agent**, чтобы сервер отдавал мобильный HTML/CSS. Без этого многие сайты всё равно будут думать, что вы на десктопе. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Как это работает:** +- Заголовок `User-Agent` — это «рукопожатие», которое браузеры используют для объявления себя. +- Указав точную строку, которую отправляет Safari на iOS 16, вы гарантируете, что сервер вернёт мобильные оптимизированные ресурсы (адаптивные изображения, скрипты и т.д.). + +Если когда‑нибудь понадобится **как установить user‑agent** для другого устройства, просто замените строку на соответствующее значение — Google Chrome, Firefox или даже кастомный бот. + +## Настройка Device Pixel Ratio (set device pixel ratio) + +Теперь мы действительно **устанавливаем device pixel ratio** внутри sandbox. Это шаг, который напрямую отвечает на вопрос «**как установить dpr**» для симулированной среды. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Пояснение:** +- Паттерн `Builder` позволяет плавно добавить как экран (который несёт DPR), так и user‑agent. +- Когда sandbox рендерит `HTMLDocument`, он будет вести себя так, как будто запущен на устройстве с точно такой плотностью пикселей. + +> *Зачем это нужно:* Некоторые CSS‑медиа‑запросы используют `device-pixel-ratio` (например, `@media (-webkit-min-device-pixel-ratio: 2)`). Если DPR не задать, эти правила никогда не сработают, и вы упустите ресурсы высокого разрешения. + +## Проверка конфигурации sandbox (how to set user-agent) + +Запустим sandbox. Ниже приведён фрагмент, который создаёт `HTMLDocument`, загружает страницу и выводит подтверждение, что sandbox активен. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Ожидаемый вывод в консоль** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Если при запуске программы вы видите эту строку, вы успешно **как эмулировать iPhone** с правильными DPR и user‑agent. Откройте страницу в реальном браузере и проверьте размеры viewport — вы увидите, что они совпадают с заданными значениями iPhone. + +## Распространённые подводные камни и как правильно установить DPR (how to set dpr) + +Даже при правильном коде могут возникнуть небольшие ловушки: + +| Проблема | Почему происходит | Решение | +|----------|-------------------|---------| +| **DPR остаётся 1** | Вы передали `Screen` без третьего аргумента (DPR). | Всегда используйте `new Screen(width, height, dpr)`. | +| **User‑Agent игнорируется** | Sandbox не был привязан к `HTMLDocument`. | Передайте `documentSandbox` вторым аргументом в конструктор `HTMLDocument`. | +| **Неправильные размеры** | Используются пиксели устройства вместо CSS‑пикселей. | Помните: ширина/высота — это **CSS‑пиксели**, а не аппаратные. | +| **Сервер всё равно отдает десктопный CSS** | Некоторые сайты определяют устройство через JavaScript, а не только заголовок. | При необходимости также внедрите мета‑тег viewport. | + +Держите эти нюансы в голове, и вы почти никогда не столкнётесь с ситуацией, когда эмуляция работает некорректно. + +## Расширение sandbox — следующие шаги + +Теперь, когда вы знаете **как установить пользовательский user‑agent** и **как установить dpr**, можно экспериментировать дальше: + +- **Изменить размер экрана**, чтобы эмулировать планшеты или более крупные телефоны. +- **Сменить user‑agent**, чтобы протестировать Chrome на Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Добавить cookies или заголовки** через метод `setHeaders` sandbox’а для тестов с аутентификацией. +- **Сделать скриншот** с помощью `HTMLDocument.renderToFile("output.png")`, чтобы автоматически сравнивать визуальные различия. + +Эти расширения позволяют построить полноценный тестовый стенд без выхода из IDE. + +--- + +## Заключение + +Мы рассмотрели **как эмулировать iPhone** с помощью `DocumentSandbox` из Aspose.HTML, показали, как **установить пользовательский user‑agent**, **установить device pixel ratio**, а также обсудили тонкости между «**как установить user‑agent**» и «**как установить dpr**». Полный, готовый к запуску пример демонстрирует каждый элемент в одном месте, так что вы можете копировать‑вставлять, менять и сразу начинать тестировать мобильные макеты. + +Попробуйте — измените размеры экрана, поиграйте с разными user‑agent’ами и посмотрите, как реагируют ваши страницы. Овладев этими настройками, отладка адаптивного дизайна станет простой задачей, а вы сэкономите кучу часов, гоняясь за багами на реальных устройствах. + +Есть вопросы или хотите поделиться своими вариантами? Оставляйте комментарий ниже, и удачной эмуляции! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/advanced-usage/_index.md b/html/spanish/java/advanced-usage/_index.md index 5695d6568..047e26dfd 100644 --- a/html/spanish/java/advanced-usage/_index.md +++ b/html/spanish/java/advanced-usage/_index.md @@ -127,6 +127,9 @@ Aprende a ajustar el tamaño de página PDF con Aspose.HTML para Java. Crea PDFs ### [Ajustar tamaño de página XPS con Aspose.HTML para Java](./adjust-xps-page-size/) Aprende a ajustar el tamaño de página XPS con Aspose.HTML para Java. Controla fácilmente las dimensiones de salida de tus documentos XPS. ### [Cómo ejecutar JavaScript en Java – Guía completa](./how-to-run-javascript-in-java-complete-guide/) +Aprende a ejecutar JavaScript dentro de aplicaciones Java, cubriendo configuraciones y mejores prácticas. +### [Ejemplo de top‑level await – Uso de await delay en JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Aprende a usar top‑level await y a aplicar retrasos con await en JavaScript. --- diff --git a/html/spanish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/spanish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..7fa1a4829 --- /dev/null +++ b/html/spanish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,172 @@ +--- +category: general +date: 2026-03-26 +description: Ejemplo de top‑level await que muestra await delay en JavaScript, clase + de contador incremental y campos de clase públicos en JavaScript en una demo en + vivo. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: es +og_description: Ejemplo de top‑level await que muestra await delay en JavaScript, + una clase de contador incremental y campos de clase públicos en JavaScript en un + tutorial conciso. +og_title: Ejemplo de await de nivel superior – Usando await delay en JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Ejemplo de await de nivel superior – Usando await delay en JavaScript +url: /es/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ejemplo de top level await – Usando await delay en JavaScript + +¿Alguna vez te has preguntado cómo pausar la ejecución de un módulo sin envolver todo en una IIFE async? Eso es exactamente lo que permite un **ejemplo de top level await**. En este tutorial recorreremos una pequeña página web que usa `await delay javascript` para diferir el trabajo, y luego crea una `increment counter class` que aprovecha **public class fields javascript**. Al final tendrás un fragmento completo, listo para copiar y pegar, que se ejecuta en cualquier navegador moderno. + +Cubriremos todo, desde definir una clase con un campo público hasta conectar un sencillo helper de retraso basado en promesas. Sin bibliotecas externas, sin paso de compilación—solo HTML puro, un ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Salida esperada en la consola + +``` +Counter class initialized +Final count: 1 +``` + +Si abres la página en DevTools, deberías ver el mensaje del bloque estático aparecer **antes** de que finalice el retraso, confirmando que la clase se evaluó primero. + +## Paso 5 – ¿Por qué usar campos públicos de clase en lugar de un constructor? + +Podrías preguntarte por qué no escribimos: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Ambos enfoques funcionan, pero **public class fields javascript** te brindan una sintaxis más limpia y declarativa. El campo se define una sola vez, no dentro de cada llamada al constructor, lo que puede ser más fácil de leer cuando la clase crece. Además, los bloques estáticos no pueden colocarse dentro de un constructor, por lo que separar la lógica de inicialización se vuelve más natural. + +## Paso 6 – Adaptar el ejemplo para aplicaciones del mundo real + +En producción a menudo necesitarás más que un solo contador. Aquí tienes algunas ideas rápidas: + +- **Múltiples contadores:** Almacénalos en un `Map` indexado por identificador. +- **Estado persistente:** Reemplaza `console.log` con escrituras en `localStorage`. +- **Inicialización async:** Usa el bloque estático para obtener la configuración de un servidor antes de crear cualquier instancia. + +Todos estos patrones siguen beneficiándose de top‑level await, porque puedes obtener datos una vez al cargar el módulo y garantizar que estén listos para cada consumidor. + +## Preguntas frecuentes + +**P: ¿El top‑level await bloquea otros módulos?** +R: No. Cada módulo se ejecuta de forma independiente. Sólo el módulo que contiene el await se pausa; los demás módulos continúan cargándose en paralelo. + +**P: ¿Qué pasa si la promesa de retraso se rechaza?** +R: Un rechazo no manejado abortará la evaluación del módulo y aparecerá como un error en la consola. Envuelve el await en un `try…catch` si necesitas una solución alternativa elegante. + +**P: ¿Es necesario la palabra clave `static`?** +R: No para el contador en sí, pero el bloque estático es una forma práctica de demostrar que el código se ejecuta *una sola vez* al cargar—ideal para registro o detección de características. + +## Conclusión + +Acabas de crear un **ejemplo de top level await** que muestra `await delay javascript`, una **increment counter class**, y el poder de **public class fields javascript**. El fragmento completo y ejecutable está arriba, y la salida de la consola demuestra que el bloque estático se ejecuta antes que el código retrasado. + +Desde aquí puedes experimentar con flujos async más complejos, cambiar el retraso por una llamada real a una API, o ampliar la clase con métodos adicionales. Recuerda, el JavaScript moderno te permite tratar los módulos como entidades async de primera clase—sin envoltorios extra. + +¡Feliz codificación, y siéntete libre de compartir tus variaciones en los comentarios! Si encontraste útil esta guía, compártela con un compañero que aún esté luchando con patrones async. + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/conversion-html-to-other-formats/_index.md b/html/spanish/java/conversion-html-to-other-formats/_index.md index 5c04b8250..c9033ba66 100644 --- a/html/spanish/java/conversion-html-to-other-formats/_index.md +++ b/html/spanish/java/conversion-html-to-other-formats/_index.md @@ -84,6 +84,10 @@ En conclusión, dominar **html to pdf java** y el conjunto más amplio de conver ## Conversión - HTML a Otros Formatos Tutoriales ### [Conversión de HTML a PDF](./convert-html-to-pdf/) ### [Convertir HTML a PDF en Java – Guía paso a paso con configuración de tamaño de página](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) +### [Crear PDF de Tamaño Personalizado – Convertir HTML a PDF con Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Aprende a generar PDFs con dimensiones personalizadas al convertir HTML usando Aspose.HTML para Java. +### [Crear PDF a partir de HTML en Java – Guía de Conversión por Lotes en Paralelo](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Aprende a convertir múltiples archivos HTML a PDF simultáneamente en Java usando Aspose.HTML, optimizando rendimiento y recursos. ### [Conversión de HTML a MHTML](./convert-html-to-mhtml/) Convierte HTML a MHTML de forma sencilla con Aspose.HTML para Java. Sigue nuestra guía paso a paso para una conversión eficiente de HTML a MHTML. ### [Conversión de HTML a XPS](./convert-html-to-xps/) @@ -96,6 +100,7 @@ Aprende a convertir SVG a imágenes en Java con Aspose.HTML. Guía completa para Convierte SVG a PDF en Java con Aspose.HTML. Una solución fluida para conversiones de documentos de alta calidad. ### [Conversión de SVG a XPS](./convert-svg-to-xps/) Aprende a convertir SVG a XPS con Aspose.HTML para Java. Guía simple, paso a paso, para conversiones sin inconvenientes. +### [Convertir HTML a Markdown en Java – Conservar el Formato Original](./convert-html-to-markdown-in-java-preserve-original-formattin/) ## Preguntas Frecuentes diff --git a/html/spanish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/spanish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..b10da5628 --- /dev/null +++ b/html/spanish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-26 +description: Convertir HTML a markdown y generar un archivo markdown mientras se preserva + el formato original usando la conversión de Aspose HTML en Java. Aprende paso a + paso. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: es +og_description: Convierte HTML a markdown rápidamente, genera un archivo markdown + y conserva el formato original usando la conversión de Aspose HTML para Java. +og_title: Convertir HTML a Markdown en Java – Preservar el formato +tags: +- Aspose +- Java +- Markdown +title: Convertir HTML a Markdown en Java – Conservar el formato original +url: /es/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML a Markdown en Java – Conservar el Formato Original + +¿Alguna vez necesitaste **convertir HTML a markdown** pero temías perder el espaciado, las tablas o las etiquetas en línea? No eres el único. Muchos desarrolladores se topan con este problema cuando intentan mover contenido de una página web a un formato limpio y amigable para el control de versiones. ¿La buena noticia? Con unas pocas líneas de Java y Aspose HTML, puedes **generar un archivo markdown** que se vea exactamente como el origen, con todos los espacios en blanco. + +En esta guía recorreremos todo el proceso: cargar un archivo HTML complejo, configurar la conversión para que **conservar el formato original**, y finalmente escribir la salida en `preserved.md`. Al final tendrás un fragmento listo‑para‑ejecutar, comprenderás *por qué* cada configuración es importante y sabrás cómo adaptar el código para casos extremos como CSS personalizado o scripts incrustados. + +## Lo que necesitarás + +- Java 17 (o cualquier JDK reciente) – la API funciona con Java 8+ pero las versiones más nuevas ofrecen mejor rendimiento. +- Biblioteca Aspose HTML for Java (versión 23.11 o posterior). Puedes obtenerla de Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Un archivo HTML de ejemplo (`complex.html`) que contiene encabezados, tablas, bloques de código y quizá algo de estilo en línea ``. +- Un poco de paciencia y disposición para experimentar. + +Eso es todo. Sin herramientas externas, sin trucos de línea de comandos—solo código Java puro. + +## Paso 1: Cargar el Documento HTML de Origen + +Lo primero que hacemos es crear una instancia de `HTMLDocument` que apunte a tu archivo de origen. Aspose HTML trata el archivo como un DOM, lo que significa que puedes inspeccionarlo o modificarlo antes de la conversión si lo necesitas. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Por qué es importante:** Cargar el documento de esta manera garantiza que todos los recursos vinculados (hojas de estilo, imágenes) se resuelvan de forma relativa a la ubicación del archivo. Si omites este paso y proporcionas una cadena cruda, podrías perder CSS externo que influye en el espaciado—exactamente el tipo de cosa que deseas **conservar el formato original**. + +## Paso 2: Configurar las Opciones de Conversión a Markdown + +Aspose HTML te proporciona la clase `MarkdownConversionOptions`. La propiedad clave para nosotros es `setPreserveOriginalFormatting(true)`. Cuando está habilitada, el conversor mantiene los saltos de línea, la indentación e incluso fragmentos de HTML sin procesar que markdown no puede representar de forma nativa. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Consejo profesional:** Si más tarde descubres que algunos estilos en línea se están eliminando, también puedes llamar a `markdownOptions.setIncludeHtml(true)` para forzar que los bloques de HTML sin procesar se incluyan en la salida markdown. + +## Paso 3: Realizar la Conversión + +Ahora entregamos el `HTMLDocument`, la ruta del archivo de destino y nuestras opciones al método estático `Converter.convertHTML`. El método realiza todo el trabajo pesado en segundo plano. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Cuando la llamada finaliza, encontrarás `preserved.md` junto a tu archivo de origen. Ábrelo en cualquier editor—observa cómo los saltos de línea originales y la alineación de la tabla permanecen intactos. + +## Paso 4: Verificar el Resultado (Opcional pero Recomendado) + +Una rápida verificación de sanidad te protege de errores sutiles más adelante. Puedes leer el archivo de nuevo en Java e imprimir las primeras líneas, o simplemente abrirlo en VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Deberías ver algo como: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +La etiqueta `` sigue presente porque la sintaxis nativa de tablas de markdown no pudo capturar el estilo exacto—gracias a `preserve original formatting`. + +## Paso 5: Envolver Todo – Ejemplo Completo Ejecutable + +A continuación se muestra la clase completa, lista‑para‑ejecutar. Reemplaza `YOUR_DIRECTORY` con la ruta real en tu máquina. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Ejecuta el programa con `mvn exec:java` o tu IDE favorito, y tendrás un **generate markdown file** que refleja el diseño original del HTML. + +## Preguntas Frecuentes y Casos Extremos + +### ¿Esto funciona con archivos CSS externos? + +Sí. Mientras los archivos CSS sean accesibles mediante rutas relativas, Aspose HTML los carga automáticamente. Si estás obteniendo HTML de una URL remota, puede que necesites configurar un objeto `ResourceLoadingOptions` personalizado para permitir el acceso a la red. + +### ¿Qué pasa si no quiero HTML sin procesar en el markdown? + +Simplemente cambia la opción: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +El conversor intentará entonces traducir todo a sintaxis markdown pura, potencialmente perdiendo algo de fidelidad del diseño. + +### ¿Puedo convertir una cadena en lugar de un archivo? + +Absolutamente. Usa el constructor que acepta un `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Luego pasa `doc` a `Converter.convertHTML` como antes. + +### ¿En qué se diferencia de otras bibliotecas como Flexmark o pandoc? + +La mayoría de las herramientas de código abierto tratan el HTML como texto plano y eliminan el espacio en blanco de forma agresiva. La bandera `preserveOriginalFormatting` de Aspose HTML es una **característica propietaria** que respeta el espacio en blanco, los saltos de línea del origen y incluso mantiene etiquetas no compatibles como bloques HTML sin procesar. Por eso este tutorial enfatiza **aspose html conversion** para desarrolladores Java que necesitan una fidelidad exacta. + +## Consejos para Uso en Producción + +- **Procesamiento por lotes:** Envuelve la lógica de conversión en un bucle para manejar varios archivos HTML de una sola vez. +- **Manejo de errores:** Captura `IOException` y `com.aspose.html.exceptions.AssertionFailedException` para exponer recursos faltantes. +- **Rendimiento:** Reutiliza una única instancia de `HTMLDocument` al convertir fragmentos de un sitio grande; la biblioteca almacena en caché el CSS analizado. + +## Conclusión + +Acabamos de mostrarte cómo **convertir HTML a markdown** en Java mientras garantizamos que la salida **preserve original formatting**. El fragmento corto y autocontenido demuestra todo el flujo de trabajo—desde cargar el documento HTML hasta configurar `MarkdownConversionOptions`, realizar la conversión y verificar el resultado. Con la robusta API de Aspose HTML, ahora puedes **generate markdown file** programáticamente, ya sea que estés construyendo un generador de sitios estáticos, una canalización de documentación o una herramienta de migración de contenido. + +A continuación, podrías explorar: + +- Usar **html to markdown java** para migraciones masivas en un sitio web. +- Ajustar las opciones de conversión para generar tablas markdown al estilo de GitHub. +- Combinar este enfoque con un paso CI/CD que actualice automáticamente tu documentación cada vez que cambie el HTML de origen. + +Siéntete libre de experimentar y deja un comentario si encuentras algún problema. ¡Feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/spanish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..0d63f9a13 --- /dev/null +++ b/html/spanish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,196 @@ +--- +category: general +date: 2026-03-26 +description: Crea un PDF de tamaño personalizado a partir de HTML usando Aspose.HTML + para Java. Aprende cómo convertir HTML a PDF y establecer el tamaño de página del + PDF en solo unos pocos pasos. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: es +og_description: Crear PDF de tamaño personalizado a partir de HTML con Aspose. Esta + guía muestra cómo convertir HTML a PDF, cambiar el tamaño de página del PDF y establecer + el tamaño de página del PDF sin esfuerzo. +og_title: Crear PDF de tamaño personalizado – Guía rápida para convertir HTML a PDF +tags: +- aspose +- java +- pdf +- html +title: Crear PDF de tamaño personalizado – Convertir HTML a PDF con Aspose +url: /es/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear PDF de Tamaño Personalizado – Convertir HTML a PDF con Aspose + +¿Alguna vez necesitaste **crear PDF de tamaño personalizado** a partir de un archivo HTML? En este tutorial te mostraremos cómo **convertir HTML a PDF** y establecer el tamaño de página del PDF usando Aspose.HTML para Java. + +Si estás creando facturas, informes o libros electrónicos, obtener las dimensiones exactas de la página es importante—de lo contrario tu diseño se verá descentrado o recortado. + +Recorreremos cada paso, desde cargar el HTML de origen hasta ajustar los márgenes, y terminaremos con un PDF listo para usar. Sin referencias vagas, solo un ejemplo completo y ejecutable que puedes copiar y pegar hoy. + +## Lo que Necesitarás + +- **Java 17** (o cualquier JDK reciente). +- **Aspose.HTML for Java** JARs – puedes obtener la última versión del repositorio Maven o del sitio web de Aspose. +- Un archivo simple `input.html` colocado en una carpeta que controles. +- Un IDE o editor de texto de tu elección; normalmente codifico en IntelliJ IDEA, pero Eclipse también funciona bien. + +Tener estos requisitos previos significa que no encontrarás errores de “class not found” a mitad del proceso. + +Ahora, vamos a sumergirnos. + +![Ejemplo de creación de PDF de tamaño personalizado](/images/create-pdf-custom-size.png "Captura de pantalla que muestra un PDF generado con tamaño de página y márgenes personalizados – crear pdf tamaño personalizado") + +## Crear PDF de Tamaño Personalizado – Pasos Principales + +A continuación se muestra el programa Java completo que obtendrás. Siéntete libre de copiarlo en un archivo llamado `ConvertHtmlToPdfCustomPage.java` y ejecutarlo después de haber agregado las dependencias de Aspose a tu proyecto. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Paso 1 – Convertir HTML a PDF: Cargar el Documento + +Lo primero que hacemos es **cargar el HTML** que queremos convertir en PDF. +`HTMLDocument` lee el archivo, resuelve los enlaces relativos y construye un DOM que Aspose puede renderizar. + +> **Por qué es importante:** Si el HTML hace referencia a CSS o imágenes, Aspose las obtendrá de forma relativa a la ruta del archivo. Usar una ruta absoluta (`YOUR_DIRECTORY/input.html`) evita sorpresas de “file not found”. + +### Paso 2 – Cambiar el Tamaño de Página del PDF: Configurar Opciones + +Aquí creamos un objeto `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` indica a Aspose que use las dimensiones estándar A4 (210 × 297 mm). +- `setPageOrientation(...)` gira la página si necesitas orientación horizontal. +- `setMargins(new Margin(20, 20, 20, 20))` otorga un margen de 20 puntos en cada lado. + +Puedes reemplazar `PageSize.A4` con `PageSize.LETTER` o incluso un **tamaño personalizado** pasando un objeto `SizeF`, por ejemplo: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Consejo profesional:** Un punto equivale a 1/72 pulgada. Si piensas en milímetros, multiplica por 2.83465 para obtener puntos. + +### Paso 3 – Generar PDF a partir de HTML: Ejecutar la Conversión + +`Converter.convertHTML` realiza el trabajo pesado. Toma el `HTMLDocument` cargado, la ruta de salida y las opciones que acabamos de configurar. + +Si deseas **establecer el tamaño de página del PDF** de forma dinámica según el contenido, podrías calcular las dimensiones requeridas antes de este paso y ajustar `pdfOptions` en consecuencia. + +### Paso 4 – Verificar el Resultado + +La línea `System.out.println` es opcional, pero brinda una respuesta rápida cuando ejecutas el programa desde una consola. Después de la ejecución, abre `custom_page.pdf` – deberías ver un PDF en formato retrato A4 con márgenes uniformes de 20 puntos, exactamente como especificamos. + +## Convertir HTML a PDF – Variaciones Comunes + +### Usar un Stream en Lugar de una Ruta de Archivo + +A veces no tienes un archivo físico; tal vez el HTML provenga de una base de datos o una API. En ese caso, envuelve la cadena en un `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +El segundo argumento es la URL base para resolver recursos relativos. + +### Cambiar la Orientación de la Página + +Si tu informe es ancho, cambia a orientación horizontal: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Ajuste Fino de los Márgenes + +Los márgenes aceptan valores de punto flotante, por lo que puedes establecer 0.5 pt para un borde ultra fino: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Manejo de Archivos HTML Grandes + +Para documentos masivos, considera habilitar **streaming de memoria eficiente**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Esto indica a Aspose que escriba datos intermedios en archivos temporales en lugar de mantener todo en RAM. + +## Establecer Tamaño de Página PDF – Casos Límite y Trampas + +- **Fuentes faltantes:** Si tu HTML usa una fuente personalizada que no está instalada en el servidor, el PDF recurrirá a una predeterminada. Inserta la fuente con `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Escalado de imágenes:** Las imágenes de alta resolución pueden inflar el PDF. Usa `pdfOptions.setImageResolution(150);` para reducir la escala manteniendo la calidad. +- **Compatibilidad CSS:** No todas las propiedades CSS son totalmente compatibles. Mantente con técnicas de diseño estándar (flexbox funciona, pero grid puede tener peculiaridades). +- **Permisos de ruta:** Asegúrate de que el proceso tenga acceso de escritura a `YOUR_DIRECTORY`. De lo contrario, se lanzará `IOException`. + +## Salida Esperada + +Ejecutar el programa produce un PDF que se ve así (ilustración conceptual): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Tamaño de página: **A4** (210 × 297 mm). +- Orientación: **Retrato**. +- Márgenes: **20 pt** en cada lado. + +Abre el archivo con cualquier visor de PDF (Adobe Reader, Chrome, etc.) para confirmar. + +## Conclusión + +Ahora sabes cómo **crear PDF de tamaño personalizado** a partir de una fuente HTML usando Aspose.HTML para Java. El tutorial cubrió todo el proceso: **convertir HTML a PDF**, **cambiar el tamaño de página del PDF**, **establecer el tamaño de página del PDF**, y **generar PDF a partir de HTML** con márgenes personalizados. + +Siéntete libre de experimentar—cambia `PageSize.LETTER` por tamaño legal, ajusta los márgenes o inserta tus propias fuentes. A continuación, podrías explorar **añadir marcas de agua**, **encriptar el PDF**, o **procesar por lotes varios archivos HTML**. Todos esos temas se basan en los mismos conceptos centrales que acabamos de cubrir. + +¿Tienes una pregunta sobre un caso límite específico? Deja un comentario abajo, y te ayudaré a resolverlo. ¡Feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/spanish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..d0f438926 --- /dev/null +++ b/html/spanish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,240 @@ +--- +category: general +date: 2026-03-26 +description: Crea PDF a partir de HTML rápidamente con un pool de hilos fijo. Aprende + a convertir HTML a PDF por lotes y ejecuta tareas paralelas en Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: es +og_description: Crea PDF a partir de HTML rápidamente con un pool de hilos fijo. Aprende + a procesar HTML a PDF por lotes y ejecutar tareas en paralelo en Java. +og_title: Crear PDF a partir de HTML en Java – Guía de conversión por lotes en paralelo +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Crear PDF a partir de HTML en Java – Guía de conversión por lotes en paralelo +url: /es/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear PDF a partir de HTML en Java – Guía de Conversión por Lotes en Paralelo + +¿Alguna vez necesitaste **crear PDF a partir de HTML** pero te sentiste atascado viendo cómo una conversión de un solo hilo avanza a paso de tortuga? No eres el único. En muchos proyectos del mundo real recibimos docenas de informes HTML que deben convertirse en PDF antes de que termine el día, y hacerlo uno por uno simplemente no es práctico. + +Por eso este tutorial te muestra **cómo convertir HTML a PDF** usando un **pool de hilos fijo**, permitiéndote **procesar HTML a PDF por lotes** y **ejecutar tareas en paralelo** sin sudar. Al final tendrás un programa completo, listo‑para‑ejecutar, que transforma una carpeta de archivos HTML en PDFs en una fracción del tiempo. + +## Lo que aprenderás + +* La dependencia exacta de Maven/Gradle para Aspose.HTML (la biblioteca que realiza el trabajo pesado). +* Por qué un **pool de hilos fijo** es el punto óptimo para trabajos de conversión intensivos en CPU. +* Cómo listar tus archivos fuente para que el proceso pueda escalar a cientos de documentos. +* El código exacto que pegas en tu IDE—sin importaciones faltantes, sin comentarios “TODO”. +* Consejos para manejar errores, ajustar el tamaño del pool y verificar la salida. + +No se requiere conocimiento previo de Aspose.HTML, solo una configuración básica de Java y ganas de experimentar. ¡Comencemos! + +--- + +![Diagrama que muestra un pool de hilos fijo convirtiendo múltiples archivos HTML a PDF en paralelo – crear pdf desde html](/images/create-pdf-from-html-parallel.png) + +*Texto alternativo de la imagen: crear pdf desde html – diagrama de conversión paralela* + +## Paso 1: Prepara tu proyecto y agrega Aspose.HTML + +Primero lo primero—tu proyecto necesita la biblioteca Aspose.HTML. Si usas Maven, agrega esto a tu `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Para Gradle, es simplemente: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +¿Por qué Aspose.HTML? Es una biblioteca comercial, pero ofrece una API **convert html to pdf** que maneja CSS, JavaScript y diseños complejos de forma nativa. Si prefieres una alternativa de código abierto, puedes cambiar la llamada `Converter.convertHTML` más adelante, pero la lógica de hilos sigue siendo la misma. + +> **Consejo profesional:** Mantén el número de versión sincronizado con las notas de la versión oficial; las versiones más recientes suelen mejorar la velocidad de renderizado, lo cual es importante cuando ejecutas muchas tareas en paralelo. + +## Paso 2: Construye un pool de hilos fijo para la conversión paralela + +Cuando tienes un lote de archivos, no quieres crear un número ilimitado de hilos—tu SO empezará a sobrecargarse. Un **pool de hilos fijo** te brinda una cantidad predecible de concurrencia mientras mantiene bajo control el uso de memoria. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +¿Por qué cuatro? En una máquina típica de 8 núcleos, la mitad de los núcleos pueden quedar libres para I/O y el SO. Puedes experimentar: `Runtime.getRuntime().availableProcessors()` devuelve el número de núcleos, y una regla práctica es `cores / 2`. Recuerda, cada conversión es intensiva en CPU, así que más hilos que núcleos generalmente empeora el rendimiento. + +## Paso 3: Reúne los archivos HTML que deseas convertir + +La siguiente pieza del rompecabezas es la lista **batch html to pdf**. Puedes codificar un arreglo (como en el ejemplo) o escanear un directorio. Aquí tienes una versión flexible que lee cada archivo `.html` de una carpeta: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Este enfoque permite que simplemente sueltes nuevos archivos en la carpeta y el programa los detecte automáticamente—perfecto para un trabajo por lotes nocturno. + +## Paso 4: Envía una tarea de conversión para cada archivo (Ejecuta tareas en paralelo) + +Ahora la parte divertida: cada archivo se convierte en un **Runnable** (o `Callable`) que el pool ejecuta. El código a continuación replica el ejemplo original pero agrega manejo de errores y un pequeño mensaje de registro. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**¿Por qué envolver la conversión en un try‑catch?** Cuando **ejecutas tareas en paralelo**, un solo archivo HTML mal formado podría derribar todo el ejecutor. Al capturar excepciones localmente aseguramos que el resto del lote siga avanzando. + +## Paso 5: Cierra el ejecutor y espera a que termine + +Después de enviar todos los trabajos, debes indicar al pool que deje de aceptar nuevo trabajo y luego esperar hasta que todo finalice. Esto garantiza que la JVM no se cierre prematuramente. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Si tienes una carpeta masiva (miles de archivos) podrías aumentar el tiempo de espera o implementar un monitor de progreso. La clave es **cerrar de forma elegante**—esto es la seña de identidad de un código listo para producción. + +## Ejemplo completo y funcional + +Juntando todo, aquí tienes una clase autónoma que puedes copiar‑pegar en `src/main/java` y ejecutar: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Salida esperada** (ejemplo): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Si abres los archivos `.pdf` generados verás que se conserva el diseño original del HTML—fuentes, tablas e incluso contenido básico impulsado por JavaScript se renderizan correctamente. + +## Preguntas frecuentes y casos límite + +| Pregunta | Respuesta | +|---------- + + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/conversion-html-to-various-image-formats/_index.md b/html/spanish/java/conversion-html-to-various-image-formats/_index.md index ab22c6c57..975655dc6 100644 --- a/html/spanish/java/conversion-html-to-various-image-formats/_index.md +++ b/html/spanish/java/conversion-html-to-various-image-formats/_index.md @@ -92,8 +92,10 @@ Aprenda a convertir HTML a JPEG con Aspose.HTML for Java. Guía paso a paso para Aprenda cómo convertir HTML a imágenes PNG en Java con Aspose.HTML. Una guía completa con instrucciones paso a paso. ### [Converting HTML to TIFF](./convert-html-to-tiff/) Aprenda a convertir HTML a TIFF fácilmente usando Aspose.HTML for Java. Guía paso a paso para un manejo eficiente de documentos. -### [Convertir HTML a WebP – Guía completa de Java con Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) -Aprenda a convertir HTML a WebP en Java usando Aspose.HTML. Guía paso a paso para una conversión eficiente y de alta calidad. +### [Crear TIFF multipágina a partir de SVG en Java – Guía paso a paso](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Aprenda a generar archivos TIFF multipágina desde SVG usando Aspose.HTML for Java con instrucciones detalladas paso a paso. +### [Convertir HTML a WebP – Guía completa de Java con Aspose.HTML](./convert-html-to-webp-complete-java-guide/) +Aprende a convertir HTML a WebP en Java usando Aspose.HTML. Guía paso a paso para una conversión eficiente y de alta calidad. ## Preguntas frecuentes diff --git a/html/spanish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/spanish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..02042cd4c --- /dev/null +++ b/html/spanish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,223 @@ +--- +category: general +date: 2026-03-26 +description: Convierte HTML a WebP rápidamente con Aspose.HTML. Aprende cómo guardar + HTML como WebP, renderizar HTML como WebP y generar WebP a partir de HTML en solo + unos pocos pasos. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: es +og_description: Convierta HTML a WebP rápidamente con Aspose.HTML. Este tutorial muestra + cómo renderizar HTML como WebP y generar WebP a partir de HTML en Java. +og_title: Convertir HTML a WebP – Guía completa de Java +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Convertir HTML a WebP – Guía completa de Java +url: /es/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML a WebP – Guía completa de Java + +¿Alguna vez necesitaste **convertir HTML a WebP** pero no estabas seguro de qué biblioteca podría manejar la tarea sin complicaciones? No estás solo. Muchos desarrolladores se topan con este problema al intentar servir imágenes ligeras generadas a partir de páginas dinámicas. ¿La buena noticia? Con Aspose.HTML for Java puedes *guardar HTML como WebP* con una única llamada a método, y todo el proceso es tan suave como la mantequilla. + +En este tutorial repasaremos todo lo que necesitas saber: desde configurar la dependencia de Aspose.HTML, ajustar las opciones de compresión y, finalmente, renderizar el documento HTML como un archivo WebP que puedes servir en la web. Al final podrás **renderizar HTML como WebP**, **generar WebP a partir de HTML**, y comprender el “por qué” de cada opción de configuración. Sin scripts externos, sin trucos de línea de comandos, solo código Java limpio. + +## Requisitos previos + +- Java 8 o superior instalado (la biblioteca soporta JDK 8+). +- Maven o Gradle para la gestión de dependencias (mostraremos el fragmento de Maven). +- Un archivo HTML sencillo (`input.html`) que deseas convertir en una imagen WebP. +- Un IDE o editor de texto de tu elección—IntelliJ IDEA funciona muy bien, pero cualquiera sirve. + +¿Tienes todo eso? Genial, comencemos. + +## Paso 1: Añadir Aspose.HTML a tu proyecto + +Primero, necesitas la biblioteca Aspose.HTML en el classpath. Si usas Maven, agrega esto a tu `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Para Gradle, se ve así: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +¿Por qué es crucial este paso? Sin el JAR, ninguna de las clases `HTMLDocument`, `Converter` o `WebpConversionOptions` existe, y el compilador lanzará una `ClassNotFoundException`. Añadir la dependencia también incluye los binarios nativos necesarios para la codificación WebP, por lo que no tendrás que buscar DLLs externas o archivos `.so`. + +> **Consejo profesional:** Mantén tus dependencias actualizadas. Las versiones más recientes de Aspose suelen mejorar los algoritmos de compresión WebP y añaden soporte para nuevas características de HTML5. + +## Paso 2: Cargar el documento HTML fuente + +Ahora que la biblioteca está lista, podemos cargar el HTML que deseas convertir. La clase `HTMLDocument` analiza el archivo y construye un DOM, que el convertidor renderiza después. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Observa el comentario “Load the source HTML document” – es un recordatorio de que también puedes inyectar CSS o JavaScript antes de la conversión si tu página depende de estilos dinámicos. Si omites este paso, el convertidor no tendría nada que renderizar, lo que resultaría en una imagen en blanco. + +## Paso 3: Configurar las opciones de conversión WebP + +Aspose.HTML te brinda un control granular sobre la salida. Para la mayoría de los casos, un WebP **con pérdida** con una configuración de calidad alrededor de 85 ofrece un buen equilibrio entre fidelidad visual y tamaño de archivo. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +¿Por qué elegir con pérdida? El modo con pérdida de WebP usa codificación predictiva, lo que puede reducir los archivos entre un 30‑50 % comparado con PNG mientras preserva la mayor parte del detalle visual. Si necesitas resultados píxel‑perfectos (p. ej., para logotipos), cambia `CompressionMode` a `Lossless` y eleva `quality` a 100. + +## Paso 4: Convertir y guardar la imagen WebP + +Con el documento y las opciones listos, la conversión en sí es una sola línea. El método estático `Converter.convertHTML` realiza todo el trabajo pesado: renderiza el DOM en un bitmap, lo codifica como WebP y escribe el archivo en disco. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +¡Eso es todo! Después de que el programa termine, encontrarás `output.webp` junto a tu HTML fuente. Ahora puedes servirlo directamente desde un servidor web, incrustarlo en un elemento ``, o usarlo en cualquier contexto que soporte WebP. + +## Paso 5: Verificar el resultado (Opcional pero recomendado) + +Siempre es buena idea verificar que la conversión haya tenido éxito y que la imagen se vea como se espera. Puedes abrir el archivo WebP en Chrome, Firefox o cualquier visor de imágenes que soporte el formato. Para una verificación programática rápida, podrías leer el tamaño del archivo y sus dimensiones: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Si el archivo es inesperadamente grande o las dimensiones están incorrectas, vuelve a **Paso 3** y ajusta `quality` o la configuración del viewport del HTML fuente. Recuerda que WebP respeta los CSS `width`/`height` del elemento raíz, por lo que una etiqueta `` ausente puede producir resultados inesperados. + +## Ejemplo completo y funcional + +Juntando todo, aquí tienes la clase Java completa, lista para ejecutar: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Guarda este archivo como `HtmlToWebp.java`, reemplaza `YOUR_DIRECTORY` con la ruta real de la carpeta, compila con `javac` y ejecuta con `java HtmlToWebp`. Deberías ver en la consola la salida que confirma el tamaño y las dimensiones del archivo, seguida del mensaje final de éxito. + +![ejemplo de conversión de html a webp](/images/convert-html-to-webp.png "Captura de pantalla de una imagen WebP generada a partir de HTML – convertir html a webp") + +## Preguntas frecuentes y casos límite + +### ¿Qué pasa si mi HTML hace referencia a recursos externos (CSS, imágenes)? + +Aspose.HTML resuelve automáticamente las URLs relativas basándose en la ubicación de `input.html`. Simplemente asegúrate de que los recursos sean accesibles desde el sistema de archivos o un servidor web. Si necesitas inyectar una URL base personalizada, usa el constructor sobrecargado de `HTMLDocument` que acepta una base `URI`. + +### ¿Puedo generar múltiples imágenes WebP a partir del mismo HTML (p. ej., diferentes tamaños de viewport)? + +Absolutamente. Envuelve la lógica de conversión en un bucle, ajusta `webpOptions.setWidth()` y `setHeight()` antes de cada llamada, y asigna a cada salida un nombre de archivo único. Esto es útil para diseño responsivo donde sirves diferentes tamaños de imagen a móvil y escritorio. + +### ¿Cómo cambio a compresión sin pérdida? + +Replace the line: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +with: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +La compresión sin pérdida garantiza una fidelidad píxel‑perfecta pero genera archivos más grandes—úsala solo cuando sea necesario. + +### ¿Esto funciona en Linux/macOS? + +Sí. El JAR de Aspose.HTML incluye binarios nativos para Windows, Linux y macOS, por lo que el mismo código Java se ejecuta en cualquier plataforma. Solo asegúrate de tener la JRE adecuada instalada. + +## Conclusión + +Acabas de aprender **cómo convertir HTML a WebP** usando Aspose.HTML para Java, cubriendo todo desde la configuración de dependencias hasta el ajuste fino de la compresión y la verificación del resultado. Con este conocimiento puedes **guardar HTML como WebP**, **renderizar HTML como WebP**, y **generar WebP a partir de HTML** al vuelo—perfecto para pipelines de imágenes dinámicas, boletines de correo electrónico o cualquier escenario donde importen los visuales ligeros. + +¿Qué sigue? Prueba a experimentar con diferentes valores de `quality`, explora el modo `Lossless`, o integra este convertidor en un endpoint REST de Spring Boot para que tu servicio web devuelva imágenes WebP bajo demanda. También podrías procesar por lotes una carpeta de archivos HTML, o combinarlo con Chrome sin cabeza para conversiones de SVG a WebP. + +¿Tienes más preguntas sobre **cómo convertir HTML** en otros lenguajes, o necesitas ayuda para solucionar un caso límite específico? Deja un comentario abajo, ¡y feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/spanish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..42035af54 --- /dev/null +++ b/html/spanish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Crear TIFF multipágina a partir de SVG en Java con Aspose.HTML. Aprende + cómo convertir SVG a TIFF, cargar un documento SVG en Java y crear archivos TIFF + multipágina. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: es +og_description: Crear TIFF multipágina a partir de SVG en Java. Este tutorial muestra + cómo cargar un documento SVG, configurar las opciones de TIFF y generar un TIFF + multipágina sin pérdida. +og_title: Crear TIFF multipágina a partir de SVG en Java – Guía completa +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Crear TIFF multipágina a partir de SVG en Java – Guía paso a paso +url: /es/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Crear tiff multipágina a partir de SVG en Java – Guía paso a paso + +¿Alguna vez necesitaste **crear tiff multipágina** a partir de un SVG pero no sabías por dónde empezar? No estás solo: muchos desarrolladores se encuentran con este mismo obstáculo cuando necesitan un documento imprimible y sin pérdidas que abarque varias páginas. En esta guía recorreremos una solución completa, lista para ejecutar, que muestra **cómo convertir SVG a TIFF**, cargar el documento SVG en Java y configurar la salida para que puedas **crear archivos tiff multipágina** con compresión LZW. + +Cubriremos todo, desde la configuración de la biblioteca Aspose.HTML hasta el manejo de casos extremos como activos SVG de gran tamaño. Al final del tutorial tendrás una única clase Java que podrás incorporar a cualquier proyecto y comenzar a generar TIFF multipágina al instante. + +## Lo que necesitarás + +- **Java Development Kit (JDK) 8+** – el código usa APIs estándar de Java. +- **Aspose.HTML for Java** (versión 23.5 o posterior) – esta es la única dependencia de terceros. +- Un **archivo SVG de ejemplo** (cualquier gráfico vectorial servirá; lo llamaremos `input.svg`). +- Tu IDE favorito o un editor de texto simple y una terminal. + +No se requieren herramientas de compilación adicionales; el ejemplo se compila con `javac` y se ejecuta con `java`. Si prefieres Maven o Gradle, solo agrega el JAR de Aspose.HTML al classpath de tu proyecto. + +![Create multipage tiff example](create-multipage-tiff.png){alt="salida de tiff multipágina"} + +## Paso 1 – Cargar el documento SVG (load svg document java) + +Lo primero que debemos hacer es leer el SVG en un objeto `HTMLDocument`. Aspose.HTML trata los archivos SVG como documentos HTML, lo que nos brinda una API unificada para la conversión. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Por qué es importante:** Cargar el SVG como un `HTMLDocument` nos da acceso al motor de renderizado completo, garantizando que todos los estilos, fuentes e imágenes incrustadas se interpreten correctamente antes de la conversión. Omitir este paso y alimentar bytes crudos directamente al convertidor suele producir elementos faltantes o colores incorrectos. + +## Paso 2 – Configurar las opciones de TIFF (how to create multipage tiff) + +A continuación configuramos `TiffConversionOptions`. Este objeto controla todo, desde el diseño de página hasta la compresión. Para una salida verdaderamente multipágina habilitamos `setMultipage(true)`, y elegimos compresión **LZW** porque es sin pérdidas y ampliamente soportada. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Por qué es importante:** Si omites `setMultipage(true)`, la biblioteca generará un TIFF de una sola página, descartando cualquier página adicional que pudiera inferirse del SVG (por ejemplo, cuando el SVG contiene varios elementos raíz ``). LZW mantiene el tamaño del archivo razonable sin sacrificar la fidelidad de la imagen, ideal para archivado o flujos de impresión. + +## Paso 3 – Realizar la conversión (how to convert svg to tiff) + +Ahora ocurre el trabajo pesado. El método estático `Converter.convertSVG` toma el documento cargado, la ruta de destino y las opciones que acabamos de definir. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Por qué es importante:** Usar la llamada estática `convertSVG` es la forma más directa de iniciar la conversión. Internamente, Aspose.HTML rasteriza los datos vectoriales a 96 dpi por defecto; puedes ajustar la DPI mediante `tiffOptions.setResolution(...)` si se requiere mayor calidad. + +## Paso 4 – Verificar el resultado + +Una vez finalizada la conversión, es buena idea confirmar que el archivo exista y contenga el número esperado de páginas. Una comprobación rápida se puede hacer con cualquier visor de imágenes que soporte TIFF multipágina (p. ej., IrfanView, XnView o incluso `ImageIO` de Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Ejecuta el programa: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Deberías ver en la consola un mensaje que confirma el éxito, y al abrir `output.tiff` se mostrará una página por cada elemento raíz `` (o una sola página si el SVG solo tiene un lienzo). + +## Problemas comunes y consejos profesionales + +| Problema | Por qué ocurre | Cómo solucionarlo | +|----------|----------------|-------------------| +| **Fuentes faltantes** | El SVG hace referencia a fuentes del sistema que no están instaladas en el servidor. | Incrusta las fuentes en el SVG o usa `FontSettings` en Aspose.HTML para proporcionar una carpeta de fuentes personalizada. | +| **Tamaño de archivo grande** | La rasterización a alta resolución puede inflar el tamaño del TIFF. | Reduce la DPI con `tiffOptions.setResolution(150)` o cambia a `Compression.NONE` solo para depuración. | +| **No se generan varias páginas** | El SVG contiene solo un elemento ``. | Divide tu fuente en archivos SVG separados o envuelve cada página lógica en una etiqueta `` antes de la conversión. | +| **Características SVG no compatibles** | Algunos filtros o animaciones no se renderizan. | Simplifica el SVG o preprocésalo con una herramienta como Inkscape para aplanar los filtros. | + +**Consejo profesional:** Si necesitas un orden de páginas específico, renombra tus archivos SVG a `page1.svg`, `page2.svg`, etc., y recórrelos en un bucle, añadiendo cada resultado de conversión al mismo TIFF usando `tiffOptions.setMultipage(true)` en cada iteración. + +## Ejemplo completo y funcional + +A continuación se muestra la clase Java completa, autocontenida, que puedes copiar y pegar en un archivo llamado `SvgToMultipageTiff.java`. Incluye declaraciones de importación, comentarios y manejo de errores para uso en producción. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Ejecutar el código produce un TIFF donde cada raíz SVG se convierte en una página separada, exactamente lo que necesitas cuando deseas **crear tiff multipágina** para impresión o archivado. + +## Conclusión + +Acabamos de mostrarte cómo **crear tiff multipágina** a partir de un SVG usando Java y Aspose.HTML. El tutorial cubrió la carga del SVG (`load svg document java`), la configuración de las opciones de conversión, la ejecución de la conversión (`how to convert svg to tiff`) y la verificación del resultado. Con el código fuente completo, puedes adaptar la solución para procesar por lotes docenas de SVGs, ajustar la DPI o integrar la lógica en una canalización de generación de documentos más amplia. + +¿Listo para el siguiente desafío? Prueba convertir una carpeta de SVGs en un único TIFF multipágina, experimenta con diferentes esquemas de compresión o explora la salida PDF sustituyendo `TiffConversionOptions` por `PdfConversionOptions`. Los mismos principios se aplican, por lo que te resultará sencillo extender este patrón a otros formatos. + +¿Tienes preguntas o encontraste un caso límite de SVG? Deja un comentario abajo, ¡y feliz codificación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/html5-canvas-rendering/_index.md b/html/spanish/java/html5-canvas-rendering/_index.md index 5d24ba88e..9131287c7 100644 --- a/html/spanish/java/html5-canvas-rendering/_index.md +++ b/html/spanish/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ En primer lugar, hablemos del elemento Canvas de HTML5. Piense en él como un li Cree y renderice HTML5 Canvas con Aspose.HTML para Java. Aprenda paso a paso a dibujar, aplicar estilo y exportar a PDF utilizando esta potente biblioteca de Java. ### [Dominando el Canvas de HTML5 con Aspose.HTML para Java](./html5-canvas/) Aprenda a crear y convertir HTML5 Canvas a PDF con Aspose.HTML para Java. Esta guía es perfecta para desarrolladores que buscan mejorar sus proyectos web. +### [Cómo emular iPhone – Guía completa con Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Aprenda a simular la visualización de un iPhone en sus páginas HTML usando Aspose.HTML, paso a paso y con ejemplos prácticos. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/spanish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/spanish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..f0e9024b3 --- /dev/null +++ b/html/spanish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Aprende cómo emular iPhone en Java usando Aspose.HTML. Incluye pasos + para establecer un agente de usuario personalizado y configurar la relación de píxeles + del dispositivo para una renderización móvil precisa. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: es +og_description: ¿Cómo emular iPhone en Java? Este tutorial muestra cómo establecer + un agente de usuario personalizado y la relación de píxeles del dispositivo usando + Aspose.HTML, entregando páginas móviles con píxeles perfectos. +og_title: Cómo emular iPhone – Guía paso a paso de Aspose.HTML +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Cómo emular iPhone – Guía completa con Aspose.HTML +url: /es/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cómo emular iPhone – Guía completa con Aspose.HTML + +¿Alguna vez te has preguntado **cómo emular iPhone** al probar una página web localmente? Tal vez estés depurando un diseño responsivo y el navegador de escritorio simplemente no sea suficiente. La buena noticia es que no necesitas un dispositivo físico—`DocumentSandbox` de Aspose.HTML te permite imitar la pantalla, el user‑agent y el device‑pixel‑ratio (DPR) de un iPhone con unas pocas líneas de Java. + +En este tutorial recorreremos los pasos exactos para establecer un **user agent personalizado**, configurar el **device pixel ratio**, y verificar que todo funciona como se espera. Al final tendrás un sandbox reutilizable que renderiza páginas como un iPhone 8, y comprenderás por qué cada configuración es importante. + +## Lo que lograrás + +- Crear un objeto `Screen` que refleje las dimensiones y el DPR de un iPhone. +- Aplicar una cadena de **user agent personalizado** para que los servidores crean que la solicitud proviene de Safari en iOS. +- Construir un `DocumentSandbox` que una la pantalla y el user‑agent. +- Ejecutar un `HTMLDocument` dentro del sandbox y ver la salida en consola que confirma la configuración. + +No se requieren bibliotecas externas más allá de Aspose.HTML, y el código se ejecuta en cualquier entorno Java 17+. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## Cómo emular iPhone con Aspose.HTML Sandbox + +Lo primero que necesitamos es un `Screen` que refleje las dimensiones físicas del iPhone *y* su densidad de píxeles. Este es el núcleo de **cómo emular iPhone** con precisión. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Por qué es importante:** +- El ancho = 375 px y la altura = 667 px son las dimensiones en píxeles CSS que verás en Chrome DevTools al seleccionar un iPhone 8. +- Establecer el DPR a 2 indica al motor de renderizado que trate cada píxel CSS como dos píxeles físicos, proporcionando texto e imágenes nítidos—exactamente lo que hace un dispositivo real. + +> *Consejo profesional:* Si necesitas emular un iPhone más reciente (como el iPhone 13), simplemente cambia los números a 390 × 844 y DPR = 3. + +## Configurando un User Agent personalizado (set custom user agent) + +A continuación, necesitamos **establecer un user agent personalizado** para que el servidor sirva el HTML/CSS específico para móvil. Sin ello, muchos sitios seguirán pensando que estás en un escritorio. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Cómo funciona:** +- La cabecera `User-Agent` es el saludo que los navegadores usan para anunciarse. +- Al proporcionar la cadena exacta que envía Safari en iOS 16, garantizas que el servidor devuelva los recursos optimizados para móvil (imágenes responsivas, scripts adaptativos, etc.). + +Si alguna vez necesitas **cómo establecer user-agent** para un dispositivo diferente, simplemente reemplaza la cadena con el valor apropiado—Google Chrome, Firefox, o incluso un bot personalizado. + +## Configurando el Device Pixel Ratio (set device pixel ratio) + +Ahora realmente **establecemos el device pixel ratio** dentro del sandbox. Este es el paso que responde directamente a “**cómo establecer dpr**” para un entorno simulado. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Explicación:** +- El patrón `Builder` te permite adjuntar de forma fluida tanto la pantalla (que lleva el DPR) como el user‑agent. +- Cuando el sandbox renderiza un `HTMLDocument`, simulará que se está ejecutando en un dispositivo con esa densidad de píxeles exacta. + +> *Por qué deberías preocuparte:* Algunas consultas de medios CSS usan `device-pixel-ratio` (p. ej., `@media (-webkit-min-device-pixel-ratio: 2)`). Si no estableces el DPR, esas reglas nunca se activan, y perderás recursos de alta resolución. + +## Verificando la configuración del sandbox (how to set user-agent) + +Pongamos el sandbox a trabajar. El siguiente fragmento crea un `HTMLDocument`, carga una página y muestra una confirmación de que el sandbox está activo. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Salida esperada en consola** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Si ejecutas el programa y ves esa línea, has emulado iPhone con éxito con el DPR y user‑agent correctos. Abre la página en un navegador real e inspecciona las dimensiones del viewport—notarás que coinciden con los valores de iPhone que configuramos. + +## Errores comunes y cómo establecer DPR correctamente (how to set dpr) + +Incluso con el código correcto, algunos inconvenientes pueden causarte problemas: + +| Problema | Por qué ocurre | Solución | +|----------|----------------|----------| +| **DPR se queda en 1** | Pasaste un `Screen` sin el tercer argumento (DPR). | Siempre usa `new Screen(width, height, dpr)`. | +| **User‑Agent ignorado** | El sandbox no se adjuntó al `HTMLDocument`. | Pasa el `documentSandbox` como segundo argumento al constructor de `HTMLDocument`. | +| **Dimensiones incorrectas** | Usando píxeles de dispositivo en lugar de píxeles CSS. | Recuerda: width/height son **píxeles CSS**, no píxeles de hardware. | +| **El servidor sigue enviando CSS de escritorio** | Algunos sitios usan JavaScript para detectar dispositivos, no solo la cabecera. | Considera también inyectar una meta etiqueta viewport si es necesario. | + +Al tener esto en cuenta, rara vez te encontrarás con una situación en la que la emulación no se comporte como se espera. + +## Extendiéndo el sandbox – Próximos pasos + +Ahora que sabes **cómo establecer user agent personalizado** y **cómo establecer dpr**, puedes experimentar más: + +- **Cambiar el tamaño de pantalla** para emular tabletas o teléfonos más grandes. +- **Cambiar el user‑agent** para probar Chrome en Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Agregar cookies o cabeceras** mediante el método `setHeaders` del sandbox para pruebas autenticadas. +- **Capturar una captura de pantalla** usando `HTMLDocument.renderToFile("output.png")` para comparar diferencias visuales automáticamente. + +Estas extensiones te permiten crear un entorno de pruebas completo sin salir de tu IDE. + +--- + +## Conclusión + +Hemos cubierto **cómo emular iPhone** usando `DocumentSandbox` de Aspose.HTML, mostrándote exactamente **cómo establecer user agent personalizado**, **cómo establecer device pixel ratio**, e incluso las sutiles diferencias entre “**cómo establecer user-agent**” y “**cómo establecer dpr**”. El ejemplo completo y ejecutable demuestra cada pieza en un solo lugar, para que puedas copiar‑pegar, ajustar y comenzar a probar diseños móviles al instante. + +Pruébalo—cambia las dimensiones de la pantalla, juega con diferentes user‑agents y observa cómo reaccionan tus páginas. Cuando domines estas configuraciones, depurar diseños responsivos será pan comido, y ahorrarás innumerables horas persiguiendo errores en dispositivos reales. + +¿Tienes preguntas o quieres compartir tus propias variaciones? Deja un comentario abajo, ¡y feliz emulación! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/advanced-usage/_index.md b/html/swedish/java/advanced-usage/_index.md index 0111de429..c595666ae 100644 --- a/html/swedish/java/advanced-usage/_index.md +++ b/html/swedish/java/advanced-usage/_index.md @@ -127,7 +127,9 @@ Lär dig hur du justerar PDF‑sidstorlek med Aspose.HTML för Java. Skapa högk ### [Justera XPS‑sidstorlek med Aspose.HTML för Java](./adjust-xps-page-size/) Lär dig hur du justerar XPS‑sidstorlek med Aspose.HTML för Java. Kontrollera utmatningsdimensionerna för dina XPS‑dokument enkelt. ### [Hur man kör JavaScript i Java – Komplett guide](./how-to-run-javascript-in-java-complete-guide/) -Lär dig hur du exekverar JavaScript-kod i Java-applikationer med Aspose.HTML, inklusive konfiguration och exempel. +Lär dig hur du exekverar JavaScript‑kod i Java‑applikationer med Aspose.HTML, inklusive konfiguration och exempel. +### [Top‑level await‑exempel – Använd await‑fördröjning i JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Lär dig hur du använder top‑level await med en fördröjningsfunktion i JavaScript. --- diff --git a/html/swedish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/swedish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..eb4096eac --- /dev/null +++ b/html/swedish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,171 @@ +--- +category: general +date: 2026-03-26 +description: Exempel på top‑level await som visar await‑delay i JavaScript, en inkrementerande + räknarklass och offentliga klassfält i JavaScript i en live‑demo. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: sv +og_description: Exempel på top‑level await som demonstrerar await delay i JavaScript, + en inkrementerande räknarklass och offentliga klassfält i JavaScript i en kortfattad + handledning. +og_title: exempel på top‑level await – Använda await delay i JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Exempel på top‑level await – Använda await delay i JavaScript +url: /sv/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await example – Using await delay in JavaScript + +Har du någonsin funderat på hur du kan pausa modulens körning utan att omsluta allt i en async IIFE? Det är precis vad ett **top level await example** låter dig göra. I den här handledningen går vi igenom en liten webbsida som använder `await delay javascript` för att skjuta upp arbete, och sedan skapar en `increment counter class` som utnyttjar **public class fields javascript**. I slutet har du ett komplett, kopiera‑och‑klistra‑snutt som körs i vilken modern webbläsare som helst. + +Vi täcker allt från att definiera en klass med ett offentligt fält till att koppla ihop en enkel promise‑baserad fördröjningshjälp. Inga externa bibliotek, ingen byggprocess—bara ren HTML, ett ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Expected Console Output + +``` +Counter class initialized +Final count: 1 +``` + +Om du öppnar sidan i DevTools bör du se meddelandet från det statiska blocket visas **innan** fördröjningen slutförs, vilket bekräftar att klassen utvärderades först. + +## Step 5 – Why Use Public Class Fields Instead of a Constructor? + +Du kanske undrar varför vi inte skrev: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Båda tillvägagångssätten fungerar, men **public class fields javascript** ger en renare, mer deklarativ syntax. Fältet definieras en gång, inte i varje konstruktor‑anrop, vilket kan vara lättare att läsa när klassen blir större. Dessutom kan statiska block inte placeras i en konstruktor, så att separera initieringslogik blir mer naturligt. + +## Step 6 – Adapting the Example for Real‑World Apps + +I produktion behöver du ofta mer än en enda räknare. Här är några snabba idéer: + +- **Multiple counters:** Store them in a `Map` keyed by identifier. +- **Persisted state:** Replace `console.log` with `localStorage` writes. +- **Async initialization:** Use the static block to fetch configuration from a server before any instances are created. + +Alla dessa mönster drar fortfarande nytta av top‑level await, eftersom du kan hämta data en gång vid modulens laddning och garantera att den är klar för varje konsument. + +## Frequently Asked Questions + +**Q: Does top‑level await block other modules?** +A: No. Each module runs independently. Only the module that contains the await is paused; other modules continue loading in parallel. + +**Q: What if the delay promise rejects?** +A: An unhandled rejection will abort the module evaluation and surface as an error in the console. Wrap the await in a `try…catch` if you need graceful fallback. + +**Q: Is the `static` keyword required?** +A: Not for the counter itself, but the static block is a handy way to demonstrate that code runs *once* at load time—great for logging or feature‑detection. + +## Conclusion + +Du har precis byggt ett **top level await example** som visar `await delay javascript`, en **increment counter class**, och kraften i **public class fields javascript**. Den kompletta, körbara snutten finns ovan, och konsolutskriften bevisar att det statiska blocket körs innan den fördröjda koden. + +Härifrån kan du experimentera med mer komplexa async‑flöden, byta ut fördröjningen mot ett riktigt API‑anrop, eller utöka klassen med fler metoder. Kom ihåg att modern JavaScript låter dig behandla moduler som förstklassiga async‑entiteter—utan extra omslag. + +Lycka till med kodandet, och dela gärna dina varianter i kommentarerna. Om du fann den här guiden användbar, dela den med en kollega som fortfarande kämpar med async‑mönster! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/conversion-html-to-other-formats/_index.md b/html/swedish/java/conversion-html-to-other-formats/_index.md index 91c83a46f..ab0f03845 100644 --- a/html/swedish/java/conversion-html-to-other-formats/_index.md +++ b/html/swedish/java/conversion-html-to-other-formats/_index.md @@ -90,6 +90,7 @@ Konvertera enkelt HTML till MHTML med Aspose.HTML for Java. Följ vår steg‑f Lär dig hur du enkelt konverterar HTML till XPS med Aspose.HTML for Java. Skapa plattformsoberoende dokument med lätthet. ### [Konvertera Markdown till HTML](./convert-markdown-to-html/) Konvertera Markdown till HTML i Java sömlöst med Aspose.HTML for Java. Följ vår steg‑för‑steg‑guide för att förenkla dina dokumentkonverteringsbehov. +### [Konvertera HTML till Markdown i Java – Bevara originalformatering](./convert-html-to-markdown-in-java-preserve-original-formattin/) ### [Konvertera SVG till Bild](./convert-svg-to-image/) Lär dig hur du konverterar SVG till bilder i Java med Aspose.HTML. Omfattande guide för högkvalitativ output. ### [Konvertera SVG till PDF](./convert-svg-to-pdf/) @@ -98,6 +99,10 @@ Konvertera SVG till PDF i Java med Aspose.HTML. En sömlös lösning för högkv Lär dig hur du konverterar SVG till XPS med Aspose.HTML for Java. Enkel, steg‑för‑steg‑guide för smidiga konverteringar. ### [Konvertera HTML till PDF i Java – Steg‑för‑steg‑guide med sidstorleksinställningar](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Lär dig konvertera HTML till PDF i Java med detaljerade steg och anpassa sidstorlek för optimal utskrift. +### [Skapa PDF med anpassad storlek – Konvertera HTML till PDF med Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +Lär dig skapa PDF‑dokument med anpassade sidstorlekar när du konverterar HTML till PDF med Aspose.HTML för Java. +### [Skapa PDF från HTML i Java – Parallell batchkonverteringsguide](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Lär dig hur du konverterar flera HTML‑filer till PDF parallellt i Java med Aspose.HTML för hög prestanda. ## Vanliga frågor diff --git a/html/swedish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/swedish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..50e364052 --- /dev/null +++ b/html/swedish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-26 +description: Konvertera HTML till markdown och generera markdown‑fil samtidigt som + du bevarar originalformateringen med Aspose HTML‑konvertering i Java. Lär dig steg + för steg. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: sv +og_description: Konvertera HTML till markdown snabbt, skapa en markdown‑fil och behåll + originalformateringen med Aspose HTML‑konvertering för Java. +og_title: Konvertera HTML till Markdown i Java – Bevara formatering +tags: +- Aspose +- Java +- Markdown +title: Konvertera HTML till Markdown i Java – Bevara originalformatet +url: /sv/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konvertera HTML till Markdown i Java – Bevara originalformatering + +Har du någonsin behövt **konvertera HTML till markdown** men oroat dig för att du skulle förlora mellanslag, tabeller eller inline‑taggar? Du är inte ensam. Många utvecklare stöter på detta problem när de försöker flytta innehåll från en webbsida till ett rent, versionskontrollvänligt format. Den goda nyheten? Med några få rader Java och Aspose HTML kan du **generera markdown‑fil** som ser exakt ut som källan, med alla mellanslag intakta. + +I den här guiden går vi igenom hela processen: läsa in en komplex HTML‑fil, konfigurera konverteringen så att den **bevarar originalformatering**, och slutligen skriva ut resultatet till `preserved.md`. När du är klar har du ett färdigt kodexempel, förstår *varför* varje inställning är viktig, och vet hur du anpassar koden för kantfall som anpassad CSS eller inbäddade skript. + +## Vad du behöver + +- Java 17 (eller någon nyare JDK) – API‑et fungerar med Java 8+ men nyare versioner ger bättre prestanda. +- Aspose HTML för Java‑biblioteket (version 23.11 eller senare). Du kan hämta det från Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- En exempel‑HTML‑fil (`complex.html`) som innehåller rubriker, tabeller, kodblock och eventuellt någon inline‑``‑stil. +- Lite tålamod och en vilja att experimentera. + +Det är allt. Inga externa verktyg, inga kommandoradshack – bara ren Java‑kod. + +## Steg 1: Läs in käll‑HTML‑dokumentet + +Det första vi gör är att skapa en `HTMLDocument`‑instans som pekar på din källfil. Aspose HTML behandlar filen som ett DOM, vilket betyder att du kan inspektera eller modifiera den innan konvertering om du någonsin behöver. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Varför detta är viktigt:** Att läsa in dokumentet på detta sätt säkerställer att alla länkade resurser (stilmallar, bilder) löses relativt till filens plats. Om du hoppar över detta steg och matar in en rå sträng kan du förlora extern CSS som påverkar mellanslag – exakt det du vill **bevara originalformatering** för. + +## Steg 2: Konfigurera alternativ för markdown‑konvertering + +Aspose HTML ger dig en `MarkdownConversionOptions`‑klass. Den nyckelinställning vi är ute efter är `setPreserveOriginalFormatting(true)`. När den är aktiverad behåller konverteraren radbrytningar, indentering och till och med råa HTML‑snuttar som markdown inte kan representera nativt. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Proffstips:** Om du senare upptäcker att vissa inline‑stilar tas bort kan du också anropa `markdownOptions.setIncludeHtml(true)` för att tvinga in råa HTML‑block i markdown‑utdata. + +## Steg 3: Utför konverteringen + +Nu ger vi `HTMLDocument`, målfilens sökväg och våra alternativ till den statiska metoden `Converter.convertHTML`. Metoden sköter allt tungt arbete bakom kulisserna. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +När anropet är klart hittar du `preserved.md` bredvid din källfil. Öppna den i valfri editor – märk hur de ursprungliga radbrytningarna och tabelljusteringen är intakta. + +## Steg 4: Verifiera resultatet (valfritt men rekommenderat) + +En snabb kontroll sparar dig från subtila buggar senare. Du kan läsa in filen igen i Java och skriva ut de första raderna, eller bara öppna den i VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Du bör se något i stil med: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +``‑taggen finns fortfarande kvar eftersom markdowns inbyggda tabellsyntax inte kunde fånga den exakta stilen – tack vare `preserve original formatting`. + +## Steg 5: Packa ihop allt – komplett körbart exempel + +Nedan är den kompletta, färdiga klassen. Byt ut `YOUR_DIRECTORY` mot den faktiska sökvägen på din maskin. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Kör programmet med `mvn exec:java` eller ditt favorit‑IDE, så får du en **genererad markdown‑fil** som speglar den ursprungliga HTML‑layouten. + +## Vanliga frågor & kantfall + +### Fungerar detta med externa CSS‑filer? + +Ja. Så länge CSS‑filerna är åtkomliga via relativa sökvägar laddar Aspose HTML dem automatiskt. Om du hämtar HTML från en fjärr‑URL kan du behöva sätta ett anpassat `ResourceLoadingOptions`‑objekt för att tillåta nätverksåtkomst. + +### Vad om jag inte vill ha någon rå HTML i markdown? + +Byt bara alternativet: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Konverteraren kommer då att försöka översätta allt till ren markdown‑syntax, vilket potentiellt kan leda till förlust av layout‑fidelity. + +### Kan jag konvertera en sträng istället för en fil? + +Absolut. Använd konstruktorn som accepterar en `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Och skicka sedan `doc` till `Converter.convertHTML` som tidigare. + +### Hur skiljer sig detta från andra bibliotek som Flexmark eller pandoc? + +De flesta open‑source‑verktyg behandlar HTML som ren text och tar bort mellanslag aggressivt. Aspose HTML:s flagga `preserveOriginalFormatting` är en **proprietär funktion** som respekterar originalkällans mellanslag, radbrytningar och till och med behåller ej stödda taggar som råa HTML‑block. Därför betonar denna handledning **aspose html conversion** för Java‑utvecklare som behöver exakt trohet. + +## Tips för produktion + +- **Batch‑behandling:** Lägg in konverteringslogiken i en loop för att hantera flera HTML‑filer på en gång. +- **Felhantering:** Fånga `IOException` och `com.aspose.html.exceptions.AssertionFailedException` för att rapportera saknade resurser. +- **Prestanda:** Återanvänd en enda `HTMLDocument`‑instans när du konverterar fragment av en stor webbplats; biblioteket cachar parsad CSS. + +## Slutsats + +Vi har just visat hur du **konverterar HTML till markdown** i Java samtidigt som du säkerställer att utdata **bevarar originalformatering**. Det korta, självständiga kodexemplet demonstrerar hela arbetsflödet – från att läsa in HTML‑dokumentet till att konfigurera `MarkdownConversionOptions`, utföra konverteringen och verifiera resultatet. Med Aspose HTML:s robusta API kan du nu **generera markdown‑fil** programatiskt, oavsett om du bygger en statisk‑sidgenerator, en dokumentationspipeline eller ett innehållsmigrationsverktyg. + +Nästa steg kan vara att utforska: + +- Använda **html to markdown java** för massmigreringar över en hel webbplats. +- Justera konverteringsalternativen för att producera GitHub‑flavored markdown‑tabeller. +- Kombinera detta tillvägagångssätt med ett CI/CD‑steg som automatiskt uppdaterar dina dokument när käll‑HTML ändras. + +Känn dig fri att experimentera, och lämna en kommentar om du stöter på problem. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/swedish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..6939c1e5c --- /dev/null +++ b/html/swedish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,196 @@ +--- +category: general +date: 2026-03-26 +description: Skapa PDF med anpassad storlek från HTML med Aspose.HTML för Java. Lär + dig hur du konverterar HTML till PDF och ställer in PDF-sidans storlek på bara några + steg. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: sv +og_description: Skapa PDF med anpassad storlek från HTML med Aspose. Den här guiden + visar hur du konverterar HTML till PDF, ändrar PDF‑sidstorlek och ställer in PDF‑sidstorlek + enkelt. +og_title: Skapa PDF i anpassad storlek – Snabbguide för att konvertera HTML till PDF +tags: +- aspose +- java +- pdf +- html +title: Skapa PDF i anpassad storlek – Konvertera HTML till PDF med Aspose +url: /sv/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa PDF med anpassad storlek – Konvertera HTML till PDF med Aspose + +Har du någonsin behövt **skapa PDF med anpassad storlek** från en HTML‑fil? I den här handledningen visar vi dig hur du **konverterar HTML till PDF** och ställer in PDF‑sidstorlek med Aspose.HTML för Java. + +Om du bygger fakturor, rapporter eller e‑böcker är det viktigt att få exakt sidstorlek—annars blir layouten felplacerad eller klipps av. + +Vi går igenom varje steg, från att läsa in käll‑HTML till att justera marginaler, och avslutar med en färdig PDF. Inga vaga referenser, bara ett komplett, körbart exempel som du kan kopiera‑klistra idag. + +## Vad du behöver + +- **Java 17** (eller någon nyare JDK). +- **Aspose.HTML for Java** JAR‑filer – du kan hämta den senaste versionen från Maven‑arkivet eller Aspose‑webbplatsen. +- En enkel `input.html`‑fil placerad i en mapp du kontrollerar. +- En IDE eller textredigerare du föredrar; jag kodar vanligtvis i IntelliJ IDEA, men Eclipse fungerar lika bra. + +Att ha dessa förutsättningar betyder att du inte får “class not found”-fel halvvägs. + +Nu, låt oss dyka ner. + +![Exempel på PDF med anpassad storlek](/images/create-pdf-custom-size.png "Skärmbild som visar en PDF genererad med anpassad sidstorlek och marginaler – create pdf custom size") + +## Skapa PDF med anpassad storlek – Grundsteg + +Nedan är det fullständiga Java‑programmet du kommer att få. Kopiera det gärna till en fil som heter `ConvertHtmlToPdfCustomPage.java` och kör den efter att du har lagt till Aspose‑beroenden i ditt projekt. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Steg 1 – Konvertera HTML till PDF: Ladda dokumentet + +Det första vi gör är att **ladda HTML** som vi vill omvandla till en PDF. +`HTMLDocument` läser filen, löser relativa länkar och bygger ett DOM som Aspose kan rendera. + +> **Varför detta är viktigt:** Om HTML‑filen refererar till CSS eller bilder kommer Aspose att hämta dem relativt till filsökvägen. Att använda en absolut sökväg (`YOUR_DIRECTORY/input.html`) undviker “file not found”-överraskningar. + +### Steg 2 – Ändra PDF‑sidstorlek: Konfigurera alternativ + +Här skapar vi ett `PdfConversionOptions`‑objekt. +- `setPageSize(PageSize.A4)` instruerar Aspose att använda standard A4‑dimensionerna (210 × 297 mm). +- `setPageOrientation(...)` roterar sidan om du behöver liggande läge. +- `setMargins(new Margin(20, 20, 20, 20))` ger en marginal på 20 punkt på varje sida. + +Du kan ersätta `PageSize.A4` med `PageSize.LETTER` eller till och med en **anpassad storlek** genom att skicka ett `SizeF`‑objekt, t.ex.: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Proffstips:** En punkt motsvarar 1/72 tum. Om du räknar i millimeter, multiplicera med 2,83465 för att få punkter. + +### Steg 3 – Generera PDF från HTML: Köra konverteringen + +`Converter.convertHTML` gör det tunga arbetet. Den tar det inlästa `HTMLDocument`, utsökvägen och de alternativ vi just konfigurerade. + +Om du vill **ställa in PDF‑sidstorlek** dynamiskt baserat på innehållet, kan du beräkna de nödvändiga dimensionerna innan detta steg och justera `pdfOptions` därefter. + +### Steg 4 – Verifiera resultatet + +`System.out.println`‑raden är valfri, men den ger snabb återkoppling när du kör programmet från en konsol. Efter körning, öppna `custom_page.pdf` – du bör se en A4‑stående PDF med enhetliga 20‑punkt‑marginaler, exakt som vi angav. + +## Konvertera HTML till PDF – Vanliga variationer + +### Använda en ström istället för en filsökväg + +Ibland har du ingen fysisk fil; kanske kommer HTML‑en från en databas eller ett API. I så fall omsluter du strängen i en `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Det andra argumentet är bas‑URL:en för att lösa relativa resurser. + +### Ändra sidorientering + +Om din rapport är bred, byt till liggande läge: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Finjustera marginaler + +Marginaler accepterar flyttal, så du kan sätta 0,5 pt för en hårtunn kant: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Hantera stora HTML‑filer + +För enorma dokument, överväg att aktivera **minnes‑effektiv strömning**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Detta instruerar Aspose att skriva mellanstegsdatan till temporära filer istället för att hålla allt i RAM. + +## Ställ in PDF‑sidstorlek – Edge Cases & Fallgropar + +- **Saknade typsnitt:** Om din HTML använder ett anpassat typsnitt som inte är installerat på servern, kommer PDF‑en att falla tillbaka på ett standardtypsnitt. Bädda in typsnittet med `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Bildskalning:** Högupplösta bilder kan göra PDF‑en stor. Använd `pdfOptions.setImageResolution(150);` för att minska upplösningen samtidigt som kvaliteten bevaras. +- **CSS‑kompatibilitet:** Inte alla CSS‑egenskaper stöds fullt ut. Håll dig till standardlayouttekniker (flexbox fungerar, men grid kan ha egenheter). +- **Sökvägsbehörigheter:** Säkerställ att processen har skrivbehörighet till `YOUR_DIRECTORY`. Annars kastas ett `IOException`. + +## Förväntad utdata + +När programmet körs genereras en PDF som ser ut så här (konceptuell illustration): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Sidstorlek: **A4** (210 × 297 mm). +- Orientering: **Stående**. +- Marginaler: **20 pt** på varje sida. + +Öppna filen med någon PDF‑visare (Adobe Reader, Chrome, etc.) för att bekräfta. + +## Sammanfattning + +Du vet nu hur du **skapar PDF med anpassad storlek** från en HTML‑källa med Aspose.HTML för Java. Handledningen täckte hela kedjan: **konvertera HTML till PDF**, **ändra PDF‑sidstorlek**, **ställa in PDF‑sidstorlek**, och **generera PDF från HTML** med anpassade marginaler. + +Känn dig fri att experimentera—byt `PageSize.LETTER` mot legal‑storlek, justera marginaler eller bädda in egna typsnitt. Därefter kan du utforska **lägga till vattenstämplar**, **kryptera PDF‑en**, eller **batch‑processa flera HTML‑filer**. Alla dessa ämnen bygger på samma grundläggande koncept som vi just gått igenom. + +Har du en fråga om ett specifikt edge case? Lämna en kommentar nedan, så hjälper jag dig att felsöka. Lycka till med kodandet! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/swedish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..609136a20 --- /dev/null +++ b/html/swedish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Skapa PDF från HTML snabbt med en fast trådpool. Lär dig batch‑HTML till + PDF och kör parallella uppgifter i Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: sv +og_description: Skapa PDF från HTML snabbt med en fast trådpool. Lär dig hur du batchar + HTML till PDF och kör parallella uppgifter i Java. +og_title: Skapa PDF från HTML i Java – Guide för parallell batchkonvertering +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Skapa PDF från HTML i Java – Guide för parallell batchkonvertering +url: /sv/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa PDF från HTML i Java – Guide för parallell batch‑konvertering + +Har du någonsin behövt **skapa PDF från HTML** men känt dig fast när en enkeltrådad konvertering kryper fram i all oändlighet? Du är inte ensam. I många verkliga projekt får vi dussintals HTML‑rapporter som måste bli PDF‑filer innan dagen är slut, och att göra dem en efter en är helt enkelt inte praktiskt. + +Det är därför den här handledningen visar dig **hur du konverterar HTML till PDF** med en **fast trådpott** (fixed thread pool), så att du kan **batch‑konvertera HTML till PDF** och **köra parallella uppgifter** utan att svettas. När du är klar har du ett komplett, färdigt‑att‑köra program som omvandlar en mapp med HTML‑filer till PDF‑filer på en bråkdel av tiden. + +## Vad du kommer att lära dig + +I de kommande avsnitten går vi igenom allt du behöver veta: + +* Den exakta Maven/Gradle‑beroendet för Aspose.HTML (biblioteket som gör det tunga lyftet). +* Varför en **fast trådpott** är den perfekta lösningen för CPU‑intensiv konvertering. +* Hur du listar dina källfiler så att processen kan skalas till hundratals dokument. +* Den exakta koden du klistrar in i din IDE — inga saknade imports, inga “TODO”-kommentarer. +* Tips för felhantering, justering av pool‑storlek och verifiering av resultatet. + +Ingen förkunskap om Aspose.HTML krävs, bara en grundläggande Java‑miljö och vilja att experimentera. Låt oss sätta igång. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Image alt text: create pdf from html – parallel conversion diagram* + +## Steg 1: Förbered ditt projekt och lägg till Aspose.HTML + +Först och främst — ditt projekt behöver Aspose.HTML‑biblioteket. Om du använder Maven, lägg till detta i din `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +För Gradle räcker det med: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Varför Aspose.HTML? Det är ett kommersiellt bibliotek, men det erbjuder ett **convert html to pdf**‑API som hanterar CSS, JavaScript och komplexa layouter direkt ur lådan. Om du föredrar ett open‑source‑alternativ kan du byta ut anropet `Converter.convertHTML` senare, men trådlögningslogiken förblir densamma. + +> **Pro‑tips:** Håll versionsnumret i synk med de officiella release‑notiserna; nyare versioner förbättrar ofta renderingshastigheten, vilket är viktigt när du kör många uppgifter parallellt. + +## Steg 2: Bygg en fast trådpott för parallell konvertering + +När du har en batch med filer vill du inte skapa ett obegränsat antal trådar — ditt operativsystem kommer börja thrasha. En **fast trådpott** ger dig en förutsägbar mängd samtidighet samtidigt som minnesanvändningen hålls under kontroll. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Varför fyra? På en typisk 8‑kärnig maskin kan hälften av kärnorna hållas fria för I/O och OS. Du kan experimentera: `Runtime.getRuntime().availableProcessors()` returnerar antalet kärnor, och en tumregel är `cores / 2`. Kom ihåg att varje konvertering är CPU‑intensiv, så fler trådar än kärnor brukar försämra prestandan. + +## Steg 3: Samla HTML‑filerna du vill konvertera + +Nästa pusselbit är **batch html to pdf**‑listan. Du kan hårdkoda en array (som i exemplet) eller skanna en katalog. Här är en flexibel version som läser varje `.html`‑fil från en mapp: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Detta tillvägagångssätt betyder att du kan släppa nya filer i mappen och programmet plockar automatiskt upp dem — perfekt för ett nattligt batch‑jobb. + +## Steg 4: Skicka in en konverteringsuppgift för varje fil (kör parallella uppgifter) + +Nu blir det roligt: varje fil blir ett **Runnable** (eller `Callable`) som poolen kör. Koden nedan speglar originalexemplet men lägger till felhantering och ett litet loggmeddelande. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Varför omsluta konverteringen i en try‑catch?** När du **run parallel tasks**, kan en enda felaktig HTML‑fil annars få hela exekutorn att krascha. Genom att fånga undantag lokalt säkerställer vi att resten av batchen fortsätter köra. + +## Steg 5: Stäng av exekutorn och vänta på slutförande + +Efter att alla jobb har skickats in måste du tala om för poolen att den inte längre ska ta emot nya uppgifter och sedan vänta tills allt är klart. Detta garanterar att JVM:n inte avslutas för tidigt. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Om du har en enorm mapp (tusentals filer) kan du öka timeout‑tiden eller implementera en framstegsmätare. Nyckeln är att **gracefully shut down** — detta är kännetecknet för produktionsklar kod. + +## Fullt fungerande exempel + +När allt sätts ihop får du en självständig klass som du kan kopiera‑klistra in i `src/main/java` och köra: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Förväntad utskrift** (exempel): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Om du öppnar de genererade `.pdf`‑filerna ser du att den ursprungliga HTML‑layouten bevarats — typsnitt, tabeller och till och med grundläggande JavaScript‑driven innehåll renderas korrekt. + +## Vanliga frågor & kantfall + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/conversion-html-to-various-image-formats/_index.md b/html/swedish/java/conversion-html-to-various-image-formats/_index.md index 2b7cf68d4..9180ed07f 100644 --- a/html/swedish/java/conversion-html-to-various-image-formats/_index.md +++ b/html/swedish/java/conversion-html-to-various-image-formats/_index.md @@ -92,7 +92,8 @@ Att använda Aspose.HTML for Java förenklar konverteringen av HTML‑dokument t ### [Konvertera HTML till JPEG](./convert-html-to-jpeg/) ### [Konvertera HTML till PNG](./convert-html-to-png/) ### [Konvertera HTML till TIFF](./convert-html-to-tiff/) -### [Konvertera HTML till WebP – Komplett Java‑guide med Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Skapa flersidig TIFF från SVG i Java – Steg‑för‑steg‑guide](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +### [Konvertera HTML till WebP – Komplett Java‑guide med Aspose.HTML](./convert-html-to-webp-complete-java-guide/) ## Vanliga frågor diff --git a/html/swedish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/swedish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..ee58990fb --- /dev/null +++ b/html/swedish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,221 @@ +--- +category: general +date: 2026-03-26 +description: Konvertera HTML till WebP snabbt med Aspose.HTML. Lär dig hur du sparar + HTML som WebP, renderar HTML som WebP och genererar WebP från HTML på bara några + steg. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: sv +og_description: Konvertera HTML till WebP snabbt med Aspose.HTML. Den här handledningen + visar hur du renderar HTML som WebP och genererar WebP från HTML i Java. +og_title: Konvertera HTML till WebP – Komplett Java-guide +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Konvertera HTML till WebP – Komplett Java-guide +url: /sv/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konvertera HTML till WebP – Komplett Java‑guide + +Har du någonsin behövt **konvertera HTML till WebP** men varit osäker på vilket bibliotek som kan hantera jobbet utan huvudvärk? Du är inte ensam. Många utvecklare stöter på detta problem när de försöker leverera lätta bilder som genereras från dynamiska sidor. De goda nyheterna? Med Aspose.HTML för Java kan du *spara HTML som WebP* i ett enda metodanrop, och hela processen är lika smidig som smör. + +I den här handledningen går vi igenom allt du behöver veta: från att ställa in Aspose.HTML‑beroendet, till att justera komprimeringsinställningarna, och slutligen rendera HTML‑dokumentet som en WebP‑fil som du kan leverera på webben. I slutet kommer du att kunna **rendera HTML som WebP**, **generera WebP från HTML**, och förstå “varför” bakom varje konfigurationsalternativ. Inga externa skript, inga kommandorads‑akrobatik—bara ren Java‑kod. + +## Förutsättningar + +- Java 8 eller nyare installerat (biblioteket stödjer JDK 8+). +- Maven eller Gradle för beroendehantering (vi visar Maven‑exemplet). +- En enkel HTML‑fil (`input.html`) som du vill omvandla till en WebP‑bild. +- En IDE eller textredigerare du föredrar—IntelliJ IDEA fungerar utmärkt, men alla går bra. + +Har du allt detta? Bra, låt oss börja. + +## Steg 1: Lägg till Aspose.HTML i ditt projekt + +Först och främst behöver du Aspose.HTML‑biblioteket på classpath. Om du använder Maven, lägg till detta i din `pom.xml`: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +För Gradle ser det ut så här: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Varför är detta steg avgörande? Utan JAR‑filen finns ingen av klasserna `HTMLDocument`, `Converter` eller `WebpConversionOptions`, och kompilatorn kommer att kasta ett `ClassNotFoundException`. Att lägga till beroendet hämtar också de inhemska binärerna som behövs för WebP‑kodning, så du slipper leta efter externa DLL‑ eller `.so`‑filer. + +> **Proffstips:** Håll dina beroenden uppdaterade. Nyare Aspose‑utgåvor förbättrar ofta WebP‑komprimeringsalgoritmer och lägger till stöd för nyare HTML5‑funktioner. + +## Steg 2: Ladda käll‑HTML‑dokumentet + +Nu när biblioteket är klart kan vi ladda HTML‑filen du vill konvertera. Klassen `HTMLDocument` parsar filen och bygger ett DOM, som konvertern senare renderar. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Lägg märke till kommentaren “Load the source HTML document” – den påminner om att du också kan injicera CSS eller JavaScript före konvertering om din sida är beroende av dynamisk styling. Om du hoppar över detta steg skulle konvertern inte ha något att rendera, vilket resulterar i en tom bild. + +## Steg 3: Konfigurera WebP‑konverteringsalternativ + +Aspose.HTML ger dig fin‑granulär kontroll över resultatet. För de flesta fall är en **lossy** WebP med en kvalitetsinställning runt 85 en bra balans mellan visuell trohet och filstorlek. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Varför välja lossy? WebP:s lossy‑läge använder prediktiv kodning, vilket kan minska filer med 30‑50 % jämfört med PNG samtidigt som de flesta visuella detaljer bevaras. Om du behöver pixelperfekta resultat (t.ex. för logotyper), byt `CompressionMode` till `Lossless` och höj `quality` till 100. + +## Steg 4: Konvertera och spara WebP‑bilden + +Med dokumentet och alternativen klara är själva konverteringen en enradare. Den statiska metoden `Converter.convertHTML` sköter allt tungt arbete: den renderar DOM‑en till en bitmap, kodar den som WebP och skriver filen till disk. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Klart! När programmet är färdigt hittar du `output.webp` bredvid din käll‑HTML. Du kan nu leverera den direkt från en webbserver, bädda in den i ett ``‑element, eller använda den i vilket sammanhang som helst som stödjer WebP. + +## Steg 5: Verifiera resultatet (valfritt men rekommenderat) + +Det är alltid en bra idé att dubbelkolla att konverteringen lyckades och att bilden ser ut som förväntat. Du kan öppna WebP‑filen i Chrome, Firefox eller någon bildvisare som stödjer formatet. För en snabb programmatisk kontroll kan du läsa filstorleken och dimensionerna: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Om filen är oväntat stor eller dimensionerna är fel, gå tillbaka till **Steg 3** och justera `quality` eller käll‑HTML:ens viewport‑inställningar. Kom ihåg att WebP respekterar CSS `width`/`height` på rot‑elementet, så en saknad ``‑tagg kan ge överraskande resultat. + +## Fullt fungerande exempel + +När vi sätter ihop allt, här är den kompletta, körklara Java‑klassen: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Spara den här filen som `HtmlToWebp.java`, ersätt `YOUR_DIRECTORY` med den faktiska sökvägen, kompilera med `javac` och kör med `java HtmlToWebp`. Du bör se konsolutdata som bekräftar filstorlek och dimensioner, följt av det slutgiltiga framgångsmeddelandet. + +![exempel på HTML till WebP](/images/convert-html-to-webp.png "Skärmbild av en WebP‑bild genererad från HTML – konvertera html till webp") + +## Vanliga frågor & kantfall + +### Vad händer om min HTML refererar till externa resurser (CSS, bilder)? + +Aspose.HTML löser automatiskt relativa URL:er baserat på platsen för `input.html`. Se bara till att resurserna är åtkomliga från filsystemet eller en webbserver. Om du behöver injicera en anpassad bas‑URL, använd den överlagrade `HTMLDocument`‑konstruktorn som accepterar en `URI`‑bas. + +### Kan jag generera flera WebP‑bilder från samma HTML (t.ex. olika viewport‑storlekar)? + +Absolut. Lägg konverteringslogiken i en loop, justera `webpOptions.setWidth()` och `setHeight()` före varje anrop, och ge varje utdata ett unikt filnamn. Detta är praktiskt för responsiv design där du levererar olika bildstorlekar till mobil och desktop. + +### Hur byter jag till förlustfri komprimering? + +Ersätt raden: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +med: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +### Fungerar detta på Linux/macOS? + +Ja. Aspose.HTML‑JAR‑filen innehåller inhemska binärer för Windows, Linux och macOS, så samma Java‑kod körs överallt. Se bara till att du har rätt JRE installerad. + +## Slutsats + +Du har precis lärt dig **hur man konverterar HTML till WebP** med Aspose.HTML för Java, och täckt allt från beroendeinstallation till finjustering av komprimering och verifiering av resultatet. Med denna kunskap kan du **spara HTML som WebP**, **rendera HTML som WebP**, och **generera WebP från HTML** i farten—perfekt för dynamiska bildpipelines, nyhetsbrev via e‑post, eller vilket scenario som helst där lätta visuella element är viktiga. + +Vad blir nästa steg? Prova att experimentera med olika `quality`‑värden, utforska `Lossless`‑läget, eller integrera denna konverterare i en Spring Boot‑REST‑endpoint så att din webbtjänst kan returnera WebP‑bilder på begäran. Du kan också titta på batch‑bearbetning av en mapp med HTML‑filer, eller kombinera detta med headless Chrome för SVG‑till‑WebP‑konverteringar. + +Har du fler frågor om **hur man konverterar HTML** i andra språk, eller behöver hjälp med att felsöka ett specifikt kantfall? Lämna en kommentar nedan, och lycka till med kodningen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/swedish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..005252b9c --- /dev/null +++ b/html/swedish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,167 @@ +--- +category: general +date: 2026-03-26 +description: Skapa flersidig TIFF från SVG i Java med Aspose.HTML. Lär dig hur du + konverterar SVG till TIFF, laddar SVG-dokument i Java och skapar flersidiga TIFF-filer. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: sv +og_description: Skapa flersidig TIFF från SVG i Java. Denna handledning visar hur + man laddar ett SVG-dokument, konfigurerar TIFF-alternativ och genererar en förlustfri + flersidig TIFF. +og_title: Skapa flersidig TIFF från SVG i Java – Komplett guide +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Skapa flersidig TIFF från SVG i Java – Steg‑för‑steg‑guide +url: /sv/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Skapa flersidig tiff från SVG i Java – Steg‑för‑steg guide + +Har du någonsin behövt **create multipage tiff** från en SVG men varit osäker på var du ska börja? Du är inte ensam—många utvecklare stöter på detta exakta hinder när de behöver ett utskrivbart, förlustfritt dokument som sträcker sig över flera sidor. I den här guiden går vi igenom en komplett, färdig‑att‑köra lösning som visar **how to convert SVG to TIFF**, laddar SVG‑dokumentet i Java och konfigurerar utskriften så att du kan **create multipage tiff**‑filer med LZW‑komprimering. + +Vi kommer att gå igenom allt från att sätta upp Aspose.HTML‑biblioteket till att hantera kantfall som stora SVG‑tillgångar. I slutet av tutorialen har du en enda Java‑klass som du kan släppa in i vilket projekt som helst och börja generera multi‑page TIFF‑filer omedelbart. + +## Vad du behöver + +- **Java Development Kit (JDK) 8+** – koden använder standard‑Java‑API:er. +- **Aspose.HTML for Java** (version 23.5 eller senare) – detta är det enda tredjeparts‑beroendet. +- En **sample SVG file** (valfri vektorgrafik fungerar; vi kallar den `input.svg`). +- Din favoriteditor eller en enkel textredigerare och en terminal. + +Inga ytterligare byggverktyg krävs; exemplet kompileras med `javac` och körs med `java`. Om du föredrar Maven eller Gradle, lägg bara till Aspose.HTML‑JAR‑filen i ditt projekts classpath. + +![Exempel på flersidig tiff](create-multipage-tiff.png){alt="skapa flersidig tiff-utdata"} + +## Steg 1 – Ladda SVG‑dokumentet (load svg document java) + +Det första vi måste göra är att läsa in SVG‑filen i ett `HTMLDocument`‑objekt. Aspose.HTML behandlar SVG‑filer som HTML‑dokument, vilket ger oss ett enhetligt API för konvertering. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Why this matters:** Att ladda SVG som ett `HTMLDocument` ger oss tillgång till hela renderingsmotorn, vilket säkerställer att alla stilar, typsnitt och inbäddade bilder tolkas korrekt innan konvertering. Att hoppa över detta steg och försöka mata in råa bytes direkt i konverteraren resulterar ofta i saknade element eller felaktiga färger. + +## Steg 2 – Konfigurera TIFF‑alternativ (how to create multipage tiff) + +Därefter konfigurerar vi `TiffConversionOptions`. Detta objekt styr allt från sidlayout till komprimering. För en riktig flersidig utskrift aktiverar vi `setMultipage(true)`, och vi väljer **LZW**‑komprimering eftersom den är förlustfri och brett stödjs. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Why this matters:** Om du utelämnar `setMultipage(true)` kommer biblioteket att generera en enkel‑sidig TIFF och kasta bort eventuella extra sidor som kan härledas från SVG:n (t.ex. när SVG:n innehåller flera ``‑rootelement). LZW håller filstorleken rimlig utan att offra bildkvaliteten—perfekt för arkiverings‑ eller utskriftsprocesser. + +## Steg 3 – Utför konverteringen (how to convert svg to tiff) + +Nu sker det tunga arbetet. Den statiska metoden `Converter.convertSVG` tar det inlästa dokumentet, destinationssökvägen och de alternativ vi just definierat. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Why this matters:** Att använda det statiska anropet `convertSVG` är det enklaste sättet att starta konverteringen. Under huven rasteriserar Aspose.HTML vektordatan med standard 96 dpi; du kan justera DPI via `tiffOptions.setResolution(...)` om högre kvalitet krävs. + +## Steg 4 – Verifiera resultatet + +När konverteringen är klar är det en bra idé att bekräfta att filen finns och innehåller det förväntade antalet sidor. En snabb kontroll kan göras med vilken bildvisare som helst som stödjer flersidig TIFF (t.ex. IrfanView, XnView eller till och med Javas `ImageIO`). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Run the program: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Du bör se ett konsolmeddelande som bekräftar att det lyckades, och när du öppnar `output.tiff` kommer du att se en sida per SVG‑rootelement (eller en enda sida om SVG:n bara har en canvas). + +## Vanliga fallgropar & pro‑tips + +| Issue | Why it Happens | How to Fix It | +|-------|----------------|---------------| +| **Saknade typsnitt** | SVG refererar till systemtypsnitt som inte är installerade på servern. | Bädda in typsnitt i SVG:n eller använd `FontSettings` i Aspose.HTML för att ange en anpassad typsnittsmapp. | +| **Stor filstorlek** | Högupplöst rasterisering kan blåsa upp TIFF‑storleken. | Sänk DPI via `tiffOptions.setResolution(150)` eller byt till `Compression.NONE` endast för felsökning. | +| **Flera sidor genereras inte** | SVG innehåller bara ett ``‑element. | Dela upp din källa i separata SVG‑filer eller omslut varje logisk sida i en ``‑tagg innan konvertering. | +| **Ej stödda SVG‑funktioner** | Vissa filter eller animationer renderas inte. | Förenkla SVG:n eller förbehandla den med ett verktyg som Inkscape för att platta till filter. | + +**Pro tip:** Om du behöver en specifik sidordning, döp om dina SVG‑filer till `page1.svg`, `page2.svg` osv., och loopa över dem, lägg till varje konverteringsresultat i samma TIFF med `tiffOptions.setMultipage(true)` varje gång. + +## Fullt fungerande exempel + +Nedan är den kompletta, fristående Java‑klassen som du kan kopiera‑och‑klistra in i en fil med namnet `SvgToMultipageTiff.java`. Den innehåller import‑satser, kommentarer och felhantering för produktionsbruk. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +När koden körs produceras en TIFF där varje SVG‑rootelement blir en separat sida—precis vad du behöver när du vill **create multipage tiff**‑filer för utskrift eller arkivering. + +## Slutsats + +Vi har just visat dig hur du **create multipage tiff** från en SVG med Java och Aspose.HTML. Tutorialen täckte inläsning av SVG (`load svg document java`), konfiguration av konverteringsalternativ, utförande av konverteringen (`how to convert svg to tiff`) och verifiering av resultatet. Med den kompletta källkoden i handen kan du anpassa lösningen för att batch‑processa dussintals SVG‑filer, justera DPI‑inställningar eller integrera logiken i en större dokument‑genereringspipeline. + +Redo för nästa utmaning? Prova att konvertera en mapp med SVG‑filer till en enda flersidig TIFF, experimentera med olika komprimeringsmetoder, eller utforska PDF‑utdata genom att byta `TiffConversionOptions` mot `PdfConversionOptions`. Samma principer gäller, så du kommer att känna dig bekväm med att utöka detta mönster till andra format. + +Har du frågor eller stött på ett märkligt SVG‑kantfall? Lämna en kommentar nedan, och lycka till med kodningen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/html5-canvas-rendering/_index.md b/html/swedish/java/html5-canvas-rendering/_index.md index 1bcb1ed59..acc06a99a 100644 --- a/html/swedish/java/html5-canvas-rendering/_index.md +++ b/html/swedish/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Först och främst, låt oss prata om HTML5 Canvas-elementet. Se det som en tom Skapa och rendera HTML5 Canvas med Aspose.HTML för Java. Lär dig steg-för-steg hur du ritar, stylar och exporterar till PDF med detta kraftfulla Java-bibliotek. ### [Bemästra HTML5 Canvas med Aspose.HTML för Java](./html5-canvas/) Lär dig hur du skapar och konverterar HTML5 Canvas till PDF med Aspose.HTML för Java. Den här guiden är perfekt för utvecklare som vill förbättra sina webbprojekt. +### [Hur du emulerar iPhone – Komplett guide med Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Lär dig hur du använder Aspose.HTML för att emulera en iPhone-miljö och rendera webbsidor exakt som på en iPhone. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/swedish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/swedish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..62fbf03d8 --- /dev/null +++ b/html/swedish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Lär dig hur du emulerar iPhone i Java med Aspose.HTML. Inkluderar steg + för att ange en anpassad användaragent och ställa in enhetens pixelratio för exakt + mobilrendering. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: sv +og_description: Hur emulerar man iPhone i Java? Den här handledningen visar hur man + ställer in en anpassad användaragent och enhetens pixelratio med Aspose.HTML, vilket + levererar pixelperfekta mobilsidor. +og_title: Hur man emulerar iPhone – Steg‑för‑steg Aspose.HTML‑guide +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Hur man emulerar iPhone – Komplett guide med Aspose.HTML +url: /sv/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Så här emulerar du iPhone – Komplett guide med Aspose.HTML + +Har du någonsin funderat **hur man emulerar iPhone** när du testar en webbsida lokalt? Kanske felsöker du en responsiv layout och skrivbordets webbläsare bara inte duger. Den goda nyheten är att du inte behöver en fysisk enhet—Aspose.HTML:s `DocumentSandbox` låter dig efterlikna en iPhones skärm, user‑agent och device‑pixel‑ratio (DPR) med några få rader Java. + +I den här handledningen går vi igenom exakt hur du sätter en **anpassad user agent**, konfigurerar **device pixel ratio**, och verifierar att allt fungerar som förväntat. När du är klar har du en återanvändbar sandbox som renderar sidor precis som en iPhone 8, och du förstår varför varje inställning är viktig. + +## Vad du kommer att uppnå + +- Skapa ett `Screen`‑objekt som speglar en iPhones dimensioner och DPR. +- Applicera en **anpassad user agent**‑sträng så att servrar tror att begäran kommer från Safari på iOS. +- Bygga ett `DocumentSandbox` som knyter skärmen och user‑agenten ihop. +- Köra ett `HTMLDocument` i sandboxen och se konsolutskriften som bekräftar konfigurationen. + +Inga externa bibliotek utöver Aspose.HTML behövs, och koden körs i vilken Java 17+‑miljö som helst. + +--- + +![skärmdump av hur man emulerar iPhone](https://example.com/images/iphone-emulation.png "hur man emulerar iPhone med Aspose.HTML sandbox") + +## Så här emulerar du iPhone med Aspose.HTML Sandbox + +Det första vi behöver är en `Screen` som återger iPhone‑ens fysiska dimensioner *och* dess pixeldensitet. Detta är kärnan i **hur man emulerar iPhone** på ett exakt sätt. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Varför detta är viktigt:** +- Bredd = 375 px och höjd = 667 px är de CSS‑pixel‑dimensioner du ser i Chrome DevTools när du väljer en iPhone 8. +- Att sätta DPR till 2 talar om för renderingsmotorn att behandla varje CSS‑pixel som två fysiska pixlar, vilket ger skarp text och bilder—precis som en riktig enhet gör. + +> *Proffstips:* Om du behöver emulera en nyare iPhone (t.ex. iPhone 13), ändra bara siffrorna till 390 × 844 och DPR = 3. + +## Sätta en anpassad User Agent (set custom user agent) + +Nästa steg är att **sätta en anpassad user agent** så att servern levererar den mobila HTML/CSS‑versionen. Utan detta tror många webbplatser fortfarande att du använder en desktop‑browser. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Hur detta fungerar:** +- `User-Agent`‑headern är den handskakning som webbläsare använder för att presentera sig själva. +- Genom att ange exakt den sträng som Safari på iOS 16 skickar, säkerställer du att servern returnerar de mobiloptimerade resurserna (tänk responsiva bilder, adaptiva skript, osv.). + +Om du någonsin behöver **hur man sätter user-agent** för en annan enhet, byt bara ut strängen mot rätt värde—Google Chrome, Firefox, eller till och med en egen bot. + +## Konfigurera Device Pixel Ratio (set device pixel ratio) + +Nu sätter vi faktiskt **device pixel ratio** i sandboxen. Detta är steget som direkt svarar på “**hur man sätter dpr**” för en simulerad miljö. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Förklaring:** +- `Builder`‑mönstret låter dig smidigt bifoga både skärmen (som bär med sig DPR) och user‑agenten. +- När sandboxen renderar ett `HTMLDocument` kommer den att låtsas köra på en enhet med exakt den pixeldensiteten. + +> *Varför du bör bry dig:* Vissa CSS‑media‑queries använder `device-pixel-ratio` (t.ex. `@media (-webkit-min-device-pixel-ratio: 2)`). Om du inte sätter DPR, triggas dessa regler aldrig, och du missar högupplösta resurser. + +## Verifiera sandbox‑konfigurationen (how to set user-agent) + +Låt oss sätta sandboxen i arbete. Följande kodsnutt skapar ett `HTMLDocument`, laddar en sida och skriver ut en bekräftelse på att sandboxen är aktiv. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Förväntad konsolutskrift** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Om du kör programmet och ser den raden har du lyckats **hur man emulerar iPhone** med rätt DPR och user‑agent. Öppna sidan i en riktig webbläsare och inspektera viewport‑dimensionerna—du kommer märka att de matchar de iPhone‑värden vi satte. + +## Vanliga fallgropar och hur man sätter DPR korrekt (how to set dpr) + +Även med rätt kod kan några fällor göra dig frustrerad: + +| Problem | Varför det händer | Lösning | +|-------|----------------|-----| +| **DPR förblir 1** | Du skickade en `Screen` utan det tredje argumentet (DPR). | Använd alltid `new Screen(width, height, dpr)`. | +| **User‑Agent ignoreras** | Sandboxen var inte kopplad till `HTMLDocument`. | Skicka `documentSandbox` som det andra argumentet till `HTMLDocument`‑konstruktorn. | +| **Fel dimensioner** | Du använder enhetspixlar istället för CSS‑pixlar. | Kom ihåg: bredd/höjd är **CSS‑pixlar**, inte hårdvarupixlar. | +| **Servern skickar fortfarande desktop‑CSS** | Vissa webbplatser använder JavaScript för att upptäcka enheter, inte bara headern. | Överväg även att injicera en viewport‑meta‑tagg om det behövs. | + +Genom att ha dessa i åtanke kommer du sällan stöta på en situation där emuleringen inte beter sig som förväntat. + +## Utöka sandboxen – nästa steg + +Nu när du vet **hur man sätter anpassad user agent** och **hur man sätter dpr**, kan du experimentera vidare: + +- **Ändra skärmstorleken** för att emulera surfplattor eller större telefoner. +- **Byt user‑agent** för att testa Chrome på Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Lägg till cookies eller headers** via sandboxens `setHeaders`‑metod för autentiserad testning. +- **Fånga en skärmdump** med `HTMLDocument.renderToFile("output.png")` för att automatiskt jämföra visuella skillnader. + +Dessa tillägg låter dig bygga ett fullständigt test‑härmar utan att någonsin lämna din IDE. + +--- + +## Slutsats + +Vi har gått igenom **hur man emulerar iPhone** med Aspose.HTML:s `DocumentSandbox`, visat dig exakt **hur man sätter anpassad user agent**, **hur man sätter device pixel ratio**, och även de subtila skillnaderna mellan “**hur man sätter user-agent**” och “**hur man sätter dpr**”. Det kompletta, körbara exemplet demonstrerar varje del på ett ställe, så du kan kopiera‑klistra, justera och börja testa mobila layouter omedelbart. + +Prova—byt skärmdimensionerna, lek med olika user‑agents, och se hur dina sidor reagerar. När du behärskar dessa inställningar blir felsökning av responsiva designer en barnlek, och du sparar otaliga timmar på att jaga buggar på riktiga enheter. + +Har du frågor eller vill dela dina egna varianter? Lägg en kommentar nedan, och lycka till med emuleringen! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/advanced-usage/_index.md b/html/thai/java/advanced-usage/_index.md index 70dac17ce..028e7941c 100644 --- a/html/thai/java/advanced-usage/_index.md +++ b/html/thai/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Aspose.HTML ให้คุณแนบ `DomMutationObserver` ไปยังโ เรียนรู้วิธีปรับขนาดหน้า XPS ด้วย Aspose.HTML for Java ควบคุมขนาดผลลัพธ์ของเอกสาร XPS ของคุณได้อย่างง่ายดาย ### [วิธีรัน JavaScript ใน Java – คู่มือฉบับสมบูรณ์](./how-to-run-javascript-in-java-complete-guide/) เรียนรู้วิธีฝังและรันโค้ด JavaScript ภายในแอปพลิเคชัน Java ด้วย Aspose.HTML อย่างละเอียด +### [ตัวอย่าง top-level await – การใช้ await delay ใน JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +เรียนรู้วิธีใช้ top-level await พร้อมฟังก์ชัน delay ใน JavaScript ด้วย Aspose.HTML --- diff --git a/html/thai/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/thai/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..8413e1801 --- /dev/null +++ b/html/thai/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: ตัวอย่าง top‑level await แสดงการใช้ await delay ใน JavaScript, คลาสเพิ่มตัวนับ, + และฟิลด์สาธารณะของคลาสใน JavaScript ในการสาธิตสด. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: th +og_description: ตัวอย่าง top‑level await ที่สาธิตการใช้ await delay ใน JavaScript, + คลาสเพิ่มตัวนับ, และฟิลด์สาธารณะของคลาสใน JavaScript อย่างกระชับ. +og_title: ตัวอย่าง top‑level await – การใช้ await delay ใน JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: ตัวอย่าง top‑level await – การใช้ await delay ใน JavaScript +url: /th/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ตัวอย่าง top level await – การใช้ await delay ใน JavaScript + +เคยสงสัยไหมว่าจะหยุดการทำงานของโมดูลโดยไม่ต้องห่อทุกอย่างใน async IIFE? นั่นคือสิ่งที่ **top level await example** ทำให้คุณทำได้ ในบทเรียนนี้เราจะเดินผ่านหน้าเว็บขนาดเล็กที่ใช้ `await delay javascript` เพื่อเลื่อนการทำงาน แล้วสร้าง `increment counter class` ที่ใช้ **public class fields javascript** เมื่อจบคุณจะได้สแนปช็อตที่พร้อมคัดลอก‑วางและทำงานในเบราว์เซอร์สมัยใหม่ใดก็ได้ + +เราจะครอบคลุมทุกอย่างตั้งแต่การกำหนดคลาสด้วยฟิลด์สาธารณะจนถึงการต่อสายช่วยเหลือ delay แบบ promise ไม่ต้องใช้ไลบรารีภายนอก ไม่ต้องขั้นตอน build—แค่ HTML ธรรมดา, ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### ผลลัพธ์ที่คาดว่าจะเห็นใน Console + +``` +Counter class initialized +Final count: 1 +``` + +หากคุณเปิดหน้าใน DevTools คุณควรเห็นข้อความจาก static‑block ปรากฏ **ก่อน** ที่ delay จะเสร็จสิ้น ยืนยันว่าคลาสถูกประเมินค่าแรก + +## ขั้นตอนที่ 5 – ทำไมต้องใช้ Public Class Fields แทน Constructor? + +คุณอาจสงสัยว่าทำไมเราไม่ได้เขียนแบบนี้: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +ทั้งสองวิธีทำงานได้, แต่ **public class fields javascript** ให้ไวยากรณ์ที่สะอาดและเป็น declarative มากกว่า ฟิลด์ถูกกำหนดเพียงครั้งเดียว ไม่ได้อยู่ในทุกการเรียก constructor ซึ่งทำให้อ่านง่ายเมื่อคลาสขยายใหญ่ขึ้น นอกจากนี้ static block ไม่สามารถวางไว้ใน constructor ได้ จึงทำให้การแยกโลจิกการเริ่มต้นเป็นธรรมชาติมากขึ้น + +## ขั้นตอนที่ 6 – ปรับตัวอย่างให้เหมาะกับแอปจริง + +ใน production คุณมักต้องการมากกว่าตัวนับเดียว นี่คือไอเดียสั้น ๆ: + +- **หลายตัวนับ:** เก็บไว้ใน `Map` ที่ใช้ identifier เป็นคีย์ +- **สถานะคงที่:** แทนที่ `console.log` ด้วยการเขียนลง `localStorage` +- **การเริ่มต้นแบบ async:** ใช้ static block เพื่อดึง configuration จากเซิร์ฟเวอร์ก่อนสร้างอินสแตนซ์ใด ๆ + +รูปแบบทั้งหมดนี้ยังคงได้ประโยชน์จาก top‑level await เพราะคุณสามารถดึงข้อมูลครั้งเดียวเมื่อโมดูลโหลดและรับประกันว่าพร้อมใช้งานสำหรับทุก consumer + +## คำถามที่พบบ่อย + +**Q: top‑level await ทำให้โมดูลอื่นหยุดทำงานหรือไม่?** +A: ไม่ โมดูลแต่ละตัวทำงานอิสระ โมดูลที่มี await จะหยุดเท่านั้น โมดูลอื่นยังคงโหลดพร้อมกัน + +**Q: ถ้า promise ของ delay ปฏิเสธจะเกิดอะไรขึ้น?** +A: การปฏิเสธที่ไม่ได้จัดการจะทำให้การประเมินโมดูลหยุดและแสดง error ใน console ให้ใส่ `try…catch` รอบ await หากต้องการ fallback ที่นุ่มนวล + +**Q: คีย์เวิร์ด `static` จำเป็นหรือไม่?** +A: ไม่จำเป็นสำหรับตัวนับเอง, แต่ static block เป็นวิธีที่สะดวกเพื่อแสดงว่าโค้ดทำงาน *ครั้งเดียว* ตอนโหลด—เหมาะสำหรับการล็อกหรือการตรวจจับฟีเจอร์ + +## สรุป + +คุณเพิ่งสร้าง **top level await example** ที่แสดง `await delay javascript`, **increment counter class**, และพลังของ **public class fields javascript** สแนปช็อตที่ทำงานได้เต็มรูปแบบอยู่ด้านบน และผลลัพธ์ใน console ยืนยันว่า static block ทำงานก่อนโค้ดที่ล่าช้า + +จากนี้คุณสามารถทดลองกับ flow async ที่ซับซ้อนขึ้น, เปลี่ยน delay ให้เป็นการเรียก API จริง, หรือขยายคลาสด้วยเมธอดเพิ่มเติม จำไว้ว่า JavaScript สมัยใหม่ทำให้โมดูลเป็น async entity ชั้นแรก—ไม่ต้องห่อเพิ่มเติม + +ขอให้สนุกกับการโค้ด, และอย่าลืมแชร์เวอร์ชันของคุณในคอมเมนต์ หากบทความนี้เป็นประโยชน์, แชร์ให้เพื่อนร่วมทีมที่ยังต่อสู้กับ async pattern กันอยู่! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/conversion-html-to-other-formats/_index.md b/html/thai/java/conversion-html-to-other-formats/_index.md index aa3e49be5..5c7bef173 100644 --- a/html/thai/java/conversion-html-to-other-formats/_index.md +++ b/html/thai/java/conversion-html-to-other-formats/_index.md @@ -95,10 +95,15 @@ Aspose.HTML for Java ทำให้กระบวนการแปลง HTML เรียนรู้วิธีแปลง HTML เป็น PDF ใน Java ด้วย Aspose.HTML สร้าง PDF คุณภาพสูงจากเนื้อหา HTML ของคุณได้อย่างง่ายดาย ### [Convert HTML to PDF in Java – Step‑by‑Step Guide with Page Size Settings](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) เรียนรู้ขั้นตอนการแปลง HTML เป็น PDF ใน Java พร้อมการตั้งค่าขนาดหน้าอย่างละเอียด +### [สร้าง PDF ขนาดกำหนดเอง – แปลง HTML เป็น PDF ด้วย Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +เรียนรู้วิธีกำหนดขนาดหน้า PDF ที่กำหนดเองขณะแปลง HTML เป็น PDF ด้วย Aspose.HTML for Java +### [สร้าง PDF จาก HTML ใน Java – คู่มือการแปลงแบบแบตช์ขนาน](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +เรียนรู้วิธีแปลงหลายไฟล์ HTML เป็น PDF พร้อมกันใน Java ด้วย Aspose.HTML เพื่อเพิ่มประสิทธิภาพการประมวลผลแบบขนาน ### [Converting HTML to MHTML](./convert-html-to-mhtml/) แปลง HTML เป็น MHTML อย่างไม่มีความยุ่งยากด้วย Aspose.HTML for Java ทำตามคู่มือขั้นตอน‑ต่อ‑ขั้นตอนสำหรับการแปลง HTML‑to‑MHTML ที่มีประสิทธิภาพ ### [Converting HTML to XPS](./convert-html-to-xps/) เรียนรู้วิธีแปลง HTML เป็น XPS อย่างง่ายดายด้วย Aspose.HTML for Java สร้างเอกสารข้ามแพลตฟอร์มได้อย่างราบรื่น +### [แปลง HTML เป็น Markdown ใน Java – รักษาการจัดรูปแบบเดิม](./convert-html-to-markdown-in-java-preserve-original-formattin/) ### [Converting Markdown to HTML](./convert-markdown-to-html/) แปลง Markdown เป็น HTML ใน Java อย่างราบรื่นด้วย Aspose.HTML for Java ทำตามคู่มือขั้นตอน‑ต่อ‑ขั้นตอนเพื่อทำให้การแปลงเอกสารของคุณเป็นเรื่องง่าย ### [Converting SVG to Image](./convert-svg-to-image/) diff --git a/html/thai/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/thai/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..1761e6086 --- /dev/null +++ b/html/thai/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: แปลง HTML เป็น markdown และสร้างไฟล์ markdown พร้อมรักษาการจัดรูปแบบเดิมโดยใช้การแปลง + HTML ของ Aspose ใน Java เรียนรู้แบบทีละขั้นตอน. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: th +og_description: แปลง HTML เป็น markdown อย่างรวดเร็ว สร้างไฟล์ markdown และคงรูปแบบเดิมด้วยการแปลง + HTML ของ Aspose สำหรับ Java. +og_title: แปลง HTML เป็น Markdown ใน Java – รักษาการจัดรูปแบบ +tags: +- Aspose +- Java +- Markdown +title: แปลง HTML เป็น Markdown ใน Java – รักษาการจัดรูปแบบเดิม +url: /th/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# แปลง HTML เป็น Markdown ใน Java – รักษาการจัดรูปแบบเดิม + +เคยต้อง **แปลง HTML เป็น markdown** แต่กังวลว่าจะเสียช่องว่าง ตาราง หรือแท็กแบบอินไลน์หรือไม่? คุณไม่ได้เป็นคนเดียว นักพัฒนาหลายคนเจอปัญหานี้เมื่อต้องย้ายเนื้อหาจากหน้าเว็บไปเป็นรูปแบบที่เป็นมิตรกับระบบควบคุมเวอร์ชัน ข่าวดีคือ ด้วยเพียงไม่กี่บรรทัดของ Java และ Aspose HTML คุณสามารถ **สร้างไฟล์ markdown** ที่ดูเหมือนต้นฉบับ ทั้งช่องว่างและทุกอย่าง + +ในคู่มือนี้เราจะเดินผ่านกระบวนการทั้งหมด: โหลดไฟล์ HTML ที่ซับซ้อน, ตั้งค่าการแปลงให้ **รักษาการจัดรูปแบบเดิม**, แล้วเขียนผลลัพธ์ลงใน `preserved.md` เมื่อเสร็จคุณจะได้โค้ดสั้นที่พร้อมรัน, เข้าใจ *ทำไม* การตั้งค่าแต่ละอย่างถึงสำคัญ, และรู้วิธีปรับโค้ดสำหรับกรณีขอบเช่น CSS กำหนดเองหรือสคริปต์ฝัง + +## สิ่งที่คุณต้องมี + +- Java 17 (หรือ JDK ล่าสุดใดก็ได้) – API ทำงานกับ Java 8+ แต่เวอร์ชันใหม่ให้ประสิทธิภาพดีกว่า +- ไลบรารี Aspose HTML for Java (เวอร์ชัน 23.11 หรือใหม่กว่า) คุณสามารถดึงจาก Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- ตัวอย่างไฟล์ HTML (`complex.html`) ที่มีหัวข้อ, ตาราง, บล็อกโค้ด, และอาจมีสไตล์อินไลน์ `` +- ความอดทนเล็กน้อยและความพร้อมที่จะทดลอง + +เท่านี้เอง ไม่ต้องใช้เครื่องมือภายนอก ไม่ต้อง hack คำสั่งบรรทัด—แค่โค้ด Java ธรรมดา + +## ขั้นตอนที่ 1: โหลดเอกสาร HTML ต้นฉบับ + +สิ่งแรกที่เราทำคือสร้างอินสแตนซ์ `HTMLDocument` ที่ชี้ไปยังไฟล์ต้นฉบับของคุณ Aspose HTML จะถือไฟล์เป็น DOM ซึ่งหมายความว่าคุณสามารถตรวจสอบหรือแก้ไขก่อนแปลงได้หากต้องการ + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **ทำไมเรื่องนี้สำคัญ:** การโหลดเอกสารแบบนี้ทำให้ทรัพยากรที่เชื่อมโยง (stylesheet, รูปภาพ) ถูกแก้ไขตามตำแหน่งไฟล์ หากข้ามขั้นตอนนี้และป้อนสตริงดิบ คุณอาจเสีย CSS ภายนอกที่มีผลต่อการจัดช่องว่าง—สิ่งที่คุณต้องการ **รักษาการจัดรูปแบบเดิม** อย่างแน่นอน + +## ขั้นตอนที่ 2: ตั้งค่าตัวเลือกการแปลงเป็น Markdown + +Aspose HTML มีคลาส `MarkdownConversionOptions` คุณสมบัติสำคัญสำหรับเราคือ `setPreserveOriginalFormatting(true)` เมื่อเปิดใช้งาน ตัวแปลงจะคงการขึ้นบรรทัด, การเยื้อง, และแม้แต่สแนปเพ็ต HTML ดิบที่ markdown ไม่สามารถแสดงได้โดยตรง + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **เคล็ดลับ:** หากคุณพบว่าบางสไตล์อินไลน์ถูกตัดออก คุณสามารถเรียก `markdownOptions.setIncludeHtml(true)` เพื่อบังคับให้บล็อก HTML ดิบเข้าสู่ผลลัพธ์ markdown + +## ขั้นตอนที่ 3: ทำการแปลง + +ตอนนี้เราจะส่ง `HTMLDocument`, เส้นทางไฟล์เป้าหมาย, และตัวเลือกของเราไปยังเมธอดสแตติก `Converter.convertHTML` เมธอดนี้จะทำงานหนักทั้งหมดให้คุณ + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +เมื่อการเรียกเสร็จสิ้น คุณจะพบ `preserved.md` อยู่ข้างไฟล์ต้นฉบับของคุณ เปิดไฟล์ในโปรแกรมแก้ไขใดก็ได้—สังเกตว่าการขึ้นบรรทัดและการจัดแนวตารางยังคงอยู่เหมือนเดิม + +## ขั้นตอนที่ 4: ตรวจสอบผลลัพธ์ (ไม่บังคับแต่แนะนำ) + +การตรวจสอบอย่างเร็วช่วยให้คุณหลีกเลี่ยงบั๊กละเอียดในภายหลัง คุณสามารถอ่านไฟล์กลับเข้า Java แล้วพิมพ์บรรทัดแรก ๆ หรือเปิดใน VS Code ก็ได้ + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +คุณควรเห็นอะไรประมาณนี้: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +แท็ก `` ยังคงอยู่เพราะไวยากรณ์ตารางของ markdown ไม่สามารถจับสไตล์ที่แม่นยำได้—ขอบคุณ `preserve original formatting` + +## ขั้นตอนที่ 5: สรุปเป็นตัวอย่างเต็มที่พร้อมรัน + +ด้านล่างเป็นคลาสเต็มที่พร้อมรัน แทนที่ `YOUR_DIRECTORY` ด้วยเส้นทางจริงบนเครื่องของคุณ + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +รันโปรแกรมด้วย `mvn exec:java` หรือ IDE ที่คุณชอบ แล้วคุณจะได้ **ไฟล์ markdown ที่สร้างขึ้น** ที่สะท้อนเลย์เอาต์ HTML ดั้งเดิมอย่างแม่นยำ + +## คำถามที่พบบ่อย & กรณีขอบ + +### ทำงานกับไฟล์ CSS ภายนอกได้หรือไม่? + +ได้ ทั้งที่ไฟล์ CSS สามารถเข้าถึงได้ผ่านเส้นทางสัมพันธ์ Aspose HTML จะโหลดโดยอัตโนมัติ หากคุณดึง HTML จาก URL ระยะไกล คุณอาจต้องตั้งค่าอ็อบเจกต์ `ResourceLoadingOptions` เพื่ออนุญาตการเข้าถึงเครือข่าย + +### อยากไม่มี HTML ดิบใน markdown จะทำอย่างไร? + +สลับตัวเลือกดังนี้: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +ตัวแปลงจะพยายามแปลงทุกอย่างเป็นไวยากรณ์ markdown บริสุทธิ์ ซึ่งอาจทำให้การจัดรูปแบบบางอย่างสูญหาย + +### สามารถแปลงจากสตริงแทนไฟล์ได้หรือไม่? + +ทำได้เลย ใช้คอนสตรัคเตอร์ที่รับ `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +แล้วส่ง `doc` ไปยัง `Converter.convertHTML` เหมือนเดิม + +### แตกต่างจากไลบรารีอื่นเช่น Flexmark หรือ pandoc อย่างไร? + +เครื่องมือโอเพนซอร์สส่วนใหญ่ถือ HTML เป็นข้อความธรรมดาและตัดช่องว่างอย่างรุนแรง ฟีเจอร์ `preserveOriginalFormatting` ของ Aspose HTML เป็น **คุณสมบัติที่เป็นกรรมสิทธิ์** ที่เคารพช่องว่าง, การขึ้นบรรทัด, และแม้แต่แท็กที่ไม่รองรับโดยแปลงเป็นบล็อก HTML ดิบ นั่นคือเหตุผลที่บทเรียนนี้เน้น **aspose html conversion** สำหรับนักพัฒนา Java ที่ต้องการความแม่นยำสูง + +## เคล็ดลับสำหรับการใช้งานใน Production + +- **ประมวลผลเป็นชุด:** ห่อโลจิกการแปลงในลูปเพื่อจัดการหลายไฟล์ HTML พร้อมกัน +- **การจัดการข้อผิดพลาด:** ดัก `IOException` และ `com.aspose.html.exceptions.AssertionFailedException` เพื่อแจ้งทรัพยากรที่หายไป +- **ประสิทธิภาพ:** ใช้อินสแตนซ์ `HTMLDocument` เดียวเมื่อแปลงส่วนย่อยของไซต์ขนาดใหญ่; ไลบรารีจะเก็บ CSS ที่พาร์สไว้ในแคช + +## สรุป + +เราได้แสดงวิธี **แปลง HTML เป็น markdown** ใน Java พร้อมรับประกันว่าผลลัพธ์ **รักษาการจัดรูปแบบเดิม** โค้ดสั้นที่รวมทุกขั้นตอน—from การโหลดเอกสาร HTML ไปจนถึงการตั้งค่า `MarkdownConversionOptions`, การแปลง, และการตรวจสอบผลลัพธ์ ด้วย API ที่แข็งแกร่งของ Aspose HTML คุณสามารถ **สร้างไฟล์ markdown** ได้โดยอัตโนมัติ ไม่ว่าจะเป็นการสร้าง static‑site generator, pipeline เอกสาร, หรือเครื่องมือย้ายเนื้อหา + +ต่อไปคุณอาจสำรวจ: + +- ใช้ **html to markdown java** สำหรับการย้ายจำนวนมากทั่วทั้งเว็บไซต์ +- ปรับตัวเลือกการแปลงเพื่อให้ได้ตาราง markdown แบบ GitHub‑flavored +- ผสานวิธีนี้กับขั้นตอน CI/CD ที่อัปเดตเอกสารโดยอัตโนมัติเมื่อ HTML ต้นฉบับเปลี่ยน + +ลองเล่นดูได้เลย และแสดงความคิดเห็นหากเจออุปสรรคใด ๆ ขอให้สนุกกับการเขียนโค้ด! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/thai/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..d43a665bd --- /dev/null +++ b/html/thai/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,194 @@ +--- +category: general +date: 2026-03-26 +description: สร้าง PDF ขนาดกำหนดเองจาก HTML ด้วย Aspose.HTML สำหรับ Java เรียนรู้วิธีแปลง + HTML เป็น PDF และตั้งค่าขนาดหน้าของ PDF เพียงไม่กี่ขั้นตอน +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: th +og_description: สร้างไฟล์ PDF ขนาดกำหนดเองจาก HTML ด้วย Aspose คู่มือนี้จะแสดงวิธีแปลง + HTML เป็น PDF, ปรับขนาดหน้าของ PDF, และตั้งค่าขนาดหน้าของ PDF อย่างง่ายดาย +og_title: สร้าง PDF ขนาดกำหนดเอง – คู่มือเร็วในการแปลง HTML เป็น PDF +tags: +- aspose +- java +- pdf +- html +title: สร้าง PDF ขนาดกำหนดเอง – แปลง HTML เป็น PDF ด้วย Aspose +url: /th/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง PDF ขนาดกำหนดเอง – แปลง HTML เป็น PDF ด้วย Aspose + +เคยต้องการ **สร้าง PDF ขนาดกำหนดเอง** จากไฟล์ HTML หรือไม่? ในบทแนะนำนี้เราจะสาธิตวิธี **แปลง HTML เป็น PDF** และตั้งค่าขนาดหน้าของ PDF ด้วย Aspose.HTML สำหรับ Java + +หากคุณกำลังสร้างใบแจ้งหนี้, รายงาน หรือ e‑books การได้ขนาดหน้าที่แม่นยำเป็นสิ่งสำคัญ—ไม่เช่นนั้นการจัดวางของคุณอาจดูเอียงหรือถูกตัดออก + +เราจะเดินผ่านทุกขั้นตอน ตั้งแต่การโหลด HTML ต้นฉบับจนถึงการปรับขอบ แล้วจบด้วย PDF ที่พร้อมใช้งาน ไม่ได้อ้างอิงแบบคลุมเครือ เพียงตัวอย่างที่สมบูรณ์และสามารถรันได้ทันทีที่คุณคัดลอก‑วางวันนี้ + +## สิ่งที่คุณต้องการ + +- **Java 17** (หรือ JDK เวอร์ชันล่าสุดใดก็ได้) +- **Aspose.HTML for Java** JARs – คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดจาก Maven repository หรือเว็บไซต์ Aspose +- ไฟล์ `input.html` ง่าย ๆ ที่วางไว้ในโฟลเดอร์ที่คุณควบคุม +- IDE หรือโปรแกรมแก้ไขข้อความที่คุณชอบ; ฉันมักเขียนโค้ดใน IntelliJ IDEA แต่ Eclipse ก็ทำงานได้ดีเช่นกัน + +การมีสิ่งเหล่านี้เป็นเงื่อนไขเบื้องต้นหมายความว่าคุณจะไม่เจอข้อผิดพลาด “class not found” กลางทาง + +ตอนนี้, มาเริ่มกันเลย + +![ตัวอย่างการสร้าง PDF ขนาดกำหนดเอง](/images/create-pdf-custom-size.png "ภาพหน้าจอแสดง PDF ที่สร้างด้วยขนาดหน้าและขอบกำหนดเอง – create pdf custom size") + +## สร้าง PDF ขนาดกำหนดเอง – ขั้นตอนหลัก + +ด้านล่างเป็นโปรแกรม Java เต็มรูปแบบที่คุณจะได้ผลลัพธ์ออกมา คัดลอกไปยังไฟล์ชื่อ `ConvertHtmlToPdfCustomPage.java` แล้วรันหลังจากเพิ่ม dependencies ของ Aspose ลงในโปรเจกต์ของคุณ + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### ขั้นตอนที่ 1 – แปลง HTML เป็น PDF: โหลดเอกสาร + +สิ่งแรกที่เราทำคือ **โหลด HTML** ที่ต้องการแปลงเป็น PDF +`HTMLDocument` จะอ่านไฟล์, แก้ลิงก์แบบ relative, และสร้าง DOM ที่ Aspose สามารถเรนเดอร์ได้ + +> **ทำไมเรื่องนี้ถึงสำคัญ:** หาก HTML อ้างอิง CSS หรือรูปภาพ Aspose จะดึงไฟล์เหล่านั้นตามเส้นทางของไฟล์ การใช้เส้นทางแบบ absolute (`YOUR_DIRECTORY/input.html`) จะช่วยหลีกเลี่ยงความประหลาดใจ “file not found” + +### ขั้นตอนที่ 2 – เปลี่ยนขนาดหน้า PDF: กำหนดตัวเลือก + +ที่นี่เราสร้างอ็อบเจกต์ `PdfConversionOptions` +- `setPageSize(PageSize.A4)` บอก Aspose ให้ใช้ขนาดมาตรฐาน A4 (210 × 297 mm) +- `setPageOrientation(...)` จะสลับหน้าเป็นแนวนอนหากต้องการ +- `setMargins(new Margin(20, 20, 20, 20))` ตั้งขอบ 20 point ทุกด้าน + +คุณสามารถแทนที่ `PageSize.A4` ด้วย `PageSize.LETTER` หรือแม้แต่ **ขนาดกำหนดเอง** โดยส่งอ็อบเจกต์ `SizeF` เช่น: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **เคล็ดลับ:** หนึ่ง point เท่ากับ 1/72 inch หากคิดเป็นมิลลิเมตร ให้คูณด้วย 2.83465 เพื่อแปลงเป็น point + +### ขั้นตอนที่ 3 – สร้าง PDF จาก HTML: รันการแปลง + +`Converter.convertHTML` ทำหน้าที่หลักทั้งหมด มันรับ `HTMLDocument` ที่โหลดแล้ว, เส้นทางไฟล์ผลลัพธ์, และตัวเลือกที่เราตั้งค่าไว้ + +หากคุณต้องการ **ตั้งค่าขนาดหน้า PDF** แบบไดนามิกตามเนื้อหา คุณสามารถคำนวณขนาดที่ต้องการก่อนขั้นตอนนี้และปรับ `pdfOptions` ตามนั้นได้ + +### ขั้นตอนที่ 4 – ตรวจสอบผลลัพธ์ + +บรรทัด `System.out.println` เป็นตัวเลือกเสริม แต่ช่วยให้คุณได้รับฟีดแบ็กอย่างรวดเร็วเมื่อรันโปรแกรมจากคอนโซล หลังจากทำงานเสร็จ เปิดไฟล์ `custom_page.pdf` – คุณควรเห็น PDF A4 แนวตั้งที่มีขอบ 20 point สม่ำเสมอ ตามที่เรากำหนดไว้ + +## แปลง HTML เป็น PDF – ตัวแปรทั่วไป + +### ใช้ Stream แทน File Path + +บางครั้งคุณอาจไม่มีไฟล์จริง; HTML อาจมาจากฐานข้อมูลหรือ API ในกรณีนั้นให้ห่อสตริงด้วย `ByteArrayInputStream` + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +อาร์กิวเมนต์ที่สองคือ base URL สำหรับแก้ลิงก์แบบ relative + +### เปลี่ยนแนวหน้ากระดาษ + +หากรายงานของคุณกว้าง ให้สลับเป็นแนวนอน: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### ปรับแต่งขอบอย่างละเอียด + +ขอบรับค่าทศนิยมได้ ดังนั้นคุณสามารถตั้งค่า 0.5 pt เพื่อขอบบางระดับเส้นผมได้ + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### จัดการไฟล์ HTML ขนาดใหญ่ + +สำหรับเอกสารขนาดมหาศาล ให้พิจารณาเปิดใช้งาน **memory‑efficient streaming** + +```java +pdfOptions.setUseMemoryCache(true); +``` + +วิธีนี้ทำให้ Aspose เขียนข้อมูลชั่วคราวลงไฟล์แทนการเก็บทั้งหมดใน RAM + +## ตั้งค่าขนาดหน้า PDF – กรณีขอบและข้อควรระวัง + +- **Missing Fonts:** หาก HTML ของคุณใช้ฟอนต์ที่ไม่ได้ติดตั้งบนเซิร์ฟเวอร์ PDF จะใช้ฟอนต์เริ่มต้นแทน ฝังฟอนต์ด้วย `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` +- **Image Scaling:** รูปภาพความละเอียดสูงอาจทำให้ PDF ใหญ่ขึ้น ใช้ `pdfOptions.setImageResolution(150);` เพื่อลดความละเอียดโดยยังคงคุณภาพ +- **CSS Compatibility:** ไม่ใช่ทุกคุณสมบัติของ CSS จะได้รับการสนับสนุนเต็มที่ ใช้เทคนิคการจัดวางมาตรฐาน (flexbox ทำงานได้, แต่ grid อาจมีข้อบกพร่อง) +- **Path Permissions:** ตรวจสอบให้แน่ใจว่ากระบวนการมีสิทธิ์เขียนไปยัง `YOUR_DIRECTORY` มิฉะนั้นจะเกิด `IOException` + +## ผลลัพธ์ที่คาดหวัง + +การรันโปรแกรมจะสร้าง PDF ที่มีลักษณะดังนี้ (ภาพอธิบายแนวคิด): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- ขนาดหน้า: **A4** (210 × 297 mm) +- แนวหน้า: **Portrait** +- ขอบ: **20 pt** ทุกด้าน + +เปิดไฟล์ด้วยโปรแกรมอ่าน PDF ใดก็ได้ (Adobe Reader, Chrome ฯลฯ) เพื่อยืนยัน + +## สรุป + +ตอนนี้คุณรู้วิธี **สร้าง PDF ขนาดกำหนดเอง** จากแหล่ง HTML ด้วย Aspose.HTML สำหรับ Java แล้ว บทแนะนำนี้ครอบคลุมขั้นตอนทั้งหมด: **แปลง HTML เป็น PDF**, **เปลี่ยนขนาดหน้า PDF**, **ตั้งค่าขนาดหน้า PDF**, และ **สร้าง PDF จาก HTML** พร้อมขอบกำหนดเอง + +ลองทดลองปรับเปลี่ยน – สลับ `PageSize.LETTER` เป็นขนาด legal, ปรับขอบ, หรือฝังฟอนต์ของคุณเอง ต่อไปคุณอาจสำรวจ **การเพิ่มลายน้ำ**, **การเข้ารหัส PDF**, หรือ **การประมวลผลหลายไฟล์ HTML พร้อมกัน** ทุกหัวข้อเหล่านี้สร้างบนแนวคิดพื้นฐานที่เราเพิ่งเรียนรู้ + +มีคำถามเกี่ยวกับกรณีขอบเฉพาะหรือไม่? แสดงความคิดเห็นด้านล่าง แล้วฉันจะช่วยคุณแก้ไขปัญหา Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/thai/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..3c39c44d2 --- /dev/null +++ b/html/thai/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: สร้าง PDF จาก HTML อย่างรวดเร็วด้วย fixed thread pool. เรียนรู้การแปลง + HTML เป็น PDF แบบแบตช์และรันงานแบบขนานใน Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: th +og_description: สร้าง PDF จาก HTML อย่างรวดเร็วด้วย Fixed Thread Pool เรียนรู้วิธีแปลง + HTML เป็น PDF เป็นชุดและรันงานแบบขนานใน Java +og_title: สร้าง PDF จาก HTML ใน Java – คู่มือการแปลงแบบแบตช์ขนาน +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: สร้าง PDF จาก HTML ด้วย Java – คู่มือการแปลงแบบแบตช์ขนาน +url: /th/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง PDF จาก HTML ด้วย Java – คู่มือการแปลงแบบแบตช์ขนาน + +เคยต้อง **สร้าง PDF จาก HTML** แล้วรู้สึกติดอยู่กับการแปลงแบบเดี่ยว‑เธรดที่ค่อย ๆ เคลื่อนที่ไปเรื่อย ๆ หรือไม่? คุณไม่ได้เป็นคนเดียว ในหลายโครงการจริง ๆ เราได้รับรายงาน HTML หลายสิบไฟล์ที่ต้องแปลงเป็น PDF ภายในวันทำการเดียว และการทำทีละไฟล์ไม่ใช่วิธีที่ทำได้จริง + +ด้วยเหตุนี้บทเรียนนี้จึงแสดงให้คุณ **วิธีแปลง HTML เป็น PDF** ด้วย **fixed thread pool** เพื่อให้คุณ **batch HTML to PDF** และ **run parallel tasks** ได้โดยไม่ต้องกังวล เมื่อจบคุณจะได้โปรแกรมที่พร้อมรันซึ่งเปลี่ยนโฟลเดอร์ของไฟล์ HTML ให้เป็น PDF ได้เร็วขึ้นหลายเท่า + +## สิ่งที่คุณจะได้เรียนรู้ + +ในไม่กี่ส่วนต่อไปเราจะครอบคลุมทุกอย่างที่คุณต้องรู้: + +* การกำหนด dependency ของ Aspose.HTML (ไลบรารีที่ทำงานหนัก) สำหรับ Maven/Gradle อย่างแม่นยำ +* ทำไม **fixed thread pool** จึงเป็นตัวเลือกที่เหมาะสมสำหรับงานแปลงที่ใช้ CPU มาก +* วิธีการลิสต์ไฟล์ต้นทางเพื่อให้กระบวนการสามารถขยายได้ถึงหลายร้อยเอกสาร +* โค้ดที่คุณคัดลอกไปวางใน IDE — ไม่มีการขาด import, ไม่มีคอมเมนต์ “TODO” +* เคล็ดลับการจัดการข้อผิดพลาด, ปรับขนาด pool, และตรวจสอบผลลัพธ์ + +ไม่จำเป็นต้องมีความรู้ล่วงหน้าเกี่ยวกับ Aspose.HTML เพียงแค่มีการตั้งค่า Java เบื้องต้นและพร้อมทดลองก็พอ เริ่มกันเลย + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*ข้อความแทนภาพ: create pdf from html – แผนภาพการแปลงแบบขนาน* + +## ขั้นตอนที่ 1: เตรียมโปรเจกต์และเพิ่ม Aspose.HTML + +ก่อนอื่นโปรเจกต์ของคุณต้องมีไลบรารี Aspose.HTML หากคุณใช้ Maven ให้ใส่ส่วนนี้ลงใน `pom.xml` ของคุณ: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +สำหรับ Gradle เพียงแค่: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +ทำไมต้องใช้ Aspose.HTML? แม้จะเป็นไลบรารีเชิงพาณิชย์ แต่ให้ **convert html to pdf** API ที่รองรับ CSS, JavaScript, และเลย์เอาต์ซับซ้อนโดยอัตโนมัติ หากคุณต้องการใช้ทางเลือกแบบโอเพ่นซอร์สก็สามารถสลับการเรียก `Converter.convertHTML` ในภายหลังได้ แต่ตรรกะการทำงานแบบหลายเธรดจะยังคงเหมือนเดิม + +> **เคล็ดลับ:** ควรอัปเดตหมายเลขเวอร์ชันให้ตรงกับโน้ตเวอร์ชันทางการ; เวอร์ชันใหม่มักปรับปรุงความเร็วในการเรนเดอร์ ซึ่งสำคัญเมื่อคุณรันหลายงานพร้อมกัน + +## ขั้นตอนที่ 2: สร้าง Fixed Thread Pool สำหรับการแปลงแบบขนาน + +เมื่อคุณมีไฟล์หลายไฟล์ ไม่ต้องการสร้างเธรดไม่จำกัดจำนวน—ระบบปฏิบัติการจะเริ่ม “thrashing” Fixed thread pool จะให้ระดับความพร้อมทำงานที่คาดเดาได้และควบคุมการใช้หน่วยความจำได้ดี + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +ทำไมถึงเลือกสี่? บนเครื่อง 8‑core ปกติ ครึ่งหนึ่งของคอร์จะปล่อยให้ระบบ I/O และ OS ใช้งานได้ คุณสามารถทดลองได้: `Runtime.getRuntime().availableProcessors()` จะคืนค่าจำนวนคอร์ และกฎโดยประมาณคือ `cores / 2` จำไว้ว่าแต่ละการแปลงใช้ CPU มาก ดังนั้นการมีเธรดมากกว่าคอร์มักทำให้ประสิทธิภาพลดลง + +## ขั้นตอนที่ 3: รวบรวมไฟล์ HTML ที่ต้องการแปลง + +ส่วนต่อไปของปริศนาคือรายการ **batch html to pdf** คุณสามารถกำหนดอาเรย์แบบคงที่ (เช่นในตัวอย่าง) หรือสแกนโฟลเดอร์ได้ นี่คือตัวอย่างที่อ่านไฟล์ `.html` ทุกไฟล์จากโฟลเดอร์: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +วิธีนี้ทำให้คุณสามารถวางไฟล์ใหม่ลงในโฟลเดอร์และโปรแกรมจะดึงไฟล์เหล่านั้นโดยอัตโนมัติ — เหมาะกับงานแบตช์ประจำคืน + +## ขั้นตอนที่ 4: ส่งงานแปลงสำหรับแต่ละไฟล์ (Run Parallel Tasks) + +ตอนนี้ถึงส่วนสนุก: แต่ละไฟล์จะกลายเป็น **Runnable** (หรือ `Callable`) ที่ pool จะทำงาน โค้ดด้านล่างเป็นการทำซ้ำจากตัวอย่างเดิมแต่เพิ่มการจัดการข้อผิดพลาดและข้อความล็อกสั้น ๆ + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**ทำไมต้องห่อการแปลงใน try‑catch?** เมื่อคุณ **run parallel tasks** ไฟล์ HTML ที่มีรูปแบบผิดพลาดเพียงไฟล์เดียวอาจทำให้ executor ทั้งหมดล่มได้ การจับข้อยกเว้นในระดับท้องถิ่นช่วยให้แบตช์ส่วนที่เหลือทำงานต่อได้ + +## ขั้นตอนที่ 5: ปิด Executor และรอให้ทำงานเสร็จ + +หลังจากส่งงานทั้งหมดแล้ว คุณต้องบอก pool ให้หยุดรับงานใหม่และรอจนกว่าทุกอย่างจะเสร็จสิ้น เพื่อให้แน่ใจว่า JVM จะไม่ออกก่อนเวลา + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +หากคุณมีโฟลเดอร์ขนาดใหญ่ (หลายพันไฟล์) คุณอาจเพิ่ม timeout หรือทำ progress monitor คีย์สำคัญคือ **gracefully shut down** — นี่คือสัญญาณของโค้ดที่พร้อมใช้งานในสภาพการผลิต + +## ตัวอย่างทำงานเต็มรูปแบบ + +รวมทุกอย่างเข้าด้วยกัน นี่คือคลาสที่สามารถคัดลอก‑วางลงใน `src/main/java` แล้วรันได้: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**ผลลัพธ์ที่คาดหวัง** (ตัวอย่าง): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +เมื่อคุณเปิดไฟล์ `.pdf` ที่สร้างขึ้น คุณจะเห็นว่าเลย์เอาต์ HTML ดั้งเดิมยังคงอยู่ — ฟอนต์, ตาราง, และแม้แต่เนื้อหาที่ขับเคลื่อนด้วย JavaScript เบื้องต้นก็ถูกเรนเดอร์อย่างถูกต้อง + +## คำถามที่พบบ่อย & กรณีขอบ + +| คำถาม | คำตอบ | +|----------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/conversion-html-to-various-image-formats/_index.md b/html/thai/java/conversion-html-to-various-image-formats/_index.md index 755481956..8b695241f 100644 --- a/html/thai/java/conversion-html-to-various-image-formats/_index.md +++ b/html/thai/java/conversion-html-to-various-image-formats/_index.md @@ -97,8 +97,9 @@ weight: 24 เรียนรู้วิธีการแปลง HTML เป็นภาพ PNG ใน Java ด้วย Aspose.HTML คู่มือฉบับสมบูรณ์พร้อมคำแนะนำทีละขั้นตอน ### [การแปลง HTML เป็น TIFF](./convert-html-to-tiff/) เรียนรู้วิธีการแปลง HTML เป็น TIFF ได้อย่างง่ายดายโดยใช้ Aspose.HTML สำหรับ Java คู่มือทีละขั้นตอนเพื่อการจัดการเอกสารอย่างมีประสิทธิภาพ -### [แปลง HTML เป็น WebP – คู่มือ Java ฉบับสมบูรณ์ด้วย Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [แปลง HTML เป็น WebP – คู่มือ Java ฉบับสมบูรณ์ด้วย Aspose.HTML](./convert-html-to-webp-complete-java-guide/) เรียนรู้วิธีการแปลง HTML เป็น WebP ใน Java ด้วย Aspose.HTML คู่มือทีละขั้นตอนสำหรับการแปลงที่มีประสิทธิภาพ +### [สร้างไฟล์ TIFF หลายหน้าจาก SVG ใน Java – คู่มือขั้นตอนโดยละเอียด](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) ## คำถามที่พบบ่อย diff --git a/html/thai/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/thai/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..23837cf30 --- /dev/null +++ b/html/thai/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,222 @@ +--- +category: general +date: 2026-03-26 +description: แปลง HTML เป็น WebP อย่างรวดเร็วด้วย Aspose.HTML เรียนรู้วิธีบันทึก HTML + เป็น WebP, แสดงผล HTML เป็น WebP, และสร้าง WebP จาก HTML เพียงไม่กี่ขั้นตอน. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: th +og_description: แปลง HTML เป็น WebP อย่างรวดเร็วด้วย Aspose.HTML บทเรียนนี้แสดงวิธีเรนเดอร์ + HTML เป็น WebP และสร้าง WebP จาก HTML ด้วย Java. +og_title: แปลง HTML เป็น WebP – คู่มือ Java ฉบับสมบูรณ์ +tags: +- Java +- Aspose.HTML +- Image Conversion +title: แปลง HTML เป็น WebP – คู่มือ Java ฉบับสมบูรณ์ +url: /th/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# แปลง HTML เป็น WebP – คู่มือ Java ฉบับสมบูรณ์ + +เคยต้องการ **แปลง HTML เป็น WebP** แต่ไม่แน่ใจว่ามีไลบรารีไหนที่สามารถทำงานได้โดยไม่มีปัญหาไหม? คุณไม่ได้เป็นคนเดียว นักพัฒนาหลายคนเจออุปสรรคนี้เมื่อต้องให้บริการภาพที่มีขนาดเบาจากหน้าเว็บแบบไดนามิก ข่าวดีคือ? ด้วย Aspose.HTML for Java คุณสามารถ *บันทึก HTML เป็น WebP* ด้วยการเรียกเมธอดเดียว และกระบวนการทั้งหมดราบรื่นเหมือนเนย + +ในบทแนะนำนี้เราจะพาคุณผ่านทุกขั้นตอนที่ต้องรู้: ตั้งแต่การตั้งค่า dependency ของ Aspose.HTML, ปรับแต่งการบีบอัด, จนถึงการเรนเดอร์เอกสาร HTML เป็นไฟล์ WebP ที่คุณสามารถให้บริการบนเว็บได้ เมื่อจบคุณจะสามารถ **render HTML as WebP**, **generate WebP from HTML**, และเข้าใจ “ทำไม” ของแต่ละตัวเลือกการกำหนดค่า ไม่ต้องใช้สคริปต์ภายนอก ไม่ต้องทำ gymnastics บน command‑line—แค่โค้ด Java ที่สะอาด + +## ข้อกำหนดเบื้องต้น + +- ติดตั้ง Java 8 หรือใหม่กว่า (ไลบรารีรองรับ JDK 8+) +- มี Maven หรือ Gradle สำหรับจัดการ dependency (เราจะแสดงตัวอย่าง Maven) +- มีไฟล์ HTML ง่าย ๆ (`input.html`) ที่ต้องการแปลงเป็นภาพ WebP +- IDE หรือ text editor ที่คุณชอบ—IntelliJ IDEA ทำงานได้ดี แต่เครื่องมือใดก็ได้ก็ใช้ได้ + +พร้อมหรือยัง? ดีมาก, มาเริ่มกันเลย + +## ขั้นตอนที่ 1: เพิ่ม Aspose.HTML ไปยังโปรเจกต์ของคุณ + +ก่อนอื่นคุณต้องมีไลบรารี Aspose.HTML อยู่ใน classpath หากคุณใช้ Maven ให้ใส่โค้ดนี้ลงใน `pom.xml` ของคุณ: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +สำหรับ Gradle จะเป็นแบบนี้: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +ทำไมขั้นตอนนี้ถึงสำคัญ? หากไม่มี JAR คลาส `HTMLDocument`, `Converter`, หรือ `WebpConversionOptions` จะไม่มีอยู่และคอมไพเลอร์จะโยน `ClassNotFoundException` การเพิ่ม dependency นี้ยังดึงไบนารีเนทีฟที่จำเป็นสำหรับการเข้ารหัส WebP มาให้ด้วย ทำให้คุณไม่ต้องตามหา DLL หรือไฟล์ `.so` ภายนอก + +> **Pro tip:** Keep your dependencies up‑to‑date. Newer Aspose releases often improve WebP compression algorithms and add support for newer HTML5 features. + +## ขั้นตอนที่ 2: โหลดเอกสาร HTML ต้นฉบับ + +ตอนนี้ไลบรารีพร้อมแล้ว เราสามารถโหลด HTML ที่ต้องการแปลงได้ คลาส `HTMLDocument` จะทำการพาร์สไฟล์และสร้าง DOM ซึ่งคอนเวอร์เตอร์จะใช้ในการเรนเดอร์ต่อไป + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +สังเกตคอมเมนต์ “Load the source HTML document” – นี่เป็นการเตือนว่าคุณสามารถฉีด CSS หรือ JavaScript ก่อนการแปลงได้หากหน้าเว็บของคุณพึ่งพาการสไตล์แบบไดนามิก หากข้ามขั้นตอนนี้ คอนเวอร์เตอร์จะไม่มีอะไรให้เรนเดอร์ ส่งผลให้ได้ภาพเปล่า + +## ขั้นตอนที่ 3: กำหนดค่า WebP Conversion Options + +Aspose.HTML ให้การควบคุมผลลัพธ์อย่างละเอียด สำหรับกรณีส่วนใหญ่ WebP **lossy** ที่ตั้งค่า quality ประมาณ 85 จะให้ความสมดุลที่ดีระหว่างคุณภาพภาพและขนาดไฟล์ + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +ทำไมต้องเลือก lossy? โหมด lossy ของ WebP ใช้ predictive coding ซึ่งสามารถลดขนาดไฟล์ได้ 30‑50 % เมื่อเทียบกับ PNG พร้อมคงรายละเอียดภาพส่วนใหญ่ หากต้องการผลลัพธ์พิกเซล‑เพอร์เฟกต์ (เช่น โลโก้) ให้สลับ `CompressionMode` เป็น `Lossless` แล้วตั้ง `quality` เป็น 100 + +## ขั้นตอนที่ 4: แปลงและบันทึกภาพ WebP + +เมื่อเอกสารและตัวเลือกพร้อม การแปลงก็เป็นบรรทัดเดียว `Converter.convertHTML` สเตติกเมธอดทำทุกอย่าง: เรนเดอร์ DOM ไปยังบิตแมพ, เข้ารหัสเป็น WebP, แล้วเขียนไฟล์ลงดิสก์ + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +แค่นั้นเอง! หลังโปรแกรมทำงานเสร็จ คุณจะพบ `output.webp` อยู่ข้างไฟล์ HTML ต้นฉบับ ตอนนี้คุณสามารถให้บริการไฟล์นี้โดยตรงจากเว็บเซิร์ฟเวอร์, ฝังใน `` element, หรือใช้ในบริบทใดก็ได้ที่รองรับ WebP + +## ขั้นตอนที่ 5: ตรวจสอบผลลัพธ์ (ไม่บังคับแต่แนะนำ) + +ควรตรวจสอบให้แน่ใจว่าการแปลงสำเร็จและภาพดูตามที่คาดไว้ คุณสามารถเปิดไฟล์ WebP ใน Chrome, Firefox หรือโปรแกรมดูรูปใดก็ได้ที่รองรับฟอร์แมตนี้ สำหรับการตรวจสอบแบบโปรแกรมมิ่งอย่างเร็ว คุณอาจอ่านขนาดไฟล์และมิติได้ดังนี้: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +หากไฟล์ใหญ่กว่าที่คาดหรือมิติไม่ตรง ให้กลับไปตรวจสอบ **ขั้นตอน 3** แล้วปรับ `quality` หรือการตั้งค่า viewport ของ HTML ต้นฉบับ จำไว้ว่า WebP เคารพค่า CSS `width`/`height` ของ root element ดังนั้นหากขาดแท็ก `` อาจทำให้ผลลัพธ์แปลกประหลาด + +## ตัวอย่างการทำงานเต็มรูปแบบ + +รวมทุกอย่างเข้าด้วยกัน นี่คือคลาส Java ที่พร้อมรันเต็มรูปแบบ: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +บันทึกไฟล์นี้เป็น `HtmlToWebp.java`, แทนที่ `YOUR_DIRECTORY` ด้วยพาธโฟลเดอร์จริง, คอมไพล์ด้วย `javac`, แล้วรันด้วย `java HtmlToWebp`. คุณควรเห็นข้อความในคอนโซลยืนยันขนาดไฟล์และมิติ ตามด้วยข้อความแสดงความสำเร็จสุดท้าย + +![ตัวอย่างการแปลง html เป็น webp](/images/convert-html-to-webp.png "ภาพหน้าจอของภาพ WebP ที่สร้างจาก HTML – แปลง html เป็น webp") + +## คำถามทั่วไปและกรณีขอบ + +### ถ้า HTML ของฉันอ้างอิงทรัพยากรภายนอก (CSS, รูปภาพ) ? + +Aspose.HTML จะทำการแก้ไข URL แบบ relative อัตโนมัติตามตำแหน่งของ `input.html` เพียงแค่ตรวจสอบให้ทรัพยากรเข้าถึงได้จากระบบไฟล์หรือเว็บเซิร์ฟเวอร์ หากต้องการฉีด base URL แบบกำหนดเอง ให้ใช้คอนสตรัคเตอร์ `HTMLDocument` ที่รับ `URI` base + +### ฉันสามารถสร้างภาพ WebP หลายภาพจาก HTML เดียวกัน (เช่น ขนาด viewport ต่างกัน) ? + +ได้เลย. ห่อโลจิกการแปลงไว้ในลูป, ปรับ `webpOptions.setWidth()` และ `setHeight()` ก่อนแต่ละครั้ง, แล้วตั้งชื่อไฟล์ผลลัพธ์ให้เป็นเอกลักษณ์ วิธีนี้เหมาะกับการออกแบบ responsive ที่ต้องให้บริการขนาดภาพต่างกันสำหรับมือถือและเดสก์ท็อป + +### จะสลับเป็นการบีบอัดแบบ lossless อย่างไร ? + +แทนที่บรรทัด: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +ด้วย: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless ให้ความแม่นยำระดับพิกเซลแต่ไฟล์จะใหญ่กว่า—ใช้เฉพาะเมื่อจำเป็น + +### ทำงานบน Linux/macOS หรือไม่ ? + +ใช่. JAR ของ Aspose.HTML มีไบนารีเนทีฟสำหรับ Windows, Linux, และ macOS รวมอยู่แล้ว ทำให้โค้ด Java เดียวกันทำงานได้ทุกที่ เพียงตรวจสอบให้มี JRE ที่เหมาะสมติดตั้งไว้ + +## สรุป + +คุณเพิ่งเรียนรู้ **วิธีแปลง HTML เป็น WebP** ด้วย Aspose.HTML for Java ครอบคลุมตั้งแต่การตั้งค่า dependency ไปจนถึงการปรับแต่งการบีบอัดและการตรวจสอบผลลัพธ์ ด้วยความรู้นี้คุณสามารถ **save HTML as WebP**, **render HTML as WebP**, และ **generate WebP from HTML** แบบเรียลไทม์—เหมาะสำหรับ pipeline ภาพไดนามิก, จดหมายข่าวอีเมล, หรือสถานการณ์ใด ๆ ที่ต้องการภาพเบา + +ต่อไปทำอะไรดี? ลองทดลองค่าต่าง ๆ ของ `quality`, สำรวจโหมด `Lossless`, หรือผสานคอนเวอร์เตอร์นี้เข้าใน Spring Boot REST endpoint เพื่อให้บริการ WebP ตามคำขอ คุณอาจลองประมวลผลหลายไฟล์ HTML ในโฟลเดอร์พร้อมกัน, หรือรวมกับ headless Chrome เพื่อแปลง SVG เป็น WebP + +มีคำถามเพิ่มเติมเกี่ยวกับ **วิธีแปลง HTML** ในภาษาอื่น ๆ หรืออยากขอความช่วยเหลือในการแก้ปัญหา edge case ใด ๆ? แสดงความคิดเห็นด้านล่าง แล้วขอให้สนุกกับการเขียนโค้ด! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/thai/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..4cbbfb656 --- /dev/null +++ b/html/thai/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,166 @@ +--- +category: general +date: 2026-03-26 +description: สร้างไฟล์ TIFF หลายหน้า จาก SVG ด้วย Java และ Aspose.HTML เรียนรู้วิธีแปลง + SVG เป็น TIFF, โหลดเอกสาร SVG ใน Java, และสร้างไฟล์ TIFF หลายหน้า +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: th +og_description: สร้างไฟล์ TIFF หลายหน้าจาก SVG ใน Java บทเรียนนี้จะแสดงวิธีโหลดเอกสาร + SVG กำหนดค่าตัวเลือก TIFF และสร้างไฟล์ TIFF หลายหน้าที่ไม่มีการสูญเสียคุณภาพ +og_title: สร้างไฟล์ TIFF หลายหน้า จาก SVG ด้วย Java – คู่มือเต็ม +tags: +- Java +- Aspose.HTML +- Image Conversion +title: สร้างไฟล์ TIFF หลายหน้าจาก SVG ด้วย Java – คู่มือขั้นตอนโดยละเอียด +url: /th/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# สร้าง multipage tiff จาก SVG ใน Java – คู่มือขั้นตอนต่อขั้นตอน + +เคยต้องการ **create multipage tiff** จาก SVG แต่ไม่แน่ใจว่าจะเริ่มต้นอย่างไรหรือไม่? คุณไม่ได้อยู่คนเดียว—นักพัฒนาหลายคนเจออุปสรรคเดียวกันเมื่อต้องการเอกสารที่พิมพ์ได้และไม่มีการสูญเสียข้อมูลซึ่งมีหลายหน้า ในคู่มือนี้เราจะพาคุณผ่านโซลูชันที่สมบูรณ์และพร้อมใช้งานที่แสดง **how to convert SVG to TIFF**, โหลดเอกสาร SVG ใน Java, และกำหนดค่าการส่งออกเพื่อให้คุณสามารถ **create multipage tiff** ด้วยการบีบอัด LZW ได้ + +เราจะครอบคลุมทุกอย่างตั้งแต่การตั้งค่าไลบรารี Aspose.HTML ไปจนถึงการจัดการกรณีขอบเช่นไฟล์ SVG ขนาดใหญ่ เมื่อจบบทเรียนคุณจะมีคลาส Java เพียงไฟล์เดียวที่สามารถนำไปใส่ในโปรเจกต์ใดก็ได้และเริ่มสร้าง multi‑page TIFF ได้ทันที + +## สิ่งที่คุณต้องมี + +- **Java Development Kit (JDK) 8+** – โค้ดใช้ API มาตรฐานของ Java. +- **Aspose.HTML for Java** (version 23.5 หรือใหม่กว่า) – นี่เป็นการพึ่งพาภายนอกเพียงอย่างเดียว. +- **sample SVG file** (กราฟิกเวกเตอร์ใดก็ได้; เราจะเรียกว่า `input.svg`). +- IDE ที่คุณชอบหรือเพียงตัวแก้ไขข้อความง่าย ๆ และเทอร์มินัล. + +ไม่จำเป็นต้องใช้เครื่องมือสร้างเพิ่มเติม; ตัวอย่างนี้คอมไพล์ด้วย `javac` และรันด้วย `java`. หากคุณชอบใช้ Maven หรือ Gradle เพียงเพิ่มไฟล์ JAR ของ Aspose.HTML ไปยัง classpath ของโปรเจกต์ของคุณ. + +![ตัวอย่างการสร้าง multipage tiff](create-multipage-tiff.png){alt="ผลลัพธ์ create multipage tiff"} + +## ขั้นตอนที่ 1 – โหลดเอกสาร SVG (load svg document java) + +สิ่งแรกที่เราต้องทำคืออ่านไฟล์ SVG เข้าเป็นอ็อบเจ็กต์ `HTMLDocument`. Aspose.HTML ถือไฟล์ SVG เป็นเอกสาร HTML ซึ่งทำให้เรามี API ที่統一สำหรับการแปลง. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** การโหลด SVG เป็น `HTMLDocument` ทำให้เราเข้าถึงเอนจินการเรนเดอร์เต็มรูปแบบ, รับประกันว่าทุกสไตล์, ฟอนต์, และภาพที่ฝังอยู่จะถูกตีความอย่างถูกต้องก่อนการแปลง. การข้ามขั้นตอนนี้และพยายามส่งไบต์ดิบตรงเข้าไปในตัวแปลงมักทำให้เกิดองค์ประกอบหายหรือสีไม่ถูกต้อง. + +## ขั้นตอนที่ 2 – กำหนดค่า TIFF Options (how to create multipage tiff) + +ต่อไปเราตั้งค่า `TiffConversionOptions`. อ็อบเจ็กต์นี้ควบคุมทุกอย่างตั้งแต่การจัดหน้าไปจนถึงการบีบอัด. สำหรับการสร้างไฟล์หลายหน้าอย่างแท้จริง เราเปิด `setMultipage(true)`, และเลือกการบีบอัด **LZW** เนื่องจากเป็นแบบไม่มีการสูญเสียและได้รับการสนับสนุนอย่างกว้างขวาง. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** หากคุณละ `setMultipage(true)`, ไลบรารีจะสร้าง TIFF หน้าเดียว, ลบหน้าที่เพิ่มเติมที่อาจสรุปจาก SVG (เช่นเมื่อ SVG มีหลายองค์ประกอบ `` ราก). LZW ทำให้ขนาดไฟล์อยู่ในระดับที่เหมาะสมโดยไม่เสียคุณภาพของภาพ—เหมาะสำหรับการเก็บถาวรหรือกระบวนการพิมพ์. + +## ขั้นตอนที่ 3 – ทำการแปลง (how to convert svg to tiff) + +ตอนนี้การทำงานหนักเริ่มขึ้น. เมธอดสถิต `Converter.convertSVG` รับเอกสารที่โหลดแล้ว, เส้นทางปลายทาง, และตัวเลือกที่เรากำหนดไว้. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**ทำไมเรื่องนี้ถึงสำคัญ:** การใช้การเรียก `convertSVG` แบบสถิตเป็นวิธีที่ตรงที่สุดในการเริ่มการแปลง. ภายใต้การทำงาน, Aspose.HTML จะทำ rasterize ข้อมูลเวกเตอร์ที่ความละเอียดเริ่มต้น 96 dpi; คุณสามารถปรับ DPI ผ่าน `tiffOptions.setResolution(...)` หากต้องการคุณภาพสูงขึ้น. + +## ขั้นตอนที่ 4 – ตรวจสอบผลลัพธ์ + +หลังจากการแปลงเสร็จสิ้น, ควรตรวจสอบว่าไฟล์มีอยู่และมีจำนวนหน้าตามที่คาดหวัง. การตรวจสอบอย่างรวดเร็วสามารถทำได้ด้วยโปรแกรมดูภาพใด ๆ ที่รองรับ multipage TIFF (เช่น IrfanView, XnView, หรือแม้แต่ `ImageIO` ของ Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +รันโปรแกรม: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +คุณควรเห็นข้อความในคอนโซลยืนยันความสำเร็จ, และการเปิด `output.tiff` จะพบหนึ่งหน้าต่อองค์ประกอบรากของ SVG (หรือหน้าเดียวหาก SVG มีเพียงแค่นั้น). + +## ข้อผิดพลาดทั่วไป & เคล็ดลับมืออาชีพ + +| ปัญหา | สาเหตุ | วิธีแก้ | +|-------|--------|--------| +| **Missing fonts** | SVG อ้างอิงฟอนต์ระบบที่ไม่ได้ติดตั้งบนเซิร์ฟเวอร์. | ฝังฟอนต์ใน SVG หรือใช้ `FontSettings` ใน Aspose.HTML เพื่อระบุโฟลเดอร์ฟอนต์ที่กำหนดเอง. | +| **Large file size** | การ rasterize ความละเอียดสูงอาจทำให้ขนาด TIFF พุ่งใหญ่. | ลด DPI ด้วย `tiffOptions.setResolution(150)` หรือเปลี่ยนเป็น `Compression.NONE` เฉพาะการดีบัก. | +| **Multiple pages not generated** | SVG มีเพียงหนึ่งองค์ประกอบ `` เท่านั้น. | แบ่งแหล่งข้อมูลเป็นไฟล์ SVG แยกหรือห่อแต่ละหน้าตามตรรกะในแท็ก `` ก่อนการแปลง. | +| **Unsupported SVG features** | ฟิลเตอร์หรือแอนิเมชันบางอย่างไม่ถูกเรนเดอร์. | ทำให้ SVG ง่ายลงหรือทำการประมวลผลล่วงหน้าด้วยเครื่องมืออย่าง Inkscape เพื่อแปลงฟิลเตอร์ให้เป็นแบน. | + +**เคล็ดลับมืออาชีพ:** หากคุณต้องการลำดับหน้าที่เฉพาะ, ให้เปลี่ยนชื่อไฟล์ SVG ของคุณเป็น `page1.svg`, `page2.svg`, เป็นต้น, แล้ววนลูปผ่านไฟล์เหล่านั้น, เพิ่มผลลัพธ์การแปลงแต่ละครั้งลงใน TIFF เดียวโดยใช้ `tiffOptions.setMultipage(true)` ทุกครั้ง. + +## ตัวอย่างการทำงานเต็มรูปแบบ + +ด้านล่างเป็นคลาส Java ที่สมบูรณ์และเป็นอิสระที่คุณสามารถคัดลอก‑วางลงในไฟล์ชื่อ `SvgToMultipageTiff.java`. คลาสนี้รวมคำสั่ง import, คอมเมนต์, และการจัดการข้อผิดพลาดสำหรับการใช้งานในสภาพแวดล้อมการผลิต. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +การรันโค้ดจะสร้าง TIFF ที่แต่ละรากของ SVG กลายเป็นหน้าที่แยกออก—ตรงกับสิ่งที่คุณต้องการเมื่ออยาก **create multipage tiff** สำหรับการพิมพ์หรือการเก็บถาวร. + +## สรุป + +เราเพิ่งแสดงวิธี **create multipage tiff** จาก SVG ด้วย Java และ Aspose.HTML. คู่มือได้ครอบคลุมการโหลด SVG (`load svg document java`), การกำหนดค่าตัวเลือกการแปลง, การทำการแปลง (`how to convert svg to tiff`), และการตรวจสอบผลลัพธ์. ด้วยซอร์สโค้ดเต็มที่คุณมี, คุณสามารถปรับโซลูชันเพื่อประมวลผลหลายสิบไฟล์ SVG เป็นชุด, ปรับค่า DPI, หรือรวมตรรกะนี้เข้าไปในไพป์ไลน์การสร้างเอกสารที่ใหญ่ขึ้น. + +พร้อมสำหรับความท้าทายต่อไปหรือยัง? ลองแปลงโฟลเดอร์ของ SVG ให้เป็น TIFF หน้าหลายหน้าไฟล์เดียว, ทดลองใช้สกีมการบีบอัดต่าง ๆ, หรือสำรวจการส่งออกเป็น PDF โดยสลับ `TiffConversionOptions` เป็น `PdfConversionOptions`. หลักการเดียวกันนี้ใช้ได้, ดังนั้นคุณจะรู้สึกสบายใจในการขยายรูปแบบนี้ไปยังฟอร์แมตอื่น ๆ. + +มีคำถามหรือเจอกรณี SVG ที่แปลกประหลาด? ฝากคอมเมนต์ด้านล่าง, และขอให้สนุกกับการเขียนโค้ด! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/html5-canvas-rendering/_index.md b/html/thai/java/html5-canvas-rendering/_index.md index ddf2168ef..abd617ce7 100644 --- a/html/thai/java/html5-canvas-rendering/_index.md +++ b/html/thai/java/html5-canvas-rendering/_index.md @@ -19,7 +19,7 @@ url: /th/java/html5-canvas-rendering/ ## ทำความเข้าใจการเรนเดอร์ HTML5 Canvas -ก่อนอื่นมาพูดถึงองค์ประกอบ Canvas ของ HTML5 กันก่อน ลองนึกภาพว่ามันเป็นผืนผ้าใบเปล่า คุณสามารถวาดอะไรก็ได้ลงไปโดยใช้ JavaScript และบริบทการเรนเดอร์ต่างๆ ด้วย Aspose.HTML สำหรับ Java คุณจะไม่ถูกจำกัดอยู่แค่การเรนเดอร์เว็บแบบเดิมๆ เท่านั้น เพราะไลบรารีนี้จะช่วยให้คุณสร้างกราฟิกที่สวยงามและส่งออกเป็นรูปแบบต่างๆ เช่น PDF ได้อย่างง่ายดาย ในบทช่วยสอนที่มีชื่อว่า[บริบทการเรนเดอร์ Canvas ขั้นสูงใน Aspose.HTML สำหรับ Java](./advanced-canvas-rendering-context/)คุณจะได้เรียนรู้ความซับซ้อนของการวาดภาพและการจัดแต่งรูปแบบองค์ประกอบกราฟิก คุณเคยสงสัยไหมว่าจะจัดการรูปร่างหรือสีต่างๆ ได้อย่างไร บทช่วยสอนนี้จะอธิบายทีละขั้นตอน ทำให้เข้าถึงได้และสนุกสนาน เหมือนกับการเรียนรู้การวาดรูปด้วยแปรงดิจิทัลแทนที่จะเป็นแปรงจริง! +ก่อนแรกมาพูดถึงองค์ประกอบ Canvas ของ HTML5 กันก่อน ลองนึกภาพว่ามันเป็นผืนผ้าใบเปล่า คุณสามารถวาดอะไรก็ได้ลงไปโดยใช้ JavaScript และบริบทการเรนเดอร์ต่างๆ ด้วย Aspose.HTML สำหรับ Java คุณจะไม่ถูกจำกัดอยู่แค่การเรนเดอร์เว็บแบบเดิมๆ เท่านั้น เพราะไลบรารีนี้จะช่วยให้คุณสร้างกราฟิกที่สวยงามและส่งออกเป็นรูปแบบต่างๆ เช่น PDF ได้อย่างง่ายดาย ในบทช่วยสอนที่มีชื่อว่า[บริบทการเรนเดอร์ Canvas ขั้นสูงใน Aspose.HTML สำหรับ Java](./advanced-canvas-rendering-context/)คุณจะได้เรียนรู้ความซับซ้อนของการวาดภาพและการจัดแต่งรูปแบบองค์ประกอบกราฟิก คุณเคยสงสัยไหมว่าจะจัดการรูปร่างหรือสีต่างๆ ได้อย่างไร บทช่วยสอนนี้จะอธิบายทีละขั้นตอน ทำให้เข้าถึงได้และสนุกสนาน เหมือนกับการเรียนรู้การวาดรูปด้วยแปรงดิจิทัลแทนที่จะเป็นแปรงจริง! ## ฝึกฝนทักษะของคุณด้วยคู่มือที่พร้อมใช้งาน @@ -30,9 +30,11 @@ url: /th/java/html5-canvas-rendering/ สร้างและเรนเดอร์ HTML5 Canvas ด้วย Aspose.HTML สำหรับ Java เรียนรู้ทีละขั้นตอนเกี่ยวกับการวาด สไตล์ และการส่งออกเป็น PDF โดยใช้ไลบรารี Java อันทรงพลังนี้ ### [เรียนรู้ HTML5 Canvas ด้วย Aspose.HTML สำหรับ Java](./html5-canvas/) เรียนรู้วิธีการสร้างและแปลง HTML5 Canvas เป็น PDF โดยใช้ Aspose.HTML สำหรับ Java คู่มือนี้เหมาะสำหรับนักพัฒนาที่ต้องการปรับปรุงโครงการเว็บของตน +### [วิธีจำลอง iPhone – คู่มือฉบับสมบูรณ์ด้วย Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +เรียนรู้วิธีจำลองการแสดงผลของ iPhone บนเว็บโดยใช้ Aspose.HTML เพื่อทดสอบและสร้างประสบการณ์ผู้ใช้ที่เหมาะสม {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/thai/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/thai/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..6a9c29251 --- /dev/null +++ b/html/thai/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: เรียนรู้วิธีจำลอง iPhone ใน Java ด้วย Aspose.HTML รวมถึงขั้นตอนการตั้งค่า + user agent แบบกำหนดเองและตั้งค่าอัตราส่วนพิกเซลของอุปกรณ์เพื่อการเรนเดอร์บนมือถือที่แม่นยำ +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: th +og_description: วิธีจำลอง iPhone ใน Java? บทเรียนนี้แสดงวิธีตั้งค่า user agent แบบกำหนดเองและอัตราส่วนพิกเซลของอุปกรณ์โดยใช้ + Aspose.HTML เพื่อให้ได้หน้าเว็บมือถือที่พิกเซลสมบูรณ์แบบ +og_title: วิธีจำลอง iPhone – คู่มือ Aspose.HTML ขั้นตอนโดยขั้นตอน +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: วิธีจำลอง iPhone – คู่มือฉบับสมบูรณ์กับ Aspose.HTML +url: /th/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# วิธีจำลอง iPhone – คู่มือฉบับสมบูรณ์ด้วย Aspose.HTML + +เคยสงสัย **how to emulate iPhone** ขณะทดสอบหน้าเว็บในเครื่องหรือไม่? บางทีคุณกำลังดีบักเลย์เอาต์ที่ตอบสนองและเบราว์เซอร์เดสก์ท็อปไม่พอใจ ข่าวดีคือคุณไม่จำเป็นต้องมีอุปกรณ์จริง—`DocumentSandbox` ของ Aspose.HTML ช่วยให้คุณจำลองหน้าจอ, user‑agent, และ device‑pixel‑ratio (DPR) ของ iPhone ด้วยไม่กี่บรรทัดของ Java. + +ในบทเรียนนี้เราจะพาคุณผ่านขั้นตอนที่แม่นยำเพื่อกำหนด **custom user agent**, ตั้งค่า **device pixel ratio**, และตรวจสอบว่าทุกอย่างทำงานตามที่คาดไว้ ในตอนท้ายคุณจะมี sandbox ที่สามารถนำกลับมาใช้ใหม่ซึ่งเรนเดอร์หน้าเว็บเหมือน iPhone 8 และคุณจะเข้าใจว่าการตั้งค่าแต่ละอย่างสำคัญอย่างไร + +## สิ่งที่คุณจะได้ทำ + +- สร้างอ็อบเจ็กต์ `Screen` ที่สะท้อนมิติของ iPhone และ DPR. +- ใช้สตริง **custom user agent** เพื่อให้เซิร์ฟเวอร์คิดว่าการร้องขอมาจาก Safari บน iOS. +- สร้าง `DocumentSandbox` ที่เชื่อมต่อ screen และ user‑agent เข้าด้วยกัน. +- รัน `HTMLDocument` ภายใน sandbox และดูผลลัพธ์ในคอนโซลที่ยืนยันการตั้งค่า. + +ไม่จำเป็นต้องใช้ไลบรารีภายนอกนอกจาก Aspose.HTML และโค้ดสามารถทำงานได้บนสภาพแวดล้อม Java 17+ ใดก็ได้ + +--- + +![ภาพหน้าจอการจำลอง iPhone](https://example.com/images/iphone-emulation.png "การจำลอง iPhone ด้วย sandbox ของ Aspose.HTML") + +## วิธีจำลอง iPhone ด้วย Aspose.HTML Sandbox + +สิ่งแรกที่เราต้องการคือ `Screen` ที่สะท้อนมิติทางกายภาพของ iPhone *และ* ความหนาแน่นของพิกเซล นี่คือหัวใจของ **how to emulate iPhone** อย่างแม่นยำ. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +ทำไมเรื่องนี้ถึงสำคัญ: +- ความกว้าง = 375 px และความสูง = 667 px เป็นมิติพิกเซล CSS ที่คุณจะเห็นใน Chrome DevTools เมื่อเลือก iPhone 8. +- การตั้งค่า DPR เป็น 2 บอกให้เอนจินการเรนเดอร์ถือพิกเซล CSS แต่ละตัวเป็นสองพิกเซลจริง ทำให้ข้อความและรูปภาพคมชัด—เช่นเดียวกับอุปกรณ์จริง. + +> เคล็ดลับ: หากคุณต้องการจำลอง iPhone รุ่นใหม่ (เช่น iPhone 13) เพียงเปลี่ยนตัวเลขเป็น 390 × 844 และ DPR = 3. + +## การตั้งค่า Custom User Agent (set custom user agent) + +ต่อไปเราต้อง **set custom user agent** เพื่อให้เซิร์ฟเวอร์ให้บริการ HTML/CSS ที่เฉพาะสำหรับมือถือ หากไม่มีการตั้งค่านี้ หลายเว็บไซต์ยังคงคิดว่าคุณใช้เดสก์ท็อป + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +วิธีการทำงานนี้: +- เฮดเดอร์ `User-Agent` เป็นการจับมือที่เบราว์เซอร์ใช้เพื่อประกาศตัวเอง. +- โดยให้สตริงที่ Safari บน iOS 16 ส่งออกมาอย่างแม่นยำ คุณจะทำให้เซิร์ฟเวอร์ส่งคืนแอสเซ็ตที่ปรับให้เหมาะกับมือถือ (เช่น รูปภาพตอบสนอง, สคริปต์ที่ปรับตามอุปกรณ์ ฯลฯ). + +หากคุณต้องการ **how to set user-agent** สำหรับอุปกรณ์อื่น เพียงเปลี่ยนสตริงเป็นค่าที่เหมาะสม—Google Chrome, Firefox, หรือแม้แต่บอทที่กำหนดเอง. + +## การกำหนดค่า Device Pixel Ratio (set device pixel ratio) + +ตอนนี้เราจริง ๆ **set device pixel ratio** ภายใน sandbox ขั้นตอนนี้เป็นการตอบโดยตรงว่า “**how to set dpr**” สำหรับสภาพแวดล้อมจำลอง. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +คำอธิบาย: +- แพทเทิร์น `Builder` ทำให้คุณสามารถเชื่อมต่อ screen (ที่บรรจุ DPR) และ user‑agent ได้อย่างต่อเนื่อง. +- เมื่อ sandbox เรนเดอร์ `HTMLDocument` มันจะทำเหมือนกำลังทำงานบนอุปกรณ์ที่มีความหนาแน่นพิกเซลตรงนี้. + +> ทำไมคุณควรใส่ใจ: คำสั่ง media query ของ CSS บางตัวใช้ `device-pixel-ratio` (เช่น `@media (-webkit-min-device-pixel-ratio: 2)`). หากคุณไม่ตั้งค่า DPR กฎเหล่านั้นจะไม่ทำงานและคุณจะพลาดแอสเซ็ตความละเอียดสูง. + +## การตรวจสอบการตั้งค่า Sandbox (how to set user-agent) + +มาลองใช้ sandbox กันดู โค้ดสแนปต่อไปนี้สร้าง `HTMLDocument` โหลดหน้าเว็บและพิมพ์การยืนยันว่า sandbox ทำงานอยู่. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +ผลลัพธ์คอนโซลที่คาดหวัง + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +หากคุณรันโปรแกรมและเห็นบรรทัดนั้น คุณได้ทำ **how to emulate iPhone** อย่างสำเร็จด้วย DPR และ user‑agent ที่ถูกต้อง เปิดหน้าเว็บในเบราว์เซอร์จริงและตรวจสอบขนาด viewport คุณจะสังเกตว่ามันตรงกับค่าของ iPhone ที่เราตั้งไว้. + +## ข้อผิดพลาดทั่วไปและวิธีตั้งค่า DPR อย่างถูกต้อง (how to set dpr) + +แม้จะมีโค้ดที่ถูกต้อง แต่ก็ยังมีข้อผิดพลาดเล็กน้อยที่อาจทำให้คุณติดขัด: + +| Issue | Why it Happens | Fix | +|-------|----------------|-----| +| **DPR ค้างที่ 1** | คุณส่ง `Screen` โดยไม่มีอาร์กิวเมนต์ที่สาม (DPR). | ใช้ `new Screen(width, height, dpr)` เสมอ. | +| **User‑Agent ถูกละเลย** | sandbox ไม่ได้ถูกแนบกับ `HTMLDocument`. | ส่ง `documentSandbox` เป็นอาร์กิวเมนต์ที่สองให้กับคอนสตรัคเตอร์ของ `HTMLDocument`. | +| **ขนาดไม่ถูกต้อง** | ใช้พิกเซลของอุปกรณ์แทนพิกเซล CSS. | จำไว้ว่า: ความกว้าง/ความสูงเป็น **พิกเซล CSS**, ไม่ใช่พิกเซลของฮาร์ดแวร์. | +| **เซิร์ฟเวอร์ยังส่ง CSS ของเดสก์ท็อป** | บางเว็บไซต์ใช้ JavaScript เพื่อตรวจจับอุปกรณ์ ไม่ได้ใช้แค่เฮดเดอร์. | พิจารณาแทรก meta tag viewport ด้วยหากจำเป็น. | + +โดยคำนึงถึงสิ่งเหล่านี้ คุณจะแทบไม่เจอสถานการณ์ที่การจำลองทำงานไม่เป็นไปตามที่คาดหวัง. + +## การขยาย Sandbox – ขั้นตอนต่อไป + +เมื่อคุณรู้แล้วว่า **how to set custom user agent** และ **how to set dpr** คุณสามารถทดลองต่อได้: + +- **เปลี่ยนขนาดหน้าจอ** เพื่อจำลองแท็บเล็ตหรือโทรศัพท์ที่ใหญ่กว่า. +- **สลับ user‑agent** เพื่อทดสอบ Chrome บน Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **เพิ่มคุกกี้หรือเฮดเดอร์** ผ่านเมธอด `setHeaders` ของ sandbox สำหรับการทดสอบที่ต้องการการยืนยันตัวตน. +- **จับภาพหน้าจอ** ด้วย `HTMLDocument.renderToFile("output.png")` เพื่อเปรียบเทียบความแตกต่างของภาพโดยอัตโนมัติ. + +ส่วนขยายเหล่านี้ทำให้คุณสร้างชุดทดสอบเต็มรูปแบบโดยไม่ต้องออกจาก IDE ของคุณ. + +--- + +## สรุป + +เราได้อธิบาย **how to emulate iPhone** ด้วย `DocumentSandbox` ของ Aspose.HTML แสดงให้คุณเห็นอย่างชัดเจนว่า **how to set custom user agent**, **how to set device pixel ratio**, และแม้กระทั่งความแตกต่างเล็ก ๆ ระหว่าง “**how to set user-agent**” และ “**how to set dpr**”. ตัวอย่างที่สมบูรณ์และสามารถรันได้แสดงทุกส่วนในที่เดียว ทำให้คุณสามารถคัดลอก‑วาง, ปรับแต่ง, และเริ่มทดสอบเลย์เอาต์มือถือได้ทันที. + +ลองดู—สลับขนาดหน้าจอ, เล่นกับ user‑agent ต่าง ๆ, และสังเกตว่าหน้าเว็บของคุณตอบสนองอย่างไร เมื่อคุณเชี่ยวชาญการตั้งค่าเหล่านี้ การดีบักการออกแบบที่ตอบสนองจะง่ายดายและคุณจะประหยัดเวลานับไม่ถ้วนจากการไล่บั๊กบนอุปกรณ์จริง. + +มีคำถามหรืออยากแชร์วิธีของคุณเอง? แสดงความคิดเห็นด้านล่าง แล้วขอให้สนุกกับการจำลอง! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/advanced-usage/_index.md b/html/turkish/java/advanced-usage/_index.md index bf029d3ca..8d088aa84 100644 --- a/html/turkish/java/advanced-usage/_index.md +++ b/html/turkish/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Aspose.HTML for Java kullanarak PDF sayfa boyutunu nasıl ayarlayacağınızı Aspose.HTML for Java ile XPS sayfa boyutunu nasıl ayarlayacağınızı öğrenin. XPS belgelerinizin çıktı boyutlarını kolayca kontrol edin. ### [Java’da JavaScript Çalıştırma – Tam Kılavuz](./how-to-run-javascript-in-java-complete-guide/) Aspose.HTML for Java kullanarak Java içinde JavaScript kodu çalıştırmayı ve entegrasyonu öğrenin. +### [Üst Düzey Await Örneği – JavaScript'te Await Delay Kullanımı](./top-level-await-example-using-await-delay-in-javascript/) +JavaScript'te top‑level await ve gecikme (delay) fonksiyonunu nasıl kullanacağınızı öğrenin. --- diff --git a/html/turkish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/turkish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..f40eb40a7 --- /dev/null +++ b/html/turkish/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Canlı bir demoda, await gecikmesini gösteren üst seviye await örneği, + sayaç artırma sınıfı ve public sınıf alanları JavaScript. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: tr +og_description: Kısa bir öğreticide, await gecikmesini, sayaç artırma sınıfını ve + JavaScript'te public sınıf alanlarını gösteren üst seviye await örneği. +og_title: Üst Düzey Await Örneği – JavaScript'te Await Gecikmesi Kullanımı +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Üst seviye await örneği – JavaScript'te await gecikmesi kullanma +url: /tr/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# top level await örneği – JavaScript'te await delay kullanımı + +Modül yürütmesini her şeyi bir async IIFE içine sarmadan nasıl duraklatabileceğinizi hiç merak ettiniz mi? İşte **top level await örneği** tam da bunu yapmanızı sağlıyor. Bu öğreticide, işi ertelemek için `await delay javascript` kullanan küçük bir web sayfasını adım adım inceleyecek, ardından **public class fields javascript**'ı kullanan bir `increment counter class` oluşturacağız. Sonunda, modern bir tarayıcıda çalıştırabileceğiniz tam, kopyala‑yapıştır bir snippet elde edeceksiniz. + +Bir sınıfı public bir alanla tanımlamaktan basit bir promise‑tabanlı gecikme yardımcı fonksiyonuna kadar her şeyi ele alacağız. Harici kütüphane yok, derleme adımı yok—sadece düz HTML, bir ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Beklenen Konsol Çıktısı + +``` +Counter class initialized +Final count: 1 +``` + +Sayfayı DevTools'ta açarsanız, statik‑blok mesajının gecikme bitmeden **önce** göründüğünü görmelisiniz; bu, sınıfın önce değerlendirildiğini doğrular. + +## 5. Adım – Constructor Yerine Public Class Fields Neden Kullanılır? + +Şöyle bir şey yazmadığımızı merak edebilirsiniz: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Her iki yaklaşım da çalışır, ancak **public class fields javascript** daha temiz, deklaratif bir sözdizimi sunar. Alan bir kez tanımlanır, her constructor çağrısında tekrar tanımlanmaz; sınıf büyüdükçe okunması daha kolay olur. Ayrıca statik bloklar constructor içinde bulunamaz, bu da başlatma mantığını ayrı tutmayı doğal hâle getirir. + +## 6. Adım – Gerçek Dünya Uygulamaları İçin Örneği Uyarlama + +Üretimde tek bir sayaçtan daha fazlasına ihtiyaç duyarsınız. İşte birkaç hızlı fikir: + +- **Birden fazla sayaç:** `Map` içinde, kimlik anahtarına göre saklayın. +- **Kalıcı durum:** `console.log` yerine `localStorage` yazmaları kullanın. +- **Async başlatma:** Statik bloğu, herhangi bir örnek oluşturulmadan önce sunucudan yapılandırma çekmek için kullanın. + +Bu kalıpların hepsi top‑level await'dan fayda görür; çünkü modül yüklenirken veriyi bir kez çekebilir ve her tüketici için hazır olmasını garantileyebilirsiniz. + +## Sık Sorulan Sorular + +**S: Top‑level await diğer modülleri bloklar mı?** +C: Hayır. Her modül bağımsız çalışır. Await içeren modül duraklatılır; diğer modüller paralel olarak yüklenmeye devam eder. + +**S: Gecikme promise'ı reddedilirse ne olur?** +C: Ele alınmamış bir reddetme, modül değerlendirmesini durdurur ve konsolda hata olarak gösterilir. Graceful bir geri dönüş için `await`'ı `try…catch` içinde sarmalayın. + +**S: `static` anahtar kelimesi zorunlu mu?** +C: Sayaç için değil, ancak statik blok kodun *bir kez* yükleme zamanında çalıştığını göstermek için kullanışlıdır—loglama ya da özellik‑tespiti için idealdir. + +## Sonuç + +Artık `await delay javascript`, bir **increment counter class** ve **public class fields javascript** gücünü gösteren bir **top level await örneği** oluşturmuş oldunuz. Tam, çalıştırılabilir snippet yukarıda yer alıyor ve konsol çıktısı statik bloğun gecikmeli koddan önce çalıştığını kanıtlıyor. + +Buradan daha karmaşık async akışlarla deneyler yapabilir, gecikmeyi gerçek bir API çağrısıyla değiştirebilir ya da sınıfa ek metodlar ekleyebilirsiniz. Modern JavaScript, modülleri birinci sınıf async varlıklar olarak ele almanıza izin verir—ekstra sarmalayıcılara gerek yok. + +Kodlamanın tadını çıkarın ve varyasyonlarınızı yorumlarda paylaşın. Bu rehberi faydalı bulduysanız, async desenlerle hâlâ mücadele eden bir ekip arkadaşınızla paylaşın! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/conversion-html-to-other-formats/_index.md b/html/turkish/java/conversion-html-to-other-formats/_index.md index b9af7690c..86ec9ced3 100644 --- a/html/turkish/java/conversion-html-to-other-formats/_index.md +++ b/html/turkish/java/conversion-html-to-other-formats/_index.md @@ -85,8 +85,12 @@ Sonuç olarak, **html to pdf java** ve daha geniş dönüşüm setine hâkim olm ## Dönüştürme - HTML'den Diğer Formatlara Eğitimleri ### [HTML'yi PDF'ye Dönüştürme](./convert-html-to-pdf/) HTML içeriğinizden sorunsuz bir şekilde yüksek kaliteli PDF'ler oluşturun. +### [Java’da HTML’den PDF Oluşturma – Paralel Toplu Dönüşüm Kılavuzu](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Java’da birden çok HTML dosyasını aynı anda PDF’ye dönüştürmek için paralel toplu işlem adımlarını gösterir. ### [HTML'yi PDF'ye Dönüştürme Java’da – Sayfa Boyutu Ayarlarıyla Adım‑Adım Kılavuz](./convert-html-to-pdf-in-java-step-by-step-guide-with-page-siz/) Java’da HTML'yi PDF'ye dönüştürürken sayfa boyutu ayarlarını nasıl yapılandıracağınızı adım adım gösterir. +### [PDF Özel Boyut Oluşturma – Aspose ile HTML'den PDF'ye Dönüştürme](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) +HTML'den PDF oluştururken sayfa boyutunu özelleştirmeyi adım adım gösterir. ### [HTML'yi MHTML'ye Dönüştürme](./convert-html-to-mhtml/) Aspose.HTML for Java ile HTML'yi MHTML'ye kolayca dönüştürün. Verimli HTML‑to‑MHTML dönüşümü için adım adım rehberimizi izleyin. ### [HTML'yi XPS'ye Dönüştürme](./convert-html-to-xps/) @@ -99,6 +103,8 @@ Aspose.HTML ile Java'da SVG'yi görüntülere dönüştürmeyi öğrenin. Yükse Aspose.HTML ile Java'da SVG'yi PDF'ye dönüştürün. Yüksek kaliteli belge dönüşümü için sorunsuz bir çözüm. ### [SVG'yi XPS'ye Dönüştürme](./convert-svg-to-xps/) Aspose.HTML for Java ile SVG'yi XPS'ye dönüştürmeyi öğrenin. Sorunsuz dönüşümler için basit, adım adım rehber. +### [HTML'yi Java'da Markdown'a Dönüştürme – Orijinal Biçimlendirmeyi Koru](./convert-html-to-markdown-in-java-preserve-original-formattin/) +HTML içeriğini orijinal biçimlendirmesini koruyarak Java ile Markdown formatına dönüştürün. ## Sıkça Sorulan Sorular diff --git a/html/turkish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/turkish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..6500e6a05 --- /dev/null +++ b/html/turkish/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,206 @@ +--- +category: general +date: 2026-03-26 +description: Java'da Aspose HTML dönüşümünü kullanarak HTML'yi markdown'a dönüştürün + ve orijinal biçimlendirmeyi koruyarak bir markdown dosyası oluşturun. Adım adım + öğrenin. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: tr +og_description: HTML'yi hızlıca markdown'a dönüştürün, markdown dosyası oluşturun + ve Aspose HTML dönüştürmesi Java için kullanarak orijinal biçimlendirmeyi koruyun. +og_title: Java'da HTML'yi Markdown'a dönüştür – Biçimlendirmeyi koru +tags: +- Aspose +- Java +- Markdown +title: Java'da HTML'yi Markdown'a Dönüştür – Orijinal Biçimlendirmeyi Koru +url: /tr/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to Markdown in Java – Preserve Original Formatting + +Ever needed to **convert HTML to markdown** but worried you'd lose the spacing, tables, or inline tags? You're not the only one. Many developers hit this snag when they try to move content from a web page into a clean, version‑control‑friendly format. The good news? With a few lines of Java and Aspose HTML, you can **generate markdown file** that looks exactly like the source, whitespace and all. + +In this guide we’ll walk through the whole process: loading a complex HTML file, configuring the conversion so it **preserve original formatting**, and finally writing the output to `preserved.md`. By the end you’ll have a ready‑to‑run snippet, understand *why* each setting matters, and know how to adapt the code for edge cases like custom CSS or embedded scripts. + +## Gereksinimler + +- Java 17 (or any recent JDK) – the API works with Java 8+ but newer versions give you better performance. +- Aspose HTML for Java library (version 23.11 or later). You can grab it from Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- A sample HTML file (`complex.html`) that contains headings, tables, code blocks, and maybe some inline `` styling. +- A tiny bit of patience and a willingness to experiment. + +That’s it. No external tools, no command‑line hacks—just pure Java code. + +## Adım 1: Kaynak HTML Belgesini Yükleyin + +The first thing we do is create an `HTMLDocument` instance that points to your source file. Aspose HTML treats the file as a DOM, which means you can inspect or modify it before conversion if you ever need to. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Neden önemli:** Belgeyi bu şekilde yüklemek, tüm bağlı kaynakların (stil sayfaları, görseller) dosya konumuna göre çözümlenmesini sağlar. Bu adımı atlayıp ham bir dize verirseniz, boşlukları etkileyen harici CSS'yi kaybedebilirsiniz—tam da **preserve original formatting** istediğiniz şey. + +## Adım 2: Markdown Dönüşüm Seçeneklerini Yapılandırın + +Aspose HTML gives you a `MarkdownConversionOptions` class. The key property for us is `setPreserveOriginalFormatting(true)`. When enabled, the converter keeps line breaks, indentation, and even raw HTML snippets that markdown can’t represent natively. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro ipucu:** Daha sonra bazı satır içi stillerin kaldırıldığını fark ederseniz, `markdownOptions.setIncludeHtml(true)` çağrısı yaparak ham HTML bloklarını markdown çıktısına zorlayabilirsiniz. + +## Adım 3: Dönüşümü Gerçekleştirin + +Now we hand the `HTMLDocument`, the target file path, and our options to the static `Converter.convertHTML` method. The method does all the heavy lifting behind the scenes. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +When the call finishes, you’ll find `preserved.md` next to your source file. Open it in any editor—notice how the original line breaks and table alignment are intact. + +## Adım 4: Sonucu Doğrulayın (Opsiyonel ama Önerilir) + +A quick sanity check saves you from subtle bugs later. You can read the file back into Java and print the first few lines, or just open it in VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +You should see something like: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +The `` tag is still present because markdown’s native table syntax couldn’t capture the exact styling—thanks to `preserve original formatting`. + +## Adım 5: Hepsini Birleştirin – Tam Çalıştırılabilir Örnek + +Below is the complete, ready‑to‑run class. Replace `YOUR_DIRECTORY` with the actual path on your machine. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Run the program with `mvn exec:java` or your favorite IDE, and you’ll have a **generate markdown file** that mirrors the original HTML layout. + +## Yaygın Sorular & Uç Durumlar + +### Harici CSS dosyalarıyla çalışır mı? + +Yes. As long as the CSS files are reachable via relative paths, Aspose HTML loads them automatically. If you’re pulling HTML from a remote URL, you may need to set a custom `ResourceLoadingOptions` object to allow network access. + +### Markdown içinde ham HTML istemezsem ne olur? + +Simply switch the option: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +The converter will then try to translate everything into pure markdown syntax, potentially losing some layout fidelity. + +### Bir dosya yerine bir dizeyi dönüştürebilir miyim? + +Absolutely. Use the constructor that accepts a `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Then pass `doc` to `Converter.convertHTML` as before. + +### Flexmark veya pandoc gibi diğer kütüphanelerden farkı nedir? + +Most open‑source tools treat HTML as plain text and strip whitespace aggressively. Aspose HTML’s `preserveOriginalFormatting` flag is a **proprietary feature** that respects the original source’s whitespace, line breaks, and even keeps unsupported tags as raw HTML blocks. That’s why this tutorial emphasizes **aspose html conversion** for Java developers who need exact fidelity. + +## Üretim Kullanımı İçin İpuçları + +- **Batch processing:** Dönüşüm mantığını bir döngü içinde sararak bir seferde birden fazla HTML dosyasını işleyin. +- **Error handling:** Eksik kaynakları ortaya çıkarmak için `IOException` ve `com.aspose.html.exceptions.AssertionFailedException` yakalayın. +- **Performance:** Büyük bir sitenin parçalarını dönüştürürken tek bir `HTMLDocument` örneğini yeniden kullanın; kütüphane ayrıştırılmış CSS'i önbelleğe alır. + +## Sonuç + +We’ve just shown you how to **convert HTML to markdown** in Java while ensuring the output **preserve original formatting**. The short, self‑contained snippet demonstrates the entire workflow—from loading the HTML document to configuring `MarkdownConversionOptions`, performing the conversion, and verifying the result. With Aspose HTML’s robust API, you can now **generate markdown file** programmatically, whether you’re building a static‑site generator, a documentation pipeline, or a content‑migration tool. + +Next, you might explore: + +- Using **html to markdown java** for bulk migrations across a website. +- Tweaking the conversion options to output GitHub‑flavored markdown tables. +- Combining this approach with a CI/CD step that automatically updates your docs whenever the source HTML changes. + +Feel free to experiment, and drop a comment if you hit any snags. Happy coding! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/turkish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..a4d56a74f --- /dev/null +++ b/html/turkish/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,196 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML for Java kullanarak HTML'den özel boyutlu PDF oluşturun. + HTML'yi PDF'ye dönüştürmeyi ve PDF sayfa boyutunu sadece birkaç adımda ayarlamayı + öğrenin. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: tr +og_description: Aspose ile HTML'den özel boyutta PDF oluşturun. Bu kılavuz, HTML'yi + PDF'ye dönüştürmeyi, PDF sayfa boyutunu değiştirmeyi ve PDF sayfa boyutunu zahmetsizce + ayarlamayı gösterir. +og_title: PDF Özel Boyut Oluştur – HTML'yi PDF'ye Dönüştürme Hızlı Rehberi +tags: +- aspose +- java +- pdf +- html +title: Özel Boyutta PDF Oluştur – Aspose ile HTML'yi PDF'ye Dönüştür +url: /tr/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PDF Özel Boyut Oluşturma – HTML'yi Aspose ile PDF'ye Dönüştürme + +Hiç **HTML dosyasından PDF özel boyut** oluşturmanız gerekti mi? Bu öğreticide **HTML'yi PDF'ye dönüştürme** ve PDF sayfa boyutunu Aspose.HTML for Java kullanarak ayarlama adımlarını göstereceğiz. + +Faturalar, raporlar veya e‑kitaplar oluşturuyorsanız, tam sayfa boyutları çok önemlidir—aksi takdirde düzeniniz ortalanmamış ya da kesilmiş görünür. + +Kaynak HTML'yi yüklemekten kenar boşluklarını ayarlamaya kadar her adımı adım adım anlatacağız ve sonunda kullanıma hazır bir PDF elde edeceksiniz. Belirsiz referanslar yok, sadece bugün kopyalayıp yapıştırabileceğiniz tam, çalıştırılabilir bir örnek. + +## Gereksinimler + +- **Java 17** (veya herhangi bir güncel JDK). +- **Aspose.HTML for Java** JAR'ları – en son sürümü Maven deposundan ya da Aspose web sitesinden alabilirsiniz. +- Kontrol ettiğiniz bir klasörde bulunan basit bir `input.html` dosyası. +- Tercih ettiğiniz bir IDE veya metin düzenleyici; ben genellikle IntelliJ IDEA kullanıyorum, Eclipse de gayet iyi çalışır. + +Bu ön koşullara sahip olmak, “class not found” hatalarıyla yarı yolda takılmamanızı sağlar. + +Şimdi başlayalım. + +![PDF özel boyut oluşturma örneği](/images/create-pdf-custom-size.png "Özel sayfa boyutu ve kenar boşluklarıyla oluşturulmuş bir PDF'nin ekran görüntüsü – pdf özel boyut oluşturma") + +## PDF Özel Boyut Oluşturma – Temel Adımlar + +Aşağıda elde edeceğiniz tam Java programı yer alıyor. `ConvertHtmlToPdfCustomPage.java` adlı bir dosyaya kopyalayıp, proje bağımlılıklarını ekledikten sonra çalıştırabilirsiniz. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Adım 1 – HTML'yi PDF'ye Dönüştürme: Belgeyi Yükleme + +İlk olarak **PDF'ye dönüştürmek istediğimiz HTML'yi** yüklüyoruz. +`HTMLDocument` dosyayı okur, göreli bağlantıları çözer ve Aspose'un render edebileceği bir DOM oluşturur. + +> **Neden önemli:** HTML, CSS veya resimlere referans veriyorsa, Aspose bu kaynakları dosya yoluna göre alır. Mutlak bir yol (`YOUR_DIRECTORY/input.html`) kullanmak “dosya bulunamadı” sürprizlerini önler. + +### Adım 2 – PDF Sayfa Boyutunu Değiştirme: Seçenekleri Yapılandırma + +Burada bir `PdfConversionOptions` nesnesi oluşturuyoruz. +- `setPageSize(PageSize.A4)` Aspose'a standart A4 boyutlarını (210 × 297 mm) kullanmasını söyler. +- `setPageOrientation(...)` sayfayı yatay (landscape) yapmak için yönü değiştirir. +- `setMargins(new Margin(20, 20, 20, 20))` her kenara 20 point kenar boşluğu ekler. + +`PageSize.A4` yerine `PageSize.LETTER` ya da **özel bir boyut** için bir `SizeF` nesnesi geçirebilirsiniz, örneğin: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **İpucu:** Bir point, 1/72 inçtir. Milimetre cinsinden düşünüyorsanız, point değerini elde etmek için 2.83465 ile çarpın. + +### Adım 3 – HTML'den PDF Oluşturma: Dönüşümü Çalıştırma + +`Converter.convertHTML` işi halleder. Yüklenmiş `HTMLDocument`, çıktı yolu ve az önce yapılandırdığımız seçenekleri alır. + +PDF sayfa boyutunu içeriğe göre dinamik olarak ayarlamak isterseniz, bu adımdan önce gerekli boyutları hesaplayıp `pdfOptions` nesnesini buna göre güncelleyebilirsiniz. + +### Adım 4 – Sonucu Doğrulama + +`System.out.println` satırı isteğe bağlıdır, ancak programı bir konsoldan çalıştırdığınızda hızlı bir geri bildirim sağlar. Çalıştırdıktan sonra `custom_page.pdf` dosyasını açın – A4 dikey (portrait) bir PDF, her tarafta 20 point eşit kenar boşluğu, tam olarak belirttiğimiz gibi olmalıdır. + +## HTML'yi PDF'ye Dönüştürme – Yaygın Varyasyonlar + +### Dosya Yolu Yerine Akış (Stream) Kullanma + +Bazen fiziksel bir dosyanız olmayabilir; HTML bir veritabanından ya da API'den geliyor olabilir. Bu durumda string'i bir `ByteArrayInputStream` içine sarın: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +İkinci argüman, göreli kaynakları çözmek için temel URL'dir. + +### Sayfa Yönünü Değiştirme + +Raporunuz genişse, yatay (landscape) moda geçin: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Kenar Boşluklarını İnce Ayarlama + +Kenar boşlukları ondalıklı değerler kabul eder, bu yüzden 0.5 pt gibi çok ince bir sınır ayarlayabilirsiniz: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Büyük HTML Dosyalarını İşleme + +Devasa belgeler için **bellek‑verimli akış** etkinleştirmeyi düşünün: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Bu, Aspose'un ara verileri RAM yerine geçici dosyalara yazmasını sağlar. + +## PDF Sayfa Boyutu Ayarlama – Kenar Durumları ve Tuzaklar + +- **Eksik Yazı Tipleri:** HTML'niz sunucuda yüklü olmayan özel bir yazı tipi kullanıyorsa, PDF varsayılan bir yazı tipine geri döner. `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);` ile yazı tipini gömün. +- **Resim Ölçekleme:** Yüksek çözünürlüklü resimler PDF'yi şişirebilir. `pdfOptions.setImageResolution(150);` ile kaliteyi koruyarak çözünürlüğü düşürün. +- **CSS Uyumluluğu:** Tüm CSS özellikleri tam desteklenmez. Standart düzen tekniklerini (flexbox çalışır, grid bazı sorunlar çıkarabilir) kullanın. +- **Yol İzinleri:** İşlemin `YOUR_DIRECTORY` içine yazma izni olduğundan emin olun. Aksi takdirde `IOException` fırlatılır. + +## Beklenen Çıktı + +Programı çalıştırdığınızda aşağıdaki gibi bir PDF elde edersiniz (kavramsal gösterim): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Sayfa boyutu: **A4** (210 × 297 mm). +- Yönlendirme: **Dikey**. +- Kenar boşlukları: **20 pt** her iki tarafta. + +Dosyayı herhangi bir PDF görüntüleyici (Adobe Reader, Chrome vb.) ile açarak doğrulayın. + +## Özet + +Artık Aspose.HTML for Java kullanarak bir HTML kaynağından **PDF özel boyut** oluşturmayı biliyorsunuz. Öğreticide **HTML'yi PDF'ye dönüştürme**, **PDF sayfa boyutunu değiştirme**, **PDF sayfa boyutunu ayarlama** ve **özel kenar boşluklarıyla PDF oluşturma** adımlarını baştan sona gördünüz. + +Deney yapmaktan çekinmeyin—`PageSize.LETTER` yerine legal boyut kullanın, kenar boşluklarını ayarlayın ya da kendi yazı tiplerinizi gömün. Sonraki adım olarak **filigran ekleme**, **PDF şifreleme** veya **birden çok HTML dosyasını toplu işleme** konularını keşfedebilirsiniz. Tüm bu konular, az önce ele aldığımız temel kavramlar üzerine inşa edilir. + +Belirli bir kenar durumu hakkında sorunuz mu var? Aşağıya yorum bırakın, size yardımcı olayım. Kodlamanın tadını çıkarın! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/turkish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..3015b8b6e --- /dev/null +++ b/html/turkish/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,242 @@ +--- +category: general +date: 2026-03-26 +description: Sabit bir iş parçacığı havuzu ile HTML'den hızlıca PDF oluşturun. Toplu + HTML'den PDF'ye dönüştürmeyi öğrenin ve Java'da paralel görevleri çalıştırın. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: tr +og_description: HTML'den hızlıca PDF oluşturun, sabit bir iş parçacığı havuzu kullanarak. + HTML'yi PDF'ye toplu olarak dönüştürmeyi ve Java'da paralel görevleri çalıştırmayı + öğrenin. +og_title: Java'da HTML'den PDF Oluşturma – Paralel Toplu Dönüştürme Kılavuzu +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Java'da HTML'den PDF Oluşturma – Paralel Toplu Dönüştürme Rehberi +url: /tr/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML'den PDF Oluşturma – Paralel Toplu Dönüştürme Kılavuzu + +Hiç **HTML'den PDF oluşturma** ihtiyacı duydunuz mu ama tek iş parçacıklı dönüşümün sonsuza kadar sürmesinden sıkıldınız mı? Tek başınıza değilsiniz. Gerçek dünyadaki birçok projede, gün sonuna kadar PDF'ye dönüştürülmesi gereken onlarca HTML raporu alıyoruz ve bunları tek tek işlemek pratik değil. + +Bu yüzden bu eğitim, **sabit iş parçacığı havuzu** (fixed thread pool) kullanarak **HTML'den PDF'ye toplu dönüşüm** yapmayı ve **paralel görevleri** sorunsuz bir şekilde çalıştırmayı gösteriyor. Sonunda, bir klasördeki HTML dosyalarını bir sürede PDF'ye dönüştüren, tamamen çalışır bir programınız olacak. + +## Öğrenecekleriniz + +İlerleyen bölümlerde şunları ele alacağız: + +* Aspose.HTML (ağır işi yapan kütüphane) için tam Maven/Gradle bağımlılığı. +* Neden **sabit iş parçacığı havuzu** CPU‑ağırlıklı dönüşüm işleri için ideal. +* Kaynak dosyalarınızı nasıl listeleyeceğiniz, böylece süreç yüzlerce belgeye ölçeklenebilsin. +* IDE'nize yapıştıracağınız eksiksiz kod – eksik import yok, “TODO” yorumu yok. +* Hataları ele alma, havuz boyutunu ayarlama ve çıktıyı doğrulama ipuçları. + +Aspose.HTML hakkında önceden bir bilginiz olmasına gerek yok, sadece temel bir Java ortamı ve deneme isteği yeterli. Hadi başlayalım. + +--- + +![Diagram showing a fixed thread pool converting multiple HTML files to PDF in parallel – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Resim alt metni: create pdf from html – paralel dönüşüm diyagramı* + +## Adım 1: Projenizi Hazırlayın ve Aspose.HTML'i Ekleyin + +İlk iş, projenize Aspose.HTML kütüphanesini eklemek. Maven kullanıyorsanız, `pom.xml` dosyanıza şunu ekleyin: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle için ise sadece: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Neden Aspose.HTML? Ticari bir kütüphane olmasına rağmen, **convert html to pdf** API'si kutudan çıkar çıkmaz CSS, JavaScript ve karmaşık düzenleri işleyebiliyor. Açık kaynak bir alternatif tercih ederseniz, `Converter.convertHTML` çağrısını daha sonra değiştirebilirsiniz; iş parçacığı mantığı aynı kalır. + +> **Pro tip:** Sürüm numarasını resmi sürüm notlarıyla senkronize tutun; yeni sürümler genellikle render hızını artırır, bu da paralel çoklu görev çalıştırırken önemlidir. + +## Adım 2: Paralel Dönüşüm İçin Sabit İş Parçacığı Havuzu Oluşturun + +Bir dosya topluluğunuz olduğunda, sınırsız sayıda iş parçacığı oluşturmak istemezsiniz—işletim sisteminiz aşırı yüklenir. **Sabit iş parçacığı havuzu**, bellek kullanımını kontrol altında tutarken öngörülebilir bir eşzamanlılık sağlar. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Neden dört? Tipik bir 8‑çekirdek makinede, çekirdeklerin yarısı I/O ve OS için serbest bırakılabilir. Deneyebilirsiniz: `Runtime.getRuntime().availableProcessors()` çekirdek sayısını verir ve genel kural `cores / 2`'dir. Unutmayın, her dönüşüm CPU‑yoğun olduğundan, çekirdek sayısından fazla iş parçacığı genellikle performansı düşürür. + +## Adım 3: Dönüştürmek İstediğiniz HTML Dosyalarını Toplayın + +Bulmacanın bir sonraki parçası **batch html to pdf** listesidir. Örnekteki gibi bir dizi sabit kodlayabilir ya da bir dizini tarayabilirsiniz. İşte bir klasörden tüm `.html` dosyalarını okuyan esnek bir versiyon: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Bu yaklaşım sayesinde klasöre yeni dosyalar bıraktığınızda program otomatik olarak onları yakalar—gecelik toplu işler için mükemmel. + +## Adım 4: Her Dosya İçin Bir Dönüşüm Görevi Gönderin (Paralel Görevleri Çalıştırın) + +Şimdi eğlenceli kısım: her dosya bir **Runnable** (veya `Callable`) haline geliyor ve havuz tarafından yürütülüyor. Aşağıdaki kod, orijinal örneği yansıtıyor ancak hata yönetimi ve küçük bir log mesajı ekliyor. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Dönüşümü try‑catch içinde neden sarmalısınız?** **Paralel görevler** çalıştırdığınızda tek bir hatalı HTML dosyası tüm executor'ı çökertir. İstisnaları yerel olarak yakalayarak toplu işlemin geri kalanının sorunsuz devam etmesini sağlarız. + +## Adım 5: Executor'ı Kapatın ve Tamamlanmasını Bekleyin + +Tüm işler gönderildikten sonra, havuzun yeni iş kabul etmesini durdurmalı ve her şey bitene kadar beklemelisiniz. Bu, JVM'nin erken kapanmasını önler. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Eğer binlerce dosyadan oluşan dev bir klasörünüz varsa, zaman aşımını artırabilir veya bir ilerleme izleyicisi ekleyebilirsiniz. Önemli olan **zarif bir şekilde kapatmak**—bu, üretim‑hazır kodun temel özelliğidir. + +## Tam Çalışan Örnek + +Her şeyi bir araya getirdiğimizde, `src/main/java` içine kopyalayıp çalıştırabileceğiniz bağımsız bir sınıf elde edersiniz: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Beklenen çıktı** (örnek): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Oluşturulan `.pdf` dosyalarını açtığınızda, orijinal HTML düzeninin korunduğunu göreceksiniz—yazı tipleri, tablolar ve hatta temel JavaScript‑tabanlı içerik doğru şekilde render edilmiş olur. + +## Sık Sorulan Sorular & Kenar Durumlar + +| Soru | Cevap | +|------|-------| + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/conversion-html-to-various-image-formats/_index.md b/html/turkish/java/conversion-html-to-various-image-formats/_index.md index 38a68b543..a8dfbebba 100644 --- a/html/turkish/java/conversion-html-to-various-image-formats/_index.md +++ b/html/turkish/java/conversion-html-to-various-image-formats/_index.md @@ -98,7 +98,9 @@ Aspose.HTML for Java ile HTML'yi JPEG'ye dönüştürmeyi öğrenin. Sorunsuz be Aspose.HTML ile Java'da HTML'yi PNG görüntülerine dönüştürmeyi öğrenin. Kapsamlı bir rehber ve adım‑adım talimatlar. ### [HTML'yi TIFF'ye Dönüştürme](./convert-html-to-tiff/) Aspose.HTML for Java kullanarak HTML'yi TIFF'ye kolayca dönüştürmeyi öğrenin. Verimli belge işleme için adım‑adım bir rehber. -### [HTML'yi WebP'ye Dönüştür – Aspose.HTML ile Tam Java Rehberi](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Java'da SVG'den Çok Sayfalı TIFF Oluşturma – Adım Adım Kılavuz](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +Aspose.HTML for Java ile SVG dosyalarından çok sayfalı TIFF oluşturmayı adım adım öğrenin. +### [HTML'yi WebP'ye Dönüştür – Aspose.HTML ile Tam Java Rehberi](./convert-html-to-webp-complete-java-guide/) Aspose.HTML for Java kullanarak HTML'yi WebP formatına yüksek kaliteyle dönüştürmeyi adım adım öğrenin. ## Sıkça Sorulan Sorular diff --git a/html/turkish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/turkish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..15370bc9c --- /dev/null +++ b/html/turkish/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,238 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML ile HTML'yi hızlıca WebP'ye dönüştürün. HTML'yi WebP olarak + kaydetmeyi, HTML'yi WebP olarak render etmeyi ve HTML'den WebP üretmeyi sadece birkaç + adımda öğrenin. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: tr +og_description: Aspose.HTML ile HTML'yi hızlıca WebP'ye dönüştürün. Bu öğreticide, + HTML'yi WebP olarak nasıl render edeceğiniz ve Java'da HTML'den WebP nasıl oluşturacağınız + gösterilmektedir. +og_title: HTML'yi WebP'ye Dönüştür – Tam Java Rehberi +tags: +- Java +- Aspose.HTML +- Image Conversion +title: HTML'yi WebP'ye Dönüştür – Tam Java Rehberi +url: /tr/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML'yi WebP'ye Dönüştür – Tam Java Rehberi + +Ever needed to **convert HTML to WebP** but weren’t sure which library could handle the job without a headache? You’re not alone. Many developers hit this snag when trying to serve lightweight images generated from dynamic pages. The good news? With Aspose.HTML for Java you can *save HTML as WebP* in a single method call, and the whole process is as smooth as butter. + +**HTML'yi WebP'ye dönüştürmeniz** gerektiğinde ama hangi kütüphanenin sorunsuz bir şekilde işi halledeceğinden emin olamadığınız oldu mu? Yalnız değilsiniz. Birçok geliştirici, dinamik sayfalardan üretilen hafif görselleri sunmaya çalışırken bu soruna takılıyor. İyi haber? Aspose.HTML for Java ile *HTML'yi WebP olarak kaydedebilir* tek bir metod çağrısıyla ve tüm süreç tereyağı gibi sorunsuz. + +In this tutorial we’ll walk through everything you need to know: from setting up the Aspose.HTML dependency, to tweaking compression settings, and finally rendering the HTML document as a WebP file you can serve on the web. By the end you’ll be able to **render HTML as WebP**, **generate WebP from HTML**, and understand the “why” behind each configuration option. No external scripts, no command‑line gymnastics—just clean Java code. + +Bu öğreticide bilmeniz gereken her şeyi adım adım inceleyeceğiz: Aspose.HTML bağımlılığını kurmaktan, sıkıştırma ayarlarını ince ayar yapmaya ve sonunda HTML belgesini web'de sunabileceğiniz bir WebP dosyası olarak render etmeye kadar. Sonuna geldiğinizde **HTML'yi WebP olarak render** edebilecek, **HTML'den WebP oluştur**abilecek ve her yapılandırma seçeneğinin “neden”ini anlayacaksınız. Harici betikler yok, komut satırı hileleri yok—sadece temiz Java kodu. + +## Önkoşullar + +- Java 8 ve üzeri yüklü (kütüphane JDK 8+ destekler). +- Bağımlılık yönetimi için Maven veya Gradle (Maven örneğini göstereceğiz). +- WebP görseline dönüştürmek istediğiniz basit bir HTML dosyası (`input.html`). +- Seçtiğiniz bir IDE veya metin editörü—IntelliJ IDEA harika çalışır, ama herhangi biri yeterli. + +Hepsi hazır mı? Harika, başlayalım. + +## Adım 1: Aspose.HTML'i Projenize Ekleyin + +İlk olarak, Aspose.HTML kütüphanesinin sınıf yolunda (classpath) bulunması gerekir. Maven kullanıyorsanız, bunu `pom.xml` dosyanıza ekleyin: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Gradle için ise şöyle görünür: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Why is this step crucial? Without the JAR, none of the `HTMLDocument`, `Converter`, or `WebpConversionOptions` classes exist, and the compiler will throw a `ClassNotFoundException`. Adding the dependency also pulls in the native binaries needed for WebP encoding, so you don’t have to hunt down external DLLs or `.so` files. + +Bu adım neden kritik? JAR olmadan `HTMLDocument`, `Converter` veya `WebpConversionOptions` sınıfları mevcut olmaz ve derleyici bir `ClassNotFoundException` hatası verir. Bağımlılığı eklemek aynı zamanda WebP kodlaması için gereken yerel ikili dosyaları da getirir, böylece harici DLL'leri veya `.so` dosyalarını aramanıza gerek kalmaz. + +> **Pro tip:** Keep your dependencies up‑to‑date. Newer Aspose releases often improve WebP compression algorithms and add support for newer HTML5 features. + +> **Pro tip:** Bağımlılıkların güncel olduğundan emin olun. Yeni Aspose sürümleri genellikle WebP sıkıştırma algoritmalarını iyileştirir ve yeni HTML5 özelliklerine destek ekler. + +## Adım 2: Kaynak HTML Belgesini Yükleyin + +Kütüphane hazır olduğuna göre, dönüştürmek istediğiniz HTML'yi yükleyebiliriz. `HTMLDocument` sınıfı dosyayı ayrıştırır ve bir DOM oluşturur; bu DOM daha sonra dönüştürücü tarafından render edilir. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Notice the comment “Load the source HTML document” – it’s a reminder that you can also inject CSS or JavaScript before conversion if your page relies on dynamic styling. If you skip this step, the converter would have nothing to render, resulting in a blank image. + +“Load the source HTML document” yorumuna dikkat edin – bu, sayfanız dinamik stillere dayanıyorsa dönüşümden önce CSS veya JavaScript enjekte edebileceğinizi hatırlatır. Bu adımı atlayarsanız, dönüştürücünün render edecek bir şey kalmaz ve boş bir görüntü elde edersiniz. + +## Adım 3: WebP Dönüşüm Seçeneklerini Yapılandırın + +Aspose.HTML, çıktıyı ince ayarlarla kontrol etmenizi sağlar. Çoğu durumda, kalite ayarı yaklaşık 85 olan **lossy** (kayıplı) bir WebP, görsel doğruluk ile dosya boyutu arasında iyi bir denge kurar. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Why pick lossy? WebP’s lossy mode uses predictive coding, which can shrink files by 30‑50 % compared to PNG while preserving most visual detail. If you need pixel‑perfect results (e.g., for logos), switch `CompressionMode` to `Lossless` and bump `quality` to 100. + +Neden kayıplı (lossy) tercih edilsin? WebP'nin kayıplı modu, tahmine dayalı kodlama kullanır ve PNG'ye göre dosyaları %30‑50 oranında küçültebilir, aynı zamanda çoğu görsel detayı korur. Piksel‑tam sonuçlara (ör. logolar) ihtiyacınız varsa, `CompressionMode`'u `Lossless` olarak değiştirin ve `quality` değerini 100'e yükseltin. + +## Adım 4: WebP Görselini Dönüştürün ve Kaydedin + +Belge ve seçenekler hazır olduğunda, dönüşüm tek satırda yapılır. Statik `Converter.convertHTML` metodu tüm işi üstlenir: DOM'u bir bitmap üzerine render eder, WebP olarak kodlar ve dosyayı diske yazar. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Hepsi bu! Program tamamlandığında, `output.webp` dosyasını kaynak HTML'nizin yanında bulacaksınız. Artık bu dosyayı doğrudan bir web sunucusundan sunabilir, bir `` öğesine gömebilir veya WebP'yi destekleyen herhangi bir bağlamda kullanabilirsiniz. + +## Adım 5: Sonucu Doğrulayın (Opsiyonel ama Tavsiye Edilir) + +Dönüşümün başarılı olduğunu ve görüntünün beklendiği gibi göründüğünü iki kez kontrol etmek her zaman iyi bir fikirdir. WebP dosyasını Chrome, Firefox veya formatı destekleyen herhangi bir görüntü görüntüleyicide açabilirsiniz. Hızlı bir programatik kontrol için dosya boyutunu ve boyutlarını okuyabilirsiniz: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +If the file is unexpectedly large or the dimensions are off, revisit **Step 3** and tweak `quality` or the source HTML’s viewport settings. Remember, WebP respects the CSS `width`/`height` of the root element, so a missing `` tag can cause surprising results. + +Dosya beklenmedik şekilde büyükse veya boyutlar hatalıysa, **Adım 3**'e geri dönün ve `quality` ya da kaynak HTML'nin viewport ayarlarını ince ayar yapın. Unutmayın, WebP kök öğenin CSS `width`/`height` değerlerine saygı gösterir, bu yüzden eksik bir `` etiketi şaşırtıcı sonuçlara yol açabilir. + +## Tam Çalışan Örnek + +Her şeyi bir araya getirerek, işte tam, çalıştırmaya hazır Java sınıfı: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Bu dosyayı `HtmlToWebp.java` olarak kaydedin, `YOUR_DIRECTORY` kısmını gerçek klasör yolu ile değiştirin, `javac` ile derleyin ve `java HtmlToWebp` ile çalıştırın. Konsolda dosya boyutunu ve boyutlarını onaylayan bir çıktı görmeli, ardından son başarı mesajını alacaksınız. + +![html'yi webp'ye dönüştür örneği](/images/convert-html-to-webp.png "HTML'den oluşturulan WebP görüntüsünün ekran görüntüsü – html'yi webp'ye dönüştür") + +## Yaygın Sorular & Kenar Durumları + +### HTML'm dış kaynaklara (CSS, görseller) referans veriyorsa ne olur? + +Aspose.HTML, `input.html` dosyasının konumuna göre göreceli URL'leri otomatik olarak çözer. Kaynakların dosya sisteminden veya bir web sunucusundan erişilebilir olduğundan emin olun. Özel bir temel URL enjekte etmeniz gerekiyorsa, `URI` temelini kabul eden aşırı yüklenmiş `HTMLDocument` yapıcıyı kullanın. + +### Aynı HTML'den birden fazla WebP görüntüsü oluşturabilir miyim (ör. farklı viewport boyutları)? + +Kesinlikle. Dönüşüm mantığını bir döngü içinde sarın, her çağrıdan önce `webpOptions.setWidth()` ve `setHeight()`'i ayarlayın ve her çıktıya benzersiz bir dosya adı verin. Bu, mobil ve masaüstü için farklı görüntü boyutları sunulan duyarlı tasarımlar için kullanışlıdır. + +### Kayıpsız sıkıştırmaya nasıl geçilir? + +Aşağıdaki satırı değiştirin: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +şununla: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Kayıpsız, piksel‑tam doğruluk sağlar ancak daha büyük dosyalar üretir—sadece gerektiğinde kullanın. + +### Bu Linux/macOS'ta çalışır mı? + +Evet. Aspose.HTML JAR, Windows, Linux ve macOS için yerel ikili dosyaları içerir, bu yüzden aynı Java kodu her yerde çalışır. Yalnızca uygun JRE'nin yüklü olduğundan emin olun. + +## Sonuç + +Aspose.HTML for Java kullanarak **HTML'yi WebP'ye nasıl dönüştüreceğinizi** yeni öğrendiniz; bağımlılık kurulumundan sıkıştırmayı ince ayarlamaya ve sonucu doğrulamaya kadar her şeyi kapsadık. Bu bilgiyle **HTML'yi WebP olarak kaydedebilir**, **HTML'yi WebP olarak render edebilir** ve **HTML'den WebP oluşturabilirsiniz** anında—dinamik görüntü hatları, e‑posta bültenleri veya hafif görsellerin önemli olduğu herhangi bir senaryo için mükemmel. + +Sırada ne var? Farklı `quality` değerleriyle denemeler yapın, `Lossless` modunu keşfedin veya bu dönüştürücüyü bir Spring Boot REST uç noktasına entegre edin, böylece web hizmetiniz isteğe bağlı WebP görüntüleri döndürebilsin. Ayrıca bir klasördeki HTML dosyalarını toplu işleyebilir veya bunu headless Chrome ile birleştirerek SVG'den WebP'ye dönüşümler yapabilirsiniz. + +Diğer dillerde **HTML'yi nasıl dönüştüreceğiniz** hakkında daha fazla sorunuz varsa veya belirli bir kenar durumunu çözmekte yardıma ihtiyacınız varsa, aşağıya bir yorum bırakın, iyi kodlamalar! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/turkish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..442e0a062 --- /dev/null +++ b/html/turkish/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML ile Java’da SVG’den çok sayfalı TIFF oluşturun. SVG’yi TIFF’e + nasıl dönüştüreceğinizi, Java’da SVG belgesini nasıl yükleyeceğinizi ve çok sayfalı + TIFF dosyaları nasıl oluşturacağınızı öğrenin. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: tr +og_description: Java'da SVG'den çok sayfalı TIFF oluşturun. Bu öğreticide bir SVG + belgesi nasıl yüklenir, TIFF seçenekleri nasıl yapılandırılır ve kayıpsız çok sayfalı + TIFF nasıl üretilir gösterilmektedir. +og_title: Java'da SVG'den çok sayfalı TIFF oluşturma – Tam Kılavuz +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Java'da SVG'den Çok Sayfalı TIFF Oluşturma – Adım Adım Rehber +url: /tr/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# SVG'den Java ile Çok Sayfalı TIFF Oluşturma – Adım‑Adım Kılavuz + +SVG'den **çok sayfalı tiff** oluşturmanız gerektiğinde ama nereden başlayacağınızı bilemediğiniz oldu mu? Yalnız değilsiniz—birçok geliştirici, birkaç sayfaya yayılan yazdırılabilir, kayıpsız bir belgeye ihtiyaç duyduklarında tam olarak bu engelle karşılaşıyor. Bu kılavuzda, **SVG'yi TIFF'e nasıl dönüştüreceğinizi**, SVG belgesini Java'da nasıl yükleyeceğinizi ve çıktıyı **LZW sıkıştırmasıyla çok sayfalı tiff** dosyaları oluşturacak şekilde nasıl yapılandıracağınızı gösteren eksiksiz, çalıştırmaya hazır bir çözümü adım adım inceleyeceğiz. + +Aspose.HTML kütüphanesini kurmaktan büyük SVG varlıkları gibi uç durumları ele almaya kadar her şeyi kapsayacağız. Eğitim sonunda, herhangi bir projeye ekleyebileceğiniz ve çok sayfalı TIFF'leri anında üretmeye başlayabileceğiniz tek bir Java sınıfına sahip olacaksınız. + +## İhtiyacınız Olanlar + +- **Java Development Kit (JDK) 8+** – kod standart Java API'lerini kullanır. +- **Aspose.HTML for Java** (sürüm 23.5 veya daha yeni) – bu tek üçüncü‑taraf bağımlılıktır. +- Bir **örnek SVG dosyası** (herhangi bir vektör grafik yeterli; ona `input.svg` diyeceğiz). +- Sevdiğiniz IDE ya da basit bir metin düzenleyici ve bir terminal. + +Ek bir derleme aracı gerekmez; örnek `javac` ile derlenir ve `java` ile çalıştırılır. Maven ya da Gradle tercih ediyorsanız, Aspose.HTML JAR dosyasını projenizin sınıf yoluna eklemeniz yeterlidir. + +![Çok sayfalı tiff oluşturma örneği](create-multipage-tiff.png){alt="çok sayfalı tiff çıktısı"} + +## Adım 1 – SVG Belgesini Yükleme (load svg document java) + +İlk olarak SVG'yi bir `HTMLDocument` nesnesine okumamız gerekir. Aspose.HTML, SVG dosyalarını HTML belgeleri gibi işler; bu da dönüşüm için birleşik bir API sağlar. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Neden önemli:** SVG'yi `HTMLDocument` olarak yüklemek, tam render motoruna erişim sağlar; böylece tüm stiller, yazı tipleri ve gömülü görseller dönüşümden önce doğru şekilde yorumlanır. Bu adımı atlayıp ham baytları doğrudan dönüştürücüye vermek, eksik öğeler ya da hatalı renkler ortaya çıkmasına neden olur. + +## Adım 2 – TIFF Seçeneklerini Yapılandırma (how to create multipage tiff) + +Şimdi `TiffConversionOptions` nesnesini ayarlıyoruz. Bu nesne sayfa düzeninden sıkıştırmaya kadar her şeyi kontrol eder. Gerçek çok sayfalı çıktı için `setMultipage(true)` etkinleştiriyoruz ve **LZW** sıkıştırmasını seçiyoruz; çünkü bu kayıpsızdır ve yaygın olarak desteklenir. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Neden önemli:** `setMultipage(true)` kullanılmazsa, kütüphane tek sayfalı bir TIFF üretir ve SVG'den (örneğin birden çok `` kök öğesi içeriyorsa) türetilen ek sayfaları atar. LZW, görüntü kalitesinden ödün vermeden dosya boyutunu makul tutar—arşivleme ya da baskı hatları için idealdir. + +## Adım 3 – Dönüşümü Gerçekleştirme (how to convert svg to tiff) + +Şimdi asıl iş burada gerçekleşiyor. Statik `Converter.convertSVG` metodu, yüklenmiş belgeyi, hedef yolu ve az önce tanımladığımız seçenekleri alır. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Neden önemli:** Statik `convertSVG` çağrısını kullanmak, dönüşümü tetiklemenin en doğrudan yoludur. Aspose.HTML, vektör verisini varsayılan 96 dpi'de rasterleştirir; daha yüksek kalite gerekiyorsa `tiffOptions.setResolution(...)` ile DPI'yi ayarlayabilirsiniz. + +## Adım 4 – Sonucu Doğrulama + +Dönüşüm tamamlandıktan sonra, dosyanın varlığını ve beklenen sayfa sayısını kontrol etmek iyi bir fikirdir. Çok sayfalı TIFF (ör. IrfanView, XnView veya Java’nın `ImageIO`'sı) destekleyen herhangi bir görüntüleyiciyle hızlı bir kontrol yapabilirsiniz. + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Programı çalıştırın: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Konsolda başarı mesajını görmeli ve `output.tiff` dosyasını açtığınızda her SVG kök öğesi için bir sayfa (veya SVG sadece bir kanvas içeriyorsa tek sayfa) olduğunu fark etmelisiniz. + +## Yaygın Tuzaklar ve Profesyonel İpuçları + +| Sorun | Neden Oluşur | Nasıl Düzeltilir | +|-------|--------------|-------------------| +| **Eksik yazı tipleri** | SVG, sunucuda yüklü olmayan sistem yazı tiplerine başvurur. | Yazı tiplerini SVG'ye gömün veya Aspose.HTML'de `FontSettings` kullanarak özel bir yazı tipi klasörü sağlayın. | +| **Büyük dosya boyutu** | Yüksek çözünürlüklü rasterleştirme TIFF boyutunu şişirebilir. | DPI'yi `tiffOptions.setResolution(150)` ile düşürün veya yalnızca hata ayıklama için `Compression.NONE`'a geçin. | +| **Birden çok sayfa oluşturulmuyor** | SVG yalnızca bir `` öğesi içeriyor. | Kaynağınızı ayrı SVG dosyalarına bölün veya her mantıksal sayfayı dönüşümden önce bir `` etiketiyle sarın. | +| **Desteklenmeyen SVG özellikleri** | Bazı filtreler veya animasyonlar render edilmez. | SVG'yi basitleştirin veya filtreleri düzleştirmek için Inkscape gibi bir araçla ön‑işleme yapın. | + +**Pro ipucu:** Belirli bir sayfa sırası gerekiyorsa, SVG dosyalarınızı `page1.svg`, `page2.svg` vb. olarak adlandırın ve her bir dönüşüm sonucunu aynı TIFF'e eklemek için her seferinde `tiffOptions.setMultipage(true)` kullanarak döngü içinde işleyin. + +## Tam Çalışan Örnek + +Aşağıda, `SvgToMultipageTiff.java` adlı bir dosyaya kopyalayıp yapıştırabileceğiniz, eksiksiz, bağımsız bir Java sınıfı yer alıyor. İçinde import ifadeleri, yorumlar ve üretim ortamı için hata yönetimi bulunuyor. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Kodu çalıştırdığınızda, her SVG kökü ayrı bir sayfa olarak TIFF'e dönüştürülür—yazdırma ya da arşivleme için **çok sayfalı tiff** dosyaları oluşturmanız gerektiğinde tam olarak ihtiyacınız olan şey. + +## Sonuç + +SVG'den Java ve Aspose.HTML kullanarak **çok sayfalı tiff** oluşturmayı size gösterdik. Eğitim, SVG'yi yükleme (`load svg document java`), dönüşüm seçeneklerini yapılandırma, dönüşümü gerçekleştirme (`how to convert svg to tiff`) ve çıktıyı doğrulama konularını kapsadı. Tam kaynak koduna sahip olduğunuzda, onlarca SVG'yi toplu işlemek, DPI ayarlarını ince ayarlamak ya da mantığı daha büyük bir belge‑oluşturma hattına entegre etmek için çözümü kolayca uyarlayabilirsiniz. + +Bir sonraki meydan okumaya hazır mısınız? Bir klasördeki tüm SVG'leri tek bir çok sayfalı TIFF'e dönüştürmeyi deneyin, farklı sıkıştırma şemalarını test edin ya da `TiffConversionOptions` yerine `PdfConversionOptions` kullanarak PDF çıktısına geçin. Aynı prensipler geçerli, böylece bu deseni diğer formatlara da rahatlıkla genişletebilirsiniz. + +Sorularınız mı var ya da garip bir SVG kenar durumu mu yaşadınız? Aşağıya yorum bırakın, iyi kodlamalar! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/html5-canvas-rendering/_index.md b/html/turkish/java/html5-canvas-rendering/_index.md index ba32517a4..49ea37b26 100644 --- a/html/turkish/java/html5-canvas-rendering/_index.md +++ b/html/turkish/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Web geliştirme söz konusu olduğunda, grafikleri işlemek çoğu zaman göz ko Java için Aspose.HTML ile HTML5 Canvas oluşturun ve işleyin. Bu güçlü Java kütüphanesini kullanarak adım adım çizim, stil ve PDF'ye aktarmayı öğrenin. ### [Java için Aspose.HTML ile HTML5 Canvas'ta Ustalaşma](./html5-canvas/) Aspose.HTML for Java kullanarak HTML5 Canvas'ı PDF'ye nasıl oluşturacağınızı ve dönüştüreceğinizi öğrenin. Bu kılavuz, web projelerini geliştirmek isteyen geliştiriciler için mükemmeldir. +### [iPhone Emülasyonu Nasıl Yapılır – Aspose.HTML ile Tam Kılavuz](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Aspose.HTML ile iPhone cihazını taklit ederek web sayfalarını mobil ortamda test edin ve render edin. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/turkish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/turkish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..b334843ec --- /dev/null +++ b/html/turkish/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,170 @@ +--- +category: general +date: 2026-03-26 +description: Aspose.HTML kullanarak Java'da iPhone emülasyonu nasıl yapılır öğrenin. + Doğru mobil renderleme için özel kullanıcı aracısı ayarlama ve cihaz piksel oranını + belirleme adımlarını içerir. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: tr +og_description: Java'da iPhone taklidi nasıl yapılır? Bu öğreticide, Aspose.HTML kullanarak + özel kullanıcı aracısı ve cihaz piksel oranı nasıl ayarlanır, piksel‑mükemmel mobil + sayfalar sunulur. +og_title: iPhone Nasıl Emüle Edilir – Adım Adım Aspose.HTML Rehberi +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: iPhone Nasıl Emüle Edilir – Aspose.HTML ile Tam Rehber +url: /tr/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# iPhone'ı Emüle Etme – Aspose.HTML ile Tam Kılavuz + +Yerel olarak bir web sayfasını test ederken **iPhone'ı nasıl emüle ederim** diye hiç merak ettiniz mi? Belki duyarlı bir tasarımı hata ayıklıyorsunuz ve masaüstü tarayıcı yeterli gelmiyor. İyi haber şu ki fiziksel bir cihaza ihtiyacınız yok—Aspose.HTML'in `DocumentSandbox`'ı, birkaç Java satırıyla iPhone'un ekranını, kullanıcı aracısını ve cihaz‑piksel‑oranını (DPR) taklit etmenizi sağlıyor. + +Bu öğreticide **custom user agent** ayarlama, **device pixel ratio** yapılandırma adımlarını adım adım gösterecek ve her şeyin beklendiği gibi çalıştığını nasıl doğrulayacağınızı göstereceğiz. Sonunda iPhone 8 gibi sayfaları render eden yeniden kullanılabilir bir sandbox elde edeceksiniz ve her ayarın neden önemli olduğunu anlayacaksınız. + +## Neler Başaracaksınız + +- iPhone'un boyutlarını ve DPR'sini yansıtan bir `Screen` nesnesi oluşturmak. +- Sunucuların isteğin iOS'ta Safari'den geldiğini düşünmesi için **custom user agent** dizesi uygulamak. +- Ekran ve kullanıcı‑aracısını birleştiren bir `DocumentSandbox` oluşturmak. +- Sandbox içinde bir `HTMLDocument` çalıştırıp yapılandırmanın doğrulandığını konsolda görmek. + +Aspose.HTML dışındaki hiçbir ek kütüphane gerekmez ve kod herhangi bir Java 17+ ortamında çalışır. + +--- + +![how to emulate iphone screenshot](https://example.com/images/iphone-emulation.png "how to emulate iphone using Aspose.HTML sandbox") + +## Aspose.HTML Sandbox ile iPhone'ı Emüle Etme + +İlk olarak, iPhone'un fiziksel boyutlarını *ve* piksel yoğunluğunu yansıtan bir `Screen` tanımlamamız gerekiyor. Bu, **iPhone'ı nasıl emüle ederim** sorusunun doğru cevabıdır. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Neden Önemli:** +- Genişlik = 375 px ve yükseklik = 667 px, Chrome DevTools'ta iPhone 8 seçtiğinizde gördüğünüz CSS piksel boyutlarıdır. +- DPR'yi 2 olarak ayarlamak, render motorunun her CSS pikselini iki fiziksel piksel olarak işlemesini sağlar; bu da gerçek bir cihazda olduğu gibi keskin metin ve görseller elde etmenizi sağlar. + +> *İpucu:* Daha yeni bir iPhone (ör. iPhone 13) taklit etmek isterseniz, sayıları 390 × 844 ve DPR = 3 olarak değiştirin. + +## Setting a Custom User Agent (set custom user agent) + +Şimdi **custom user agent** ayarlamamız gerekiyor, böylece sunucu mobil‑özel HTML/CSS gönderir. Bunu yapmazsanız, birçok site hâlâ sizi masaüstü olarak algılar. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Nasıl Çalışır:** +- `User-Agent` başlığı, tarayıcıların kendilerini tanıttığı el sıkışmadır. +- iOS 16'da Safari'nin gönderdiği tam dizeyi sağlayarak, sunucunun mobil‑optimize edilmiş varlıkları (duyarlı görseller, uyarlamalı scriptler vb.) döndürmesini garantilersiniz. + +Farklı bir cihaz için **how to set user-agent** ihtiyacınız olursa, dizeyi Google Chrome, Firefox veya özel bir bot değerine değiştirmeniz yeterlidir. + +## Configuring Device Pixel Ratio (set device pixel ratio) + +Şimdi sandbox içinde **device pixel ratio** ayarlıyoruz. Bu adım, “**how to set dpr**” sorusunun doğrudan cevabıdır. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Açıklama:** +- `Builder` deseni, ekranı (DPR'yi taşıyan) ve kullanıcı‑aracısını akıcı bir şekilde eklemenizi sağlar. +- Sandbox bir `HTMLDocument` render ettiğinde, tam olarak bu piksel yoğunluğuna sahip bir cihazda çalışıyormuş gibi davranır. + +> *Neden Önemli:* Bazı CSS medya sorguları `device-pixel-ratio` kullanır (ör. `@media (-webkit-min-device-pixel-ratio: 2)`). DPR'yi ayarlamazsanız bu kurallar hiç tetiklenmez ve yüksek çözünürlüklü varlıkları kaçırırsınız. + +## Verifying the Sandbox Configuration (how to set user-agent) + +Sandbox'ı çalıştırıp doğrulayalım. Aşağıdaki kod parçası bir `HTMLDocument` oluşturur, bir sayfa yükler ve sandbox'ın aktif olduğunu onaylayan bir mesaj yazdırır. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Beklenen konsol çıktısı** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Programı çalıştırıp bu satırı görürseniz, **iPhone'ı nasıl emüle ederim** sorusunun doğru DPR ve user‑agent ile çözüldüğünü kanıtlamış olursunuz. Sayfayı gerçek bir tarayıcıda açıp viewport boyutlarını inceleyin; iPhone için ayarladığımız değerlerle eşleştiğini göreceksiniz. + +## Common Pitfalls and How to Set DPR Correctly (how to set dpr) + +Doğru kodu yazsanız bile birkaç tuzak sizi zorlayabilir: + +| Sorun | Neden Oluşur | Çözüm | +|-------|----------------|-----| +| **DPR 1'de kalıyor** | `Screen` nesnesine üçüncü argüman (DPR) eklenmemiş. | Her zaman `new Screen(width, height, dpr)` kullanın. | +| **User‑Agent yok sayılıyor** | Sandbox `HTMLDocument`'e eklenmemiş. | `HTMLDocument` yapıcısının ikinci argümanı olarak `documentSandbox`'ı geçin. | +| **Yanlış boyutlar** | Donanım pikselleri yerine CSS pikselleri kullanılıyor. | Unutmayın: genişlik/yükseklik **CSS pikselleri** olmalı, donanım pikselleri değil. | +| **Sunucu hâlâ masaüstü CSS gönderiyor** | Bazı siteler cihazı sadece başlıkla değil, JavaScript ile de tespit ediyor. | Gerekirse bir viewport meta etiketi eklemeyi düşünün. | + +Bu noktaları akılda tutarsanız, emülasyonun beklenmedik şekilde davranma ihtimali çok azalır. + +## Extending the Sandbox – Next Steps + +Artık **custom user agent** ve **device pixel ratio** ayarlarını bildiğinize göre, daha fazlasını deneyebilirsiniz: + +- **Ekran boyutunu** değiştirerek tablet veya daha büyük telefonları taklit edin. +- **User‑agent**'ı değiştirerek Android'de Chrome (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`) test edin. +- **Çerezler veya başlıklar** eklemek için sandbox'ın `setHeaders` metodunu kullanarak kimlik doğrulamalı testler yapın. +- Görsel farkları otomatik karşılaştırmak için `HTMLDocument.renderToFile("output.png")` ile **screenshot** alın. + +Bu genişletmeler, IDE'nizden çıkmadan tam özellikli bir test çerçevesi oluşturmanızı sağlar. + +--- + +## Sonuç + +Aspose.HTML'in `DocumentSandbox`'ını kullanarak **iPhone'ı nasıl emüle ederim** sorusunu yanıtladık; **custom user agent** nasıl ayarlanır, **device pixel ratio** nasıl belirlenir ve “**how to set user-agent**” ile “**how to set dpr**” arasındaki ince farkları gösterdik. Tek bir yerde çalışan tam örnek, kopyalayıp yapıştırarak mobil tasarımları anında test etmeye başlamanızı sağlar. + +Deneyin—ekran boyutlarını değiştirin, farklı user‑agent'lar deneyin ve sayfalarınızın nasıl tepki verdiğini izleyin. Bu ayarları ustalaştığınızda, duyarlı tasarımları hata ayıklamak çocuk oyuncağı olur ve gerçek cihazlarda saatlerce süren hata takibinden tasarruf edersiniz. + +Sorularınız mı var ya da kendi varyasyonlarınızı paylaşmak mı istiyorsunuz? Aşağıya bir yorum bırakın, iyi emülasyonlar! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/advanced-usage/_index.md b/html/vietnamese/java/advanced-usage/_index.md index 041b1b2c4..f149a9e4d 100644 --- a/html/vietnamese/java/advanced-usage/_index.md +++ b/html/vietnamese/java/advanced-usage/_index.md @@ -128,6 +128,8 @@ Học cách điều chỉnh kích thước trang PDF với Aspose.HTML for Java. Học cách điều chỉnh kích thước trang XPS với Aspose.HTML for Java. Kiểm soát kích thước đầu ra của tài liệu XPS một cách dễ dàng. ### [Cách chạy JavaScript trong Java – Hướng dẫn toàn diện](./how-to-run-javascript-in-java-complete-guide/) Hướng dẫn chi tiết cách thực thi mã JavaScript trong ứng dụng Java bằng Aspose.HTML, bao gồm thiết lập môi trường và ví dụ thực tế. +### [Ví dụ top-level await – Sử dụng await delay trong JavaScript](./top-level-await-example-using-await-delay-in-javascript/) +Hướng dẫn cách sử dụng top-level await với hàm delay trong JavaScript bằng Aspose.HTML. --- diff --git a/html/vietnamese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md b/html/vietnamese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md new file mode 100644 index 000000000..5921825bf --- /dev/null +++ b/html/vietnamese/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/_index.md @@ -0,0 +1,172 @@ +--- +category: general +date: 2026-03-26 +description: Ví dụ top-level await hiển thị await delay trong JavaScript, lớp tăng + bộ đếm và các trường công khai của lớp trong JavaScript trong một bản demo trực + tiếp. +draft: false +keywords: +- top level await example +- await delay javascript +- increment counter class +- public class fields javascript +- javascript class public field +language: vi +og_description: Ví dụ top-level await minh họa await delay trong JavaScript, lớp tăng + bộ đếm và các trường công khai của lớp trong JavaScript trong một hướng dẫn ngắn + gọn. +og_title: Ví dụ về top-level await – Sử dụng await delay trong JavaScript +tags: +- JavaScript +- ES2022 +- async‑await +- classes +title: Ví dụ về top-level await – Sử dụng await delay trong JavaScript +url: /vi/java/advanced-usage/top-level-await-example-using-await-delay-in-javascript/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# ví dụ top level await – Sử dụng await delay trong JavaScript + +Bạn đã bao giờ tự hỏi làm sao tạm dừng việc thực thi module mà không cần bọc mọi thứ trong một async IIFE? Đó chính là những gì một **ví dụ top level await** cho phép bạn làm. Trong hướng dẫn này chúng ta sẽ đi qua một trang web nhỏ sử dụng `await delay javascript` để hoãn công việc, sau đó tạo một `increment counter class` tận dụng **public class fields javascript**. Khi kết thúc, bạn sẽ có một đoạn mã hoàn chỉnh, có thể sao chép‑dán và chạy trên bất kỳ trình duyệt hiện đại nào. + +Chúng ta sẽ bao phủ mọi thứ từ việc định nghĩa một lớp với trường công khai đến việc kết nối một helper delay dựa trên promise. Không có thư viện bên ngoài, không có bước build—chỉ HTML thuần, một ` + ECMAScript 2022 Demo + + +top level await example screenshot + + + + +``` + +### Đầu ra Console Dự kiến + +``` +Counter class initialized +Final count: 1 +``` + +Nếu bạn mở trang trong DevTools, bạn sẽ thấy thông điệp static‑block xuất hiện **trước** khi delay kết thúc, xác nhận rằng lớp đã được đánh giá trước. + +## Bước 5 – Tại sao dùng Public Class Fields thay vì Constructor? + +Bạn có thể tự hỏi tại sao chúng ta không viết: + +```javascript +class Counter { + constructor() { + this.count = 0; + } +} +``` + +Cả hai cách đều hoạt động, nhưng **public class fields javascript** cho bạn một cú pháp sạch hơn, khai báo một cách rõ ràng. Trường được định nghĩa một lần, không nằm trong mỗi lần gọi constructor, điều này dễ đọc hơn khi lớp trở nên phức tạp. Thêm nữa, static block không thể đặt bên trong constructor, vì vậy việc tách logic khởi tạo trở nên tự nhiên hơn. + +## Bước 6 – Điều chỉnh ví dụ cho các ứng dụng thực tế + +Trong môi trường production, bạn thường cần hơn một bộ đếm duy nhất. Dưới đây là một vài ý tưởng nhanh: + +- **Nhiều bộ đếm:** Lưu chúng trong một `Map` với key là định danh. +- **Trạng thái persist:** Thay `console.log` bằng việc ghi vào `localStorage`. +- **Khởi tạo async:** Dùng static block để fetch cấu hình từ server trước khi tạo bất kỳ instance nào. + +Tất cả các mẫu này vẫn hưởng lợi từ top‑level await, vì bạn có thể fetch dữ liệu một lần khi module được tải và đảm bảo nó sẵn sàng cho mọi consumer. + +## Câu hỏi thường gặp + +**Hỏi: Top‑level await có chặn các module khác không?** +Đáp: Không. Mỗi module chạy độc lập. Chỉ module chứa await bị tạm dừng; các module khác vẫn tiếp tục tải song song. + +**Hỏi: Nếu promise delay bị reject thì sao?** +Đáp: Một rejection không được xử lý sẽ làm abort quá trình đánh giá module và hiện ra lỗi trong console. Hãy bọc await trong `try…catch` nếu bạn cần fallback mềm mại. + +**Hỏi: Từ khóa `static` có bắt buộc không?** +Đáp: Không đối với bộ đếm tự thân, nhưng static block là cách tiện lợi để minh họa rằng code chạy *một lần* khi load—rất hữu ích cho logging hoặc detection tính năng. + +## Kết luận + +Bạn vừa xây dựng một **ví dụ top level await** thể hiện `await delay javascript`, một **increment counter class**, và sức mạnh của **public class fields javascript**. Đoạn mã hoàn chỉnh, có thể chạy ngay ở trên đã được cung cấp, và đầu ra console chứng minh static block được thực thi trước code delay. + +Từ đây, bạn có thể thử nghiệm các luồng async phức tạp hơn, thay thế delay bằng một cuộc gọi API thực, hoặc mở rộng lớp với các phương thức bổ sung. Hãy nhớ, JavaScript hiện đại cho phép bạn xem các module như những thực thể async cấp cao—không cần wrapper thêm. + +Chúc bạn coding vui vẻ, và đừng ngại chia sẻ các biến thể của bạn trong phần bình luận. Nếu bạn thấy hướng dẫn này hữu ích, hãy chia sẻ với đồng nghiệp đang vật lộn với các mẫu async! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/conversion-html-to-other-formats/_index.md b/html/vietnamese/java/conversion-html-to-other-formats/_index.md index ec6e7a78c..9192cbd7b 100644 --- a/html/vietnamese/java/conversion-html-to-other-formats/_index.md +++ b/html/vietnamese/java/conversion-html-to-other-formats/_index.md @@ -100,6 +100,9 @@ Tìm hiểu cách chuyển đổi HTML sang XPS một cách dễ dàng bằng As ### [Chuyển đổi Markdown sang HTML](./convert-markdown-to-html/) Chuyển đổi Markdown sang HTML trong Java một cách liền mạch với Aspose.HTML for Java. Thực hiện theo hướng dẫn từng bước để tối ưu nhu cầu chuyển đổi tài liệu của bạn. +### [Chuyển đổi HTML sang Markdown trong Java – Giữ nguyên định dạng gốc](./convert-html-to-markdown-in-java-preserve-original-formattin/) +Chuyển đổi HTML sang Markdown trong Java, bảo toàn định dạng gốc và cấu trúc tài liệu một cách chính xác. + ### [Chuyển đổi SVG sang Hình ảnh](./convert-svg-to-image/) Tìm hiểu cách chuyển đổi SVG sang hình ảnh trong Java với Aspose.HTML. Hướng dẫn toàn diện để có đầu ra chất lượng cao. @@ -109,6 +112,11 @@ Chuyển đổi SVG sang PDF trong Java với Aspose.HTML. Giải pháp liền m ### [Chuyển đổi SVG sang XPS](./convert-svg-to-xps/) Tìm hiểu cách chuyển đổi SVG sang XPS với Aspose.HTML for Java. Hướng dẫn đơn giản, từng bước để chuyển đổi liền mạch. +### [Tạo PDF Kích Thước Tùy Chỉnh – Chuyển đổi HTML sang PDF với Aspose](./create-pdf-custom-size-convert-html-to-pdf-with-aspose/) + +### [Tạo PDF từ HTML trong Java – Hướng dẫn chuyển đổi hàng loạt song song](./create-pdf-from-html-in-java-parallel-batch-conversion-guide/) +Hướng dẫn cách chuyển đổi đồng thời nhiều tệp HTML thành PDF trong Java bằng Aspose.HTML, tối ưu hiệu suất. + ## Câu hỏi thường gặp **Q: Tôi có thể sử dụng Aspose.HTML cho Java trong một ứng dụng thương mại không?** diff --git a/html/vietnamese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md b/html/vietnamese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md new file mode 100644 index 000000000..e9bb1f993 --- /dev/null +++ b/html/vietnamese/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/_index.md @@ -0,0 +1,205 @@ +--- +category: general +date: 2026-03-26 +description: Chuyển đổi HTML sang markdown và tạo tệp markdown đồng thời bảo tồn định + dạng gốc bằng Aspose HTML conversion trong Java. Học từng bước. +draft: false +keywords: +- convert html to markdown +- generate markdown file +- preserve original formatting +- html to markdown java +- aspose html conversion +language: vi +og_description: Chuyển đổi HTML sang markdown nhanh chóng, tạo tệp markdown và giữ + nguyên định dạng gốc bằng Aspose HTML conversion cho Java. +og_title: Chuyển đổi HTML sang Markdown trong Java – Giữ nguyên định dạng +tags: +- Aspose +- Java +- Markdown +title: Chuyển đổi HTML sang Markdown trong Java – Giữ nguyên định dạng gốc +url: /vi/java/conversion-html-to-other-formats/convert-html-to-markdown-in-java-preserve-original-formattin/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Chuyển đổi HTML sang Markdown trong Java – Giữ nguyên định dạng gốc + +Bạn đã bao giờ cần **convert HTML to markdown** nhưng lo lắng sẽ mất khoảng cách, bảng hoặc các thẻ nội tuyến? Bạn không phải là người duy nhất. Nhiều nhà phát triển gặp phải vấn đề này khi họ cố gắng chuyển nội dung từ một trang web sang định dạng sạch, thân thiện với hệ thống kiểm soát phiên bản. Tin tốt? Chỉ với vài dòng Java và Aspose HTML, bạn có thể **generate markdown file** trông giống hệt nguồn, bao gồm cả khoảng trắng. + +Trong hướng dẫn này, chúng tôi sẽ đi qua toàn bộ quy trình: tải một tệp HTML phức tạp, cấu hình chuyển đổi sao cho nó **preserve original formatting**, và cuối cùng ghi kết quả ra `preserved.md`. Khi kết thúc, bạn sẽ có một đoạn mã sẵn sàng chạy, hiểu *tại sao* mỗi thiết lập quan trọng, và biết cách điều chỉnh mã cho các trường hợp đặc biệt như CSS tùy chỉnh hoặc script nhúng. + +## Những gì bạn cần + +- Java 17 (hoặc bất kỳ JDK gần đây nào) – API hoạt động với Java 8+ nhưng các phiên bản mới hơn cho hiệu năng tốt hơn. +- Thư viện Aspose HTML for Java (phiên bản 23.11 hoặc mới hơn). Bạn có thể tải nó từ Maven Central: + +```xml + + com.aspose + aspose-html + 23.11 + +``` + +- Một tệp HTML mẫu (`complex.html`) chứa các tiêu đề, bảng, khối mã, và có thể một số kiểu nội tuyến ``. +- Một chút kiên nhẫn và sẵn sàng thử nghiệm. + +Chỉ vậy thôi. Không cần công cụ bên ngoài, không cần hack dòng lệnh—chỉ là mã Java thuần. + +## Bước 1: Tải tài liệu HTML nguồn + +Điều đầu tiên chúng ta làm là tạo một thể hiện `HTMLDocument` trỏ tới tệp nguồn của bạn. Aspose HTML xử lý tệp như một DOM, có nghĩa là bạn có thể kiểm tra hoặc sửa đổi nó trước khi chuyển đổi nếu cần. + +```java +import com.aspose.html.HTMLDocument; + +// Step 1: Load the source HTML document +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); +``` + +> **Why this matters:** Tải tài liệu theo cách này đảm bảo rằng tất cả các tài nguyên liên kết (stylesheet, hình ảnh) được giải quyết tương đối với vị trí tệp. Nếu bạn bỏ qua bước này và cung cấp một chuỗi thô, bạn có thể mất CSS bên ngoài ảnh hưởng đến khoảng cách—đúng là những gì bạn muốn **preserve original formatting**. + +## Bước 2: Cấu hình tùy chọn chuyển đổi Markdown + +Aspose HTML cung cấp lớp `MarkdownConversionOptions`. Thuộc tính chính cho chúng ta là `setPreserveOriginalFormatting(true)`. Khi bật, bộ chuyển đổi sẽ giữ lại các ngắt dòng, thụt lề, và thậm chí các đoạn HTML thô mà markdown không thể biểu diễn một cách tự nhiên. + +```java +import com.aspose.html.saving.MarkdownConversionOptions; + +// Step 2: Set up conversion options +MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); +markdownOptions.setPreserveOriginalFormatting(true); // keep whitespace and inline HTML +``` + +> **Pro tip:** Nếu sau này bạn phát hiện một số kiểu nội tuyến bị loại bỏ, bạn cũng có thể gọi `markdownOptions.setIncludeHtml(true)` để buộc các khối HTML thô vào đầu ra markdown. + +## Bước 3: Thực hiện chuyển đổi + +Bây giờ chúng ta truyền `HTMLDocument`, đường dẫn tệp đích, và các tùy chọn của chúng ta vào phương thức tĩnh `Converter.convertHTML`. Phương thức này thực hiện toàn bộ công việc nặng phía sau. + +```java +import com.aspose.html.converters.Converter; + +// Step 3: Convert HTML to Markdown +Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); +``` + +Khi lệnh gọi hoàn tất, bạn sẽ thấy `preserved.md` nằm bên cạnh tệp nguồn của bạn. Mở nó trong bất kỳ trình chỉnh sửa nào—hãy chú ý cách các ngắt dòng và căn chỉnh bảng gốc vẫn được giữ nguyên. + +## Bước 4: Xác minh kết quả (Tùy chọn nhưng Được khuyến nghị) + +Một kiểm tra nhanh sẽ giúp bạn tránh các lỗi tinh vi sau này. Bạn có thể đọc lại tệp vào Java và in ra vài dòng đầu, hoặc chỉ mở nó trong VS Code. + +```java +import java.nio.file.Files; +import java.nio.file.Paths; + +String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); +System.out.println("First 200 characters of generated markdown:"); +System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); +``` + +Bạn sẽ thấy một cái gì đó như sau: + +``` +# My Complex Document + +
+ + +
NameValue
Alpha42
+ +``` + +Thẻ `` vẫn còn vì cú pháp bảng gốc của markdown không thể nắm bắt được kiểu dáng chính xác—nhờ `preserve original formatting`. + +## Bước 5: Tổng hợp lại – Ví dụ đầy đủ có thể chạy + +Dưới đây là lớp hoàn chỉnh, sẵn sàng chạy. Thay `YOUR_DIRECTORY` bằng đường dẫn thực tế trên máy của bạn. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.MarkdownConversionOptions; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToMarkdownPreserve { + public static void main(String[] args) throws Exception { + // 1️⃣ Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/complex.html"); + + // 2️⃣ Configure conversion to keep whitespace and inline HTML + MarkdownConversionOptions markdownOptions = new MarkdownConversionOptions(); + markdownOptions.setPreserveOriginalFormatting(true); + + // 3️⃣ Convert and write to a markdown file + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/preserved.md", markdownOptions); + + // 4️⃣ (Optional) Show a preview of the output + String markdown = Files.readString(Paths.get("YOUR_DIRECTORY/preserved.md")); + System.out.println("✅ Markdown generated with original formatting retained."); + System.out.println("First 200 characters:"); + System.out.println(markdown.substring(0, Math.min(200, markdown.length()))); + } +} +``` + +Chạy chương trình với `mvn exec:java` hoặc IDE yêu thích của bạn, và bạn sẽ có một **generate markdown file** phản ánh bố cục HTML gốc. + +## Câu hỏi thường gặp & Trường hợp đặc biệt + +### Điều này có hoạt động với các tệp CSS bên ngoài không? + +Có. Miễn là các tệp CSS có thể truy cập được qua đường dẫn tương đối, Aspose HTML sẽ tải chúng tự động. Nếu bạn lấy HTML từ một URL từ xa, bạn có thể cần thiết lập một đối tượng `ResourceLoadingOptions` tùy chỉnh để cho phép truy cập mạng. + +### Nếu tôi không muốn bất kỳ HTML thô nào trong markdown thì sao? + +Chỉ cần chuyển đổi tùy chọn: + +```java +markdownOptions.setPreserveOriginalFormatting(false); +``` + +Bộ chuyển đổi sẽ cố gắng dịch mọi thứ sang cú pháp markdown thuần, có thể làm mất một số độ chính xác của bố cục. + +### Tôi có thể chuyển đổi một chuỗi thay vì tệp không? + +Chắc chắn. Sử dụng constructor chấp nhận một `String`: + +```java +HTMLDocument doc = new HTMLDocument("...", "about:blank"); +``` + +Sau đó truyền `doc` vào `Converter.convertHTML` như trước. + +### Điều này khác gì so với các thư viện khác như Flexmark hoặc pandoc? + +Hầu hết các công cụ mã nguồn mở xử lý HTML như văn bản thuần và loại bỏ khoảng trắng một cách mạnh mẽ. Cờ `preserveOriginalFormatting` của Aspose HTML là một **proprietary feature** giúp tôn trọng khoảng trắng, ngắt dòng của nguồn gốc, và thậm chí giữ các thẻ không được hỗ trợ dưới dạng khối HTML thô. Đó là lý do tại sao tutorial này nhấn mạnh **aspose html conversion** cho các nhà phát triển Java cần độ chính xác tuyệt đối. + +## Mẹo cho việc sử dụng trong môi trường sản xuất + +- **Batch processing:** Đóng gói logic chuyển đổi trong một vòng lặp để xử lý nhiều tệp HTML cùng lúc. +- **Error handling:** Bắt `IOException` và `com.aspose.html.exceptions.AssertionFailedException` để hiển thị các tài nguyên bị thiếu. +- **Performance:** Tái sử dụng một thể hiện `HTMLDocument` duy nhất khi chuyển đổi các đoạn của một trang lớn; thư viện sẽ cache CSS đã phân tích. + +## Kết luận + +Chúng tôi vừa cho bạn thấy cách **convert HTML to markdown** trong Java đồng thời đảm bảo đầu ra **preserve original formatting**. Đoạn mã ngắn, tự chứa này minh họa toàn bộ quy trình—từ tải tài liệu HTML, cấu hình `MarkdownConversionOptions`, thực hiện chuyển đổi, đến xác minh kết quả. Với API mạnh mẽ của Aspose HTML, bạn giờ có thể **generate markdown file** một cách lập trình, dù bạn đang xây dựng một trình tạo site tĩnh, một pipeline tài liệu, hoặc một công cụ di chuyển nội dung. + +Tiếp theo, bạn có thể khám phá: + +- Sử dụng **html to markdown java** để di chuyển hàng loạt trên toàn bộ website. +- Tinh chỉnh các tùy chọn chuyển đổi để xuất bảng markdown kiểu GitHub. +- Kết hợp cách tiếp cận này với bước CI/CD tự động cập nhật tài liệu mỗi khi HTML nguồn thay đổi. + +Hãy thoải mái thử nghiệm, và để lại bình luận nếu bạn gặp bất kỳ khó khăn nào. Chúc lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md b/html/vietnamese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md new file mode 100644 index 000000000..15952b814 --- /dev/null +++ b/html/vietnamese/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/_index.md @@ -0,0 +1,195 @@ +--- +category: general +date: 2026-03-26 +description: Tạo PDF kích thước tùy chỉnh từ HTML bằng Aspose.HTML cho Java. Tìm hiểu + cách chuyển đổi HTML sang PDF và thiết lập kích thước trang PDF chỉ trong vài bước. +draft: false +keywords: +- create pdf custom size +- convert html to pdf +- change pdf page size +- generate pdf from html +- set pdf page size +language: vi +og_description: Tạo PDF kích thước tùy chỉnh từ HTML với Aspose. Hướng dẫn này cho + bạn biết cách chuyển đổi HTML sang PDF, thay đổi kích thước trang PDF và thiết lập + kích thước trang PDF một cách dễ dàng. +og_title: Tạo PDF kích thước tùy chỉnh – Hướng dẫn nhanh chuyển HTML sang PDF +tags: +- aspose +- java +- pdf +- html +title: Tạo PDF kích thước tùy chỉnh – Chuyển đổi HTML sang PDF với Aspose +url: /vi/java/conversion-html-to-other-formats/create-pdf-custom-size-convert-html-to-pdf-with-aspose/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo PDF Kích Thước Tùy Chỉnh – Chuyển Đổi HTML sang PDF với Aspose + +Bạn đã bao giờ cần **tạo PDF kích thước tùy chỉnh** từ một tệp HTML chưa? Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách **chuyển đổi HTML sang PDF** và thiết lập kích thước trang PDF bằng Aspose.HTML cho Java. + +Nếu bạn đang tạo hoá đơn, báo cáo, hoặc e‑book, việc có được kích thước trang chính xác rất quan trọng—nếu không bố cục của bạn sẽ lệch trung tâm hoặc bị cắt. + +Chúng tôi sẽ hướng dẫn từng bước, từ việc tải HTML nguồn đến điều chỉnh lề, và kết thúc bằng một tệp PDF sẵn sàng sử dụng. Không có tham chiếu mơ hồ, chỉ có một ví dụ hoàn chỉnh, có thể chạy được mà bạn có thể sao chép‑dán ngay hôm nay. + +## Những Điều Cần Chuẩn Bị + +- **Java 17** (hoặc bất kỳ JDK mới nào). +- **Aspose.HTML for Java** JARs – bạn có thể tải phiên bản mới nhất từ kho Maven hoặc trang web Aspose. +- Một tệp `input.html` đơn giản đặt trong thư mục bạn kiểm soát. +- Một IDE hoặc trình soạn thảo văn bản mà bạn thích; tôi thường viết mã trong IntelliJ IDEA, nhưng Eclipse cũng hoạt động tốt. + +Có những điều kiện tiên quyết này đồng nghĩa bạn sẽ không gặp lỗi “class not found” giữa chừng. + +Bây giờ, chúng ta cùng bắt đầu. + +![Ví dụ tạo PDF kích thước tùy chỉnh](/images/create-pdf-custom-size.png "Ảnh chụp màn hình hiển thị PDF được tạo với kích thước trang và lề tùy chỉnh – create pdf custom size") + +## Tạo PDF Kích Thước Tùy Chỉnh – Các Bước Cốt Lõi + +Dưới đây là toàn bộ chương trình Java mà bạn sẽ có. Bạn có thể sao chép nó vào một tệp có tên `ConvertHtmlToPdfCustomPage.java` và chạy sau khi đã thêm các phụ thuộc Aspose vào dự án của mình. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.PdfConversionOptions; +import com.aspose.html.saving.PageSize; +import com.aspose.html.saving.Margin; + +public class ConvertHtmlToPdfCustomPage { + public static void main(String[] args) throws Exception { + + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up PDF conversion options + PdfConversionOptions pdfOptions = new PdfConversionOptions(); + pdfOptions.setPageSize(PageSize.A4); // Choose page size (A4, Letter, etc.) + pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Portrait); // Portrait or Landscape + pdfOptions.setMargins(new Margin(20, 20, 20, 20)); // Margins: left, top, right, bottom (points) + + // Step 3: Convert the HTML document to a PDF file with the custom settings + Converter.convertHTML(htmlDoc, "YOUR_DIRECTORY/custom_page.pdf", pdfOptions); + + // Step 4: Inform the user that the PDF has been created + System.out.println("PDF generated with custom page size and margins."); + } +} +``` + +### Bước 1 – Chuyển Đổi HTML sang PDF: Tải Tài Liệu + +Điều đầu tiên chúng ta làm là **tải HTML** mà chúng ta muốn chuyển thành PDF. +`HTMLDocument` đọc tệp, giải quyết các liên kết tương đối và xây dựng một DOM mà Aspose có thể render. + +> **Tại sao điều này quan trọng:** Nếu HTML tham chiếu tới CSS hoặc hình ảnh, Aspose sẽ lấy chúng dựa trên đường dẫn tệp. Sử dụng đường dẫn tuyệt đối (`YOUR_DIRECTORY/input.html`) sẽ tránh các bất ngờ “file not found”. + +### Bước 2 – Thay Đổi Kích Thước Trang PDF: Cấu Hình Tùy Chọn + +Ở đây chúng ta tạo một đối tượng `PdfConversionOptions`. +- `setPageSize(PageSize.A4)` yêu cầu Aspose sử dụng kích thước chuẩn A4 (210 × 297 mm). +- `setPageOrientation(...)` xoay trang nếu bạn cần chế độ ngang. +- `setMargins(new Margin(20, 20, 20, 20))` đặt lề 20‑point ở mọi phía. + +Bạn có thể thay thế `PageSize.A4` bằng `PageSize.LETTER` hoặc thậm chí một **kích thước tùy chỉnh** bằng cách truyền một đối tượng `SizeF`, ví dụ: + +```java +pdfOptions.setPageSize(new SizeF(500, 800)); // width, height in points +``` + +> **Mẹo chuyên nghiệp:** Một point bằng 1/72 inch. Nếu bạn tính bằng milimét, nhân với 2.83465 để có giá trị point. + +### Bước 3 – Tạo PDF từ HTML: Thực Hiện Chuyển Đổi + +`Converter.convertHTML` thực hiện công việc nặng. Nó nhận `HTMLDocument` đã tải, đường dẫn xuất và các tùy chọn chúng ta vừa cấu hình. + +Nếu bạn muốn **đặt kích thước trang PDF** một cách động dựa trên nội dung, bạn có thể tính toán kích thước cần thiết trước bước này và điều chỉnh `pdfOptions` cho phù hợp. + +### Bước 4 – Xác Nhận Kết Quả + +Dòng `System.out.println` là tùy chọn, nhưng nó cung cấp phản hồi nhanh khi bạn chạy chương trình từ console. Sau khi thực thi, mở `custom_page.pdf` – bạn sẽ thấy một PDF A4 dọc với lề đồng đều 20‑point, chính xác như chúng ta đã chỉ định. + +## Chuyển Đổi HTML sang PDF – Các Biến Thể Thông Thường + +### Sử Dụng Stream Thay Vì Đường Dẫn Tệp + +Đôi khi bạn không có tệp vật lý; có thể HTML đến từ cơ sở dữ liệu hoặc API. Trong trường hợp đó, bọc chuỗi trong một `ByteArrayInputStream`: + +```java +String htmlContent = "

Hello, PDF!

"; +HTMLDocument htmlDoc = new HTMLDocument( + new ByteArrayInputStream(htmlContent.getBytes(StandardCharsets.UTF_8)), + "http://example.com/"); +``` + +Tham số thứ hai là URL cơ sở để giải quyết các tài nguyên tương đối. + +### Thay Đổi Hướng Trang + +Nếu báo cáo của bạn rộng, chuyển sang chế độ ngang: + +```java +pdfOptions.setPageOrientation(PdfConversionOptions.Orientation.Landscape); +``` + +### Tinh Chỉnh Lề + +Lề chấp nhận giá trị số thực, vì vậy bạn có thể đặt 0.5 pt cho một đường viền siêu mỏng: + +```java +pdfOptions.setMargins(new Margin(5.5, 10.2, 5.5, 10.2)); +``` + +### Xử Lý Các Tệp HTML Lớn + +Đối với các tài liệu khổng lồ, hãy cân nhắc bật **streaming tiết kiệm bộ nhớ**: + +```java +pdfOptions.setUseMemoryCache(true); +``` + +Điều này yêu cầu Aspose ghi dữ liệu trung gian vào các tệp tạm thời thay vì giữ mọi thứ trong RAM. + +## Đặt Kích Thước Trang PDF – Các Trường Hợp Cạnh & Cạm Bẫy + +- **Missing Fonts:** Nếu HTML của bạn sử dụng phông chữ tùy chỉnh chưa được cài đặt trên máy chủ, PDF sẽ chuyển sang phông mặc định. Nhúng phông chữ bằng `pdfOptions.getFontEmbeddingMode().setEmbeddingMode(EmbeddingMode.Always);`. +- **Image Scaling:** Hình ảnh độ phân giải cao có thể làm PDF trở nên nặng. Sử dụng `pdfOptions.setImageResolution(150);` để giảm độ phân giải trong khi vẫn giữ chất lượng. +- **CSS Compatibility:** Không phải mọi thuộc tính CSS đều được hỗ trợ đầy đủ. Hãy dùng các kỹ thuật bố cục tiêu chuẩn (flexbox hoạt động, nhưng grid có thể có một số vấn đề). +- **Path Permissions:** Đảm bảo tiến trình có quyền ghi vào `YOUR_DIRECTORY`. Nếu không, sẽ ném ra `IOException`. + +## Kết Quả Mong Đợi + +Chạy chương trình sẽ tạo ra một PDF trông như sau (hình minh họa khái niệm): + +``` ++---------------------------------------------------+ +| Header | +| | +| (HTML rendered content goes here) | +| | +| Footer | ++---------------------------------------------------+ +``` + +- Kích thước trang: **A4** (210 × 297 mm). +- Hướng: **Portrait**. +- Lề: **20 pt** ở mỗi phía. + +Mở tệp bằng bất kỳ trình xem PDF nào (Adobe Reader, Chrome, v.v.) để xác nhận. + +## Tổng Kết + +Bây giờ bạn đã biết cách **tạo PDF kích thước tùy chỉnh** từ nguồn HTML bằng Aspose.HTML cho Java. Hướng dẫn đã bao phủ toàn bộ quy trình: **chuyển đổi HTML sang PDF**, **thay đổi kích thước trang PDF**, **đặt kích thước trang PDF**, và **tạo PDF từ HTML** với lề tùy chỉnh. + +Hãy tự do thử nghiệm—thay `PageSize.LETTER` bằng kích thước legal, điều chỉnh lề, hoặc nhúng phông chữ của bạn. Tiếp theo, bạn có thể khám phá **thêm watermark**, **mã hoá PDF**, hoặc **xử lý hàng loạt nhiều tệp HTML**. Tất cả các chủ đề này dựa trên cùng các khái niệm cốt lõi mà chúng ta vừa đề cập. + +Có câu hỏi nào về trường hợp đặc biệt? Để lại bình luận bên dưới, tôi sẽ giúp bạn khắc phục. Chúc bạn lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md b/html/vietnamese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md new file mode 100644 index 000000000..7fdc9494c --- /dev/null +++ b/html/vietnamese/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/_index.md @@ -0,0 +1,241 @@ +--- +category: general +date: 2026-03-26 +description: Tạo PDF từ HTML nhanh chóng với một pool luồng cố định. Học cách chuyển + HTML sang PDF hàng loạt và chạy các tác vụ song song trong Java. +draft: false +keywords: +- create pdf from html +- convert html to pdf +- batch html to pdf +- fixed thread pool +- run parallel tasks +language: vi +og_description: Tạo PDF từ HTML nhanh chóng với một pool luồng cố định. Tìm hiểu cách + chuyển đổi hàng loạt HTML sang PDF và chạy các tác vụ song song trong Java. +og_title: Tạo PDF từ HTML trong Java – Hướng dẫn chuyển đổi hàng loạt song song +tags: +- Java +- PDF +- Aspose.HTML +- Concurrency +title: Tạo PDF từ HTML trong Java – Hướng dẫn chuyển đổi hàng loạt song song +url: /vi/java/conversion-html-to-other-formats/create-pdf-from-html-in-java-parallel-batch-conversion-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo PDF từ HTML trong Java – Hướng Dẫn Chuyển Đổi Hàng Loạt Song Song + +Bạn đã bao giờ cần **create PDF from HTML** nhưng cảm thấy bế tắc khi nhìn quá trình chuyển đổi đơn luồng chậm chạp không ngừng? Bạn không phải là người duy nhất. Trong nhiều dự án thực tế, chúng tôi nhận được hàng chục báo cáo HTML cần chuyển thành PDF trước cuối ngày, và việc thực hiện từng cái một không thực tế. + +Đó là lý do tại sao hướng dẫn này cho bạn **how to convert HTML to PDF** bằng cách sử dụng **fixed thread pool**, cho phép bạn **batch HTML to PDF** và **run parallel tasks** mà không gặp khó khăn. Khi kết thúc, bạn sẽ có một chương trình hoàn chỉnh, sẵn sàng chạy, chuyển đổi một thư mục các tệp HTML thành PDF trong một phần nhỏ thời gian. + +## Những Điều Bạn Sẽ Học + +Trong các phần tiếp theo chúng tôi sẽ đề cập đến mọi thứ bạn cần biết: + +* Phụ thuộc Maven/Gradle chính xác cho Aspose.HTML (thư viện thực hiện công việc nặng). +* Tại sao **fixed thread pool** là lựa chọn tối ưu cho công việc chuyển đổi phụ thuộc CPU. +* Cách liệt kê các tệp nguồn của bạn để quy trình có thể mở rộng lên hàng trăm tài liệu. +* Mã chính xác bạn dán vào IDE—không thiếu import, không có chú thích “TODO”. +* Mẹo xử lý lỗi, điều chỉnh kích thước pool, và xác minh đầu ra. + +Không cần kiến thức trước về Aspose.HTML, chỉ cần một môi trường Java cơ bản và sẵn sàng thử nghiệm. Hãy bắt đầu. + +--- + +![Sơ đồ cho thấy một fixed thread pool chuyển đổi nhiều tệp HTML sang PDF song song – create pdf from html](/images/create-pdf-from-html-parallel.png) + +*Văn bản thay thế hình ảnh: create pdf from html – sơ đồ chuyển đổi song song* + +## Bước 1: Chuẩn Bị Dự Án và Thêm Aspose.HTML + +Trước hết—dự án của bạn cần thư viện Aspose.HTML. Nếu bạn đang sử dụng Maven, thêm đoạn này vào `pom.xml` của bạn: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Đối với Gradle, chỉ cần: + +```groovy +implementation 'com.aspose:aspose-html:23.12' +``` + +Tại sao lại chọn Aspose.HTML? Đó là một thư viện thương mại, nhưng nó cung cấp API **convert html to pdf** có thể xử lý CSS, JavaScript và bố cục phức tạp ngay từ đầu. Nếu bạn muốn một giải pháp mã nguồn mở, bạn có thể thay thế lời gọi `Converter.convertHTML` sau này, nhưng logic đa luồng vẫn giữ nguyên. + +> **Pro tip:** Giữ số phiên bản đồng bộ với ghi chú phát hành chính thức; các phiên bản mới thường cải thiện tốc độ render, điều này quan trọng khi bạn chạy nhiều tác vụ song song. + +## Bước 2: Xây Dựng Fixed Thread Pool cho Chuyển Đổi Song Song + +Khi bạn có một lô tệp, bạn không muốn tạo ra vô số luồng—hệ điều hành sẽ bị quá tải. Một **fixed thread pool** cung cấp mức độ đồng thời dự đoán được đồng thời giữ mức sử dụng bộ nhớ trong tầm kiểm soát. + +```java +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +// Create a pool with 4 worker threads – adjust based on CPU cores +ExecutorService pool = Executors.newFixedThreadPool(4); +``` + +Tại sao lại là bốn? Trên một máy 8‑core điển hình, một nửa các lõi có thể để dành cho I/O và hệ điều hành. Bạn có thể thử: `Runtime.getRuntime().availableProcessors()` trả về số lõi, và quy tắc chung là `cores / 2`. Hãy nhớ, mỗi lần chuyển đổi tiêu tốn CPU, vì vậy có nhiều luồng hơn số lõi thường làm giảm hiệu năng. + +## Bước 3: Thu Thập Các Tệp HTML Muốn Chuyển Đổi + +Phần tiếp theo của quá trình là danh sách **batch html to pdf**. Bạn có thể mã cứng một mảng (như trong ví dụ) hoặc quét một thư mục. Dưới đây là phiên bản linh hoạt đọc mọi tệp `.html` trong một thư mục: + +```java +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +// Directory that holds your source HTML files +File inputDir = new File("YOUR_DIRECTORY"); + +// Collect absolute paths of all .html files +List htmlFiles = new ArrayList<>(); +for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } +} +``` + +Cách tiếp cận này cho phép bạn thả các tệp mới vào thư mục và chương trình sẽ tự động lấy chúng—hoàn hảo cho công việc batch hàng đêm. + +## Bước 4: Gửi Nhiệm Vụ Chuyển Đổi cho Mỗi Tệp (Run Parallel Tasks) + +Bây giờ là phần thú vị: mỗi tệp trở thành một **Runnable** (hoặc `Callable`) mà pool thực thi. Đoạn mã dưới đây giống ví dụ gốc nhưng thêm xử lý lỗi và một thông báo log nhỏ. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; + +for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + // Load the HTML document from disk + HTMLDocument doc = new HTMLDocument(filePath); + + // Build the output PDF path (same folder, .pdf extension) + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + + // Perform the conversion – this is where Aspose does the heavy lifting + Converter.convertHTML(doc, pdfPath); + + // Let the user know the job finished + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + // Log failures but keep the pool alive + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; // Callable requires a return value + }); +} +``` + +**Tại sao lại bao bọc chuyển đổi trong try‑catch?** Khi bạn **run parallel tasks**, một tệp HTML sai định dạng có thể làm toàn bộ executor sập. Bằng cách bắt ngoại lệ cục bộ, chúng ta đảm bảo phần còn lại của batch vẫn tiếp tục chạy. + +## Bước 5: Tắt Executor và Đợi Hoàn Thành + +Sau khi tất cả công việc được gửi, bạn phải yêu cầu pool ngừng nhận công việc mới và đợi cho đến khi mọi thứ hoàn thành. Điều này đảm bảo JVM không thoát ra quá sớm. + +```java +// Prevent new tasks from being submitted +pool.shutdown(); + +try { + // Wait up to 5 minutes for all conversions to finish + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); // Force shutdown if needed + } +} catch (InterruptedException ie) { + Thread.currentThread().interrupt(); // Restore interrupt status + System.err.println("Thread was interrupted while waiting for termination."); +} +``` + +Nếu bạn có một thư mục lớn (hàng nghìn tệp) bạn có thể tăng thời gian chờ hoặc triển khai bộ giám sát tiến độ. Điều quan trọng là **gracefully shut down**—đây là dấu hiệu của mã sẵn sàng cho môi trường production. + +## Ví Dụ Hoàn Chỉnh Hoạt Động + +Kết hợp mọi thứ lại, đây là một lớp tự chứa mà bạn có thể copy‑paste vào `src/main/java` và chạy: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import java.io.File; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.*; + +public class ParallelHtmlToPdf { + public static void main(String[] args) throws Exception { + // 1️⃣ Create a fixed‑size thread pool (adjust size as needed) + ExecutorService pool = Executors.newFixedThreadPool(4); + + // 2️⃣ Locate all HTML files in the target directory + File inputDir = new File("YOUR_DIRECTORY"); + List htmlFiles = new ArrayList<>(); + for (File f : inputDir.listFiles()) { + if (f.isFile() && f.getName().toLowerCase().endsWith(".html")) { + htmlFiles.add(f.getAbsolutePath()); + } + } + + // 3️⃣ Submit a conversion task for each file + for (String filePath : htmlFiles) { + pool.submit(() -> { + try { + HTMLDocument doc = new HTMLDocument(filePath); + String pdfPath = filePath.replaceAll("(?i)\\.html$", ".pdf"); + Converter.convertHTML(doc, pdfPath); + System.out.println(new File(filePath).getName() + " → PDF done."); + } catch (Exception e) { + System.err.println("Failed to convert " + filePath + ": " + e.getMessage()); + } + return null; + }); + } + + // 4️⃣ Shut down the pool and wait for all tasks to finish + pool.shutdown(); + if (!pool.awaitTermination(5, TimeUnit.MINUTES)) { + System.err.println("Timeout reached – some files may not have been converted."); + pool.shutdownNow(); + } + + System.out.println("All conversions completed."); + } +} +``` + +**Kết quả mong đợi** (mẫu): + +``` +invoice1.html → PDF done. +report_Q1.html → PDF done. +summary.html → PDF done. +All conversions completed. +``` + +Nếu bạn mở các tệp `.pdf` đã tạo, bạn sẽ thấy bố cục HTML gốc được giữ nguyên—phông chữ, bảng và thậm chí nội dung cơ bản do JavaScript tạo ra cũng được render đúng. + +## Các Câu Hỏi Thường Gặp & Trường Hợp Đặc Biệt + +| Question | Answer | +|---------- + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/conversion-html-to-various-image-formats/_index.md b/html/vietnamese/java/conversion-html-to-various-image-formats/_index.md index 88c812212..fe380d472 100644 --- a/html/vietnamese/java/conversion-html-to-various-image-formats/_index.md +++ b/html/vietnamese/java/conversion-html-to-various-image-formats/_index.md @@ -92,7 +92,9 @@ Học cách convert HTML to JPEG với Aspose.HTML for Java. Hướng dẫn từ Tìm hiểu cách convert HTML to PNG trong Java với Aspose.HTML. Một hướng dẫn toàn diện với các bước chi tiết. ### [Converting HTML to TIFF](./convert-html-to-tiff/) Tìm hiểu cách dễ dàng convert HTML to TIFF bằng Aspose.HTML for Java. Hướng dẫn từng bước cho việc xử lý tài liệu hiệu quả. -### [Chuyển đổi HTML sang WebP – Hướng dẫn Java đầy đủ với Aspose.HTML](./convert-html-to-webp-complete-java-guide-with-aspose-html/) +### [Tạo tiff đa trang từ SVG trong Java – Hướng dẫn từng bước](./create-multipage-tiff-from-svg-in-java-step-by-step-guide/) +### [Chuyển đổi HTML sang WebP – Hướng dẫn Java đầy đủ với Aspose.HTML](./convert-html-to-webp-complete-java-guide/) +Tìm hiểu cách convert HTML to WebP trong Java bằng Aspose.HTML. Hướng dẫn chi tiết từng bước để tạo ảnh WebP chất lượng cao. ## Câu hỏi thường gặp diff --git a/html/vietnamese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md b/html/vietnamese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md new file mode 100644 index 000000000..fb62915c3 --- /dev/null +++ b/html/vietnamese/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/_index.md @@ -0,0 +1,225 @@ +--- +category: general +date: 2026-03-26 +description: Chuyển đổi HTML sang WebP nhanh chóng với Aspose.HTML. Tìm hiểu cách + lưu HTML dưới dạng WebP, hiển thị HTML dưới dạng WebP và tạo WebP từ HTML chỉ trong + vài bước. +draft: false +keywords: +- convert html to webp +- save html as webp +- how to convert html +- render html as webp +- generate webp from html +language: vi +og_description: Chuyển đổi HTML sang WebP nhanh chóng với Aspose.HTML. Hướng dẫn này + cho thấy cách hiển thị HTML dưới dạng WebP và tạo WebP từ HTML trong Java. +og_title: Chuyển đổi HTML sang WebP – Hướng dẫn Java đầy đủ +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Chuyển đổi HTML sang WebP – Hướng dẫn Java toàn diện +url: /vi/java/conversion-html-to-various-image-formats/convert-html-to-webp-complete-java-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Chuyển Đổi HTML sang WebP – Hướng Dẫn Java Đầy Đủ + +Bạn đã bao giờ cần **chuyển đổi HTML sang WebP** nhưng không chắc thư viện nào có thể thực hiện công việc mà không gặp rắc rối? Bạn không phải là người duy nhất. Nhiều nhà phát triển gặp phải vấn đề này khi cố gắng phục vụ các hình ảnh nhẹ được tạo ra từ các trang động. Tin tốt là gì? Với Aspose.HTML cho Java, bạn có thể *lưu HTML dưới dạng WebP* chỉ bằng một lời gọi phương thức, và toàn bộ quá trình diễn ra mượt mà như bơ. + +Trong tutorial này chúng ta sẽ đi qua mọi thứ bạn cần biết: từ việc thiết lập phụ thuộc Aspose.HTML, tinh chỉnh các cài đặt nén, và cuối cùng là render tài liệu HTML thành tệp WebP mà bạn có thể phục vụ trên web. Khi kết thúc, bạn sẽ có thể **render HTML dưới dạng WebP**, **tạo WebP từ HTML**, và hiểu “tại sao” đằng sau mỗi tùy chọn cấu hình. Không cần script bên ngoài, không cần thao tác dòng lệnh—chỉ cần mã Java sạch sẽ. + +## Yêu Cầu Trước + +Trước khi bắt đầu, hãy chắc chắn rằng bạn có: + +- Java 8 hoặc mới hơn đã được cài đặt (thư viện hỗ trợ JDK 8+). +- Maven hoặc Gradle để quản lý phụ thuộc (chúng tôi sẽ đưa ví dụ Maven). +- Một tệp HTML đơn giản (`input.html`) mà bạn muốn chuyển thành hình ảnh WebP. +- Một IDE hoặc trình soạn thảo văn bản mà bạn ưa thích—IntelliJ IDEA hoạt động tốt, nhưng bất kỳ công cụ nào cũng được. + +Đã có tất cả? Tuyệt vời, chúng ta bắt đầu nào. + +## Bước 1: Thêm Aspose.HTML vào Dự Án + +Đầu tiên, bạn cần thư viện Aspose.HTML trong classpath. Nếu bạn dùng Maven, chèn đoạn này vào `pom.xml` của bạn: + +```xml + + com.aspose + aspose-html + 23.12 + +``` + +Đối với Gradle, nó sẽ trông như sau: + +```gradle +implementation 'com.aspose:aspose-html:23.12' +``` + +Tại sao bước này lại quan trọng? Nếu không có JAR, các lớp `HTMLDocument`, `Converter`, hoặc `WebpConversionOptions` sẽ không tồn tại, và trình biên dịch sẽ ném ra `ClassNotFoundException`. Thêm phụ thuộc cũng sẽ kéo các binary gốc cần thiết cho việc mã hoá WebP, vì vậy bạn không phải tự tìm kiếm các DLL hay tệp `.so` bên ngoài. + +> **Mẹo chuyên nghiệp:** Giữ các phụ thuộc luôn được cập nhật. Các phiên bản Aspose mới thường cải thiện thuật toán nén WebP và bổ sung hỗ trợ cho các tính năng HTML5 mới. + +## Bước 2: Tải Tài Liệu HTML Nguồn + +Bây giờ thư viện đã sẵn sàng, chúng ta có thể tải HTML mà bạn muốn chuyển đổi. Lớp `HTMLDocument` sẽ phân tích tệp và xây dựng DOM, mà bộ chuyển đổi sẽ render sau này. + +```java +import com.aspose.html.HTMLDocument; + +public class HtmlToWebpConverter { + public static void main(String[] args) throws Exception { + // Load the HTML file from disk + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + // From here you can manipulate the DOM if needed + } +} +``` + +Lưu ý chú thích “Load the source HTML document” – đây là lời nhắc rằng bạn cũng có thể chèn CSS hoặc JavaScript trước khi chuyển đổi nếu trang của bạn phụ thuộc vào kiểu dáng động. Nếu bỏ qua bước này, bộ chuyển đổi sẽ không có gì để render, dẫn đến hình ảnh trống. + +## Bước 3: Cấu Hình Tùy Chọn Chuyển Đổi WebP + +Aspose.HTML cung cấp cho bạn khả năng kiểm soát chi tiết đầu ra. Đối với hầu hết các trường hợp, một WebP **lossy** với mức chất lượng khoảng 85 sẽ cân bằng tốt giữa độ trung thực hình ảnh và kích thước tệp. + +```java +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; + +// Set up conversion options +WebpConversionOptions webpOptions = new WebpConversionOptions(); +webpOptions.setCompressionMode(CompressionMode.Lossy); // lossless is also available +webpOptions.setQuality(85); // Quality range: 0‑100 +``` + +Tại sao lại chọn lossy? Chế độ lossy của WebP sử dụng mã hoá dự đoán, có thể giảm kích thước tệp từ 30‑50 % so với PNG trong khi vẫn giữ lại hầu hết chi tiết hình ảnh. Nếu bạn cần kết quả pixel‑perfect (ví dụ: cho logo), hãy chuyển `CompressionMode` sang `Lossless` và đặt `quality` lên 100. + +## Bước 4: Chuyển Đổi và Lưu Hình Ảnh WebP + +Với tài liệu và các tùy chọn đã sẵn sàng, việc chuyển đổi thực sự chỉ cần một dòng lệnh. Phương thức tĩnh `Converter.convertHTML` thực hiện toàn bộ công việc nặng: render DOM lên bitmap, mã hoá thành WebP, và ghi tệp ra đĩa. + +```java +import com.aspose.html.converters.Converter; + +// Define output path +String outputPath = "YOUR_DIRECTORY/output.webp"; + +// Perform conversion +Converter.convertHTML(htmlDoc, outputPath, webpOptions); + +// Let the user know we’re done +System.out.println("HTML has been rendered to WebP: " + outputPath); +``` + +Xong rồi! Khi chương trình kết thúc, bạn sẽ thấy `output.webp` nằm cạnh tệp HTML nguồn. Bây giờ bạn có thể phục vụ nó trực tiếp từ máy chủ web, nhúng vào thẻ ``, hoặc sử dụng trong bất kỳ ngữ cảnh nào hỗ trợ WebP. + +## Bước 5: Kiểm Tra Kết Quả (Tùy Chọn nhưng Được Khuyến Khích) + +Luôn luôn là ý tưởng tốt để kiểm tra lại rằng việc chuyển đổi đã thành công và hình ảnh hiển thị như mong đợi. Bạn có thể mở tệp WebP trong Chrome, Firefox, hoặc bất kỳ trình xem ảnh nào hỗ trợ định dạng này. Để kiểm tra nhanh bằng chương trình, bạn có thể đọc kích thước tệp và kích thước ảnh: + +```java +import java.nio.file.Files; +import java.nio.file.Paths; +import com.aspose.html.saving.ImageInfo; + +byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); +System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + +// Optionally, extract dimensions using Aspose +ImageInfo info = new ImageInfo(outputPath); +System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); +``` + +Nếu tệp bất ngờ lớn hoặc kích thước không đúng, hãy quay lại **Bước 3** và điều chỉnh `quality` hoặc các cài đặt viewport của HTML nguồn. Hãy nhớ, WebP tuân theo thuộc tính CSS `width`/`height` của phần tử gốc, vì vậy việc thiếu thẻ `` có thể gây ra kết quả bất ngờ. + +## Ví Dụ Hoàn Chỉnh + +Kết hợp mọi thứ lại, đây là lớp Java hoàn chỉnh, sẵn sàng chạy: + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.WebpConversionOptions; +import com.aspose.html.saving.WebpConversionOptions.CompressionMode; +import com.aspose.html.saving.ImageInfo; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class HtmlToWebp { + public static void main(String[] args) throws Exception { + // Step 1: Load the source HTML document + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.html"); + + // Step 2: Set up WebP conversion options (lossy compression with quality 85) + WebpConversionOptions webpOptions = new WebpConversionOptions(); + webpOptions.setCompressionMode(CompressionMode.Lossy); + webpOptions.setQuality(85); // quality range: 0‑100 + + // Step 3: Convert the HTML document to a WebP image + String outputPath = "YOUR_DIRECTORY/output.webp"; + Converter.convertHTML(htmlDoc, outputPath, webpOptions); + + // Step 4: Verify the output (optional) + byte[] webpBytes = Files.readAllBytes(Paths.get(outputPath)); + System.out.println("Generated WebP size: " + webpBytes.length + " bytes"); + ImageInfo info = new ImageInfo(outputPath); + System.out.println("Width: " + info.getWidth() + " px, Height: " + info.getHeight() + " px"); + + // Step 5: Inform the user that conversion is complete + System.out.println("HTML has been rendered to WebP: " + outputPath); + } +} +``` + +Lưu tệp này dưới tên `HtmlToWebp.java`, thay `YOUR_DIRECTORY` bằng đường dẫn thư mục thực tế, biên dịch bằng `javac`, và chạy bằng `java HtmlToWebp`. Bạn sẽ thấy đầu ra console xác nhận kích thước và kích thước ảnh, tiếp theo là thông báo thành công cuối cùng. + +![convert html to webp example](/images/convert-html-to-webp.png "Ảnh chụp màn hình của một hình ảnh WebP được tạo từ HTML – chuyển đổi html sang webp") + +## Câu Hỏi Thường Gặp & Các Trường Hợp Cạnh + +### HTML của tôi tham chiếu tới tài nguyên bên ngoài (CSS, hình ảnh) thì sao? + +Aspose.HTML tự động giải quyết các URL tương đối dựa trên vị trí của `input.html`. Chỉ cần chắc chắn rằng các tài nguyên có thể truy cập được từ hệ thống tệp hoặc máy chủ web. Nếu bạn cần chèn một base URL tùy chỉnh, hãy dùng constructor `HTMLDocument` được overload, chấp nhận một `URI` base. + +### Tôi có thể tạo nhiều hình ảnh WebP từ cùng một HTML (ví dụ: các kích thước viewport khác nhau) không? + +Chắc chắn rồi. Đặt logic chuyển đổi trong một vòng lặp, điều chỉnh `webpOptions.setWidth()` và `setHeight()` trước mỗi lần gọi, và đặt tên tệp đầu ra riêng biệt. Điều này rất hữu ích cho thiết kế đáp ứng, nơi bạn phục vụ các kích thước ảnh khác nhau cho mobile và desktop. + +### Làm sao chuyển sang nén lossless? + +Thay dòng: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossy); +``` + +bằng: + +```java +webpOptions.setCompressionMode(CompressionMode.Lossless); +``` + +Lossless đảm bảo độ trung thực pixel‑perfect nhưng tạo ra tệp lớn hơn—chỉ dùng khi thực sự cần. + +### Điều này có hoạt động trên Linux/macOS không? + +Có. JAR Aspose.HTML bao gồm các binary gốc cho Windows, Linux và macOS, vì vậy cùng một mã Java chạy ở mọi nơi. Chỉ cần đảm bảo bạn đã cài đặt JRE phù hợp. + +## Kết Luận + +Bạn vừa học **cách chuyển đổi HTML sang WebP** bằng Aspose.HTML cho Java, bao gồm mọi thứ từ thiết lập phụ thuộc đến tinh chỉnh nén và kiểm tra kết quả. Với kiến thức này, bạn có thể **lưu HTML dưới dạng WebP**, **render HTML dưới dạng WebP**, và **tạo WebP từ HTML** một cách linh hoạt—hoàn hảo cho các pipeline ảnh động, bản tin email, hoặc bất kỳ kịch bản nào cần hình ảnh nhẹ. + +Tiếp theo bạn sẽ làm gì? Hãy thử nghiệm với các giá trị `quality` khác nhau, khám phá chế độ `Lossless`, hoặc tích hợp bộ chuyển đổi này vào một endpoint REST Spring Boot để dịch vụ web của bạn có thể trả về hình ảnh WebP theo yêu cầu. Bạn cũng có thể xử lý hàng loạt một thư mục các tệp HTML, hoặc kết hợp với Chrome headless để chuyển SVG sang WebP. + +Có thêm câu hỏi về **cách chuyển đổi HTML** sang các ngôn ngữ khác, hoặc cần trợ giúp khắc phục một trường hợp đặc biệt? Để lại bình luận bên dưới, và chúc bạn lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md b/html/vietnamese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md new file mode 100644 index 000000000..ee929d564 --- /dev/null +++ b/html/vietnamese/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/_index.md @@ -0,0 +1,167 @@ +--- +category: general +date: 2026-03-26 +description: Tạo tệp TIFF đa trang từ SVG trong Java với Aspose.HTML. Tìm hiểu cách + chuyển đổi SVG sang TIFF, tải tài liệu SVG trong Java và tạo các tệp TIFF đa trang. +draft: false +keywords: +- create multipage tiff +- how to convert svg to tiff +- load svg document java +- how to create multipage tiff +language: vi +og_description: Tạo tệp TIFF đa trang từ SVG trong Java. Hướng dẫn này chỉ cách tải + tài liệu SVG, cấu hình các tùy chọn TIFF và tạo ra một tệp TIFF đa trang không mất + dữ liệu. +og_title: Tạo tệp TIFF đa trang từ SVG trong Java – Hướng dẫn đầy đủ +tags: +- Java +- Aspose.HTML +- Image Conversion +title: Tạo tệp TIFF đa trang từ SVG trong Java – Hướng dẫn từng bước +url: /vi/java/conversion-html-to-various-image-formats/create-multipage-tiff-from-svg-in-java-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tạo tệp multipage TIFF từ SVG trong Java – Hướng dẫn từng bước + +Bạn đã bao giờ cần **tạo multipage tiff** từ một SVG nhưng không biết bắt đầu từ đâu? Bạn không đơn độc—nhiều nhà phát triển gặp phải rào cản này khi họ cần một tài liệu có thể in, không mất dữ liệu và trải dài trên nhiều trang. Trong hướng dẫn này, chúng tôi sẽ đi qua một giải pháp hoàn chỉnh, sẵn sàng chạy, cho thấy **cách chuyển đổi SVG sang TIFF**, tải tài liệu SVG trong Java và cấu hình đầu ra để bạn có thể **tạo multipage tiff** với nén LZW. + +Chúng tôi sẽ bao phủ mọi thứ từ việc thiết lập thư viện Aspose.HTML đến xử lý các trường hợp đặc biệt như tài sản SVG lớn. Khi kết thúc tutorial, bạn sẽ có một lớp Java duy nhất mà bạn có thể đưa vào bất kỳ dự án nào và bắt đầu tạo các tệp TIFF đa trang ngay lập tức. + +## Những gì bạn cần + +- **Java Development Kit (JDK) 8+** – mã sử dụng các API chuẩn của Java. +- **Aspose.HTML for Java** (phiên bản 23.5 trở lên) – đây là phụ thuộc bên thứ ba duy nhất. +- Một **tệp SVG mẫu** (bất kỳ đồ họa vector nào cũng được; chúng tôi sẽ gọi nó là `input.svg`). +- IDE yêu thích của bạn hoặc một trình soạn thảo văn bản đơn giản và một terminal. + +Không cần công cụ xây dựng bổ sung; ví dụ biên dịch bằng `javac` và chạy bằng `java`. Nếu bạn thích Maven hoặc Gradle, chỉ cần thêm JAR Aspose.HTML vào classpath của dự án. + +![Create multipage tiff example](create-multipage-tiff.png){alt="create multipage tiff output"} + +## Bước 1 – Tải tài liệu SVG (load svg document java) + +Điều đầu tiên chúng ta phải làm là đọc SVG vào một đối tượng `HTMLDocument`. Aspose.HTML xử lý các tệp SVG như tài liệu HTML, giúp chúng ta có một API thống nhất cho việc chuyển đổi. + +```java +// Step 1: Load the SVG document +// Change the path to point to your actual SVG file. +HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); +``` + +**Tại sao điều này quan trọng:** Việc tải SVG dưới dạng `HTMLDocument` cho phép chúng ta truy cập đầy đủ vào engine render, đảm bảo mọi kiểu dáng, phông chữ và hình ảnh nhúng được diễn giải chính xác trước khi chuyển đổi. Bỏ qua bước này và cố gắng đưa raw bytes trực tiếp vào bộ chuyển đổi thường dẫn đến việc thiếu các thành phần hoặc màu sắc không đúng. + +## Bước 2 – Cấu hình tùy chọn TIFF (how to create multipage tiff) + +Tiếp theo, chúng ta thiết lập `TiffConversionOptions`. Đối tượng này điều khiển mọi thứ từ bố cục trang đến nén. Đối với đầu ra thực sự đa trang, chúng ta bật `setMultipage(true)`, và chọn nén **LZW** vì nó không mất dữ liệu và được hỗ trợ rộng rãi. + +```java +// Step 2: Configure TIFF conversion options for multi‑page output and lossless compression +TiffConversionOptions tiffOptions = new TiffConversionOptions(); +tiffOptions.setMultipage(true); // Enables multipage TIFF +tiffOptions.setCompression(Compression.LZW); // Lossless compression +``` + +**Tại sao điều này quan trọng:** Nếu bạn bỏ qua `setMultipage(true)`, thư viện sẽ tạo một TIFF một trang, bỏ qua bất kỳ trang bổ sung nào có thể được suy ra từ SVG (ví dụ, khi SVG chứa nhiều phần tử gốc ``). LZW giữ kích thước tệp ở mức hợp lý mà không làm giảm chất lượng hình ảnh—hoàn hảo cho lưu trữ hoặc quy trình in ấn. + +## Bước 3 – Thực hiện chuyển đổi (how to convert svg to tiff) + +Bây giờ công việc nặng nề diễn ra. Phương thức tĩnh `Converter.convertSVG` nhận tài liệu đã tải, đường dẫn đích và các tùy chọn chúng ta vừa định nghĩa. + +```java +// Step 3: Convert the SVG to a multi‑page TIFF file +Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); +``` + +**Tại sao điều này quan trọng:** Sử dụng lời gọi tĩnh `convertSVG` là cách đơn giản nhất để kích hoạt chuyển đổi. Bên trong, Aspose.HTML rasterize dữ liệu vector với độ phân giải mặc định 96 dpi; bạn có thể điều chỉnh DPI qua `tiffOptions.setResolution(...)` nếu cần chất lượng cao hơn. + +## Bước 4 – Xác minh kết quả + +Sau khi chuyển đổi hoàn tất, tốt hơn hết là xác nhận tệp tồn tại và chứa số trang mong đợi. Bạn có thể kiểm tra nhanh bằng bất kỳ trình xem ảnh nào hỗ trợ multipage TIFF (ví dụ IrfanView, XnView, hoặc thậm chí `ImageIO` của Java). + +```java +// Step 4: Notify that the conversion succeeded +System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); +``` + +Chạy chương trình: + +```bash +javac -cp "aspose-html.jar" SvgToMultipageTiff.java +java -cp ".:aspose-html.jar" SvgToMultipageTiff +``` + +Bạn sẽ thấy thông báo trên console xác nhận thành công, và mở `output.tiff` sẽ hiển thị một trang cho mỗi phần tử gốc SVG (hoặc một trang duy nhất nếu SVG chỉ có một canvas). + +## Những lỗi thường gặp & Mẹo chuyên nghiệp + +| Vấn đề | Nguyên nhân | Cách khắc phục | +|-------|-------------|----------------| +| **Thiếu phông chữ** | SVG tham chiếu các phông chữ hệ thống chưa được cài trên server. | Nhúng phông chữ vào SVG hoặc sử dụng `FontSettings` trong Aspose.HTML để cung cấp thư mục phông chữ tùy chỉnh. | +| **Kích thước tệp lớn** | Rasterization độ phân giải cao làm tăng kích thước TIFF. | Giảm DPI bằng `tiffOptions.setResolution(150)` hoặc chuyển sang `Compression.NONE` chỉ để gỡ lỗi. | +| **Không tạo được nhiều trang** | SVG chỉ chứa một phần tử `` duy nhất. | Tách nguồn thành các tệp SVG riêng biệt hoặc bao mỗi trang logic trong một thẻ `` trước khi chuyển đổi. | +| **Các tính năng SVG không được hỗ trợ** | Một số bộ lọc hoặc hoạt ảnh không được render. | Đơn giản hoá SVG hoặc tiền xử lý bằng công cụ như Inkscape để flatten các bộ lọc. | + +**Mẹo pro:** Nếu bạn cần thứ tự trang cụ thể, hãy đặt tên các tệp SVG thành `page1.svg`, `page2.svg`, … và lặp qua chúng, nối mỗi kết quả chuyển đổi vào cùng một TIFF bằng cách gọi `tiffOptions.setMultipage(true)` mỗi lần. + +## Ví dụ hoàn chỉnh + +Dưới đây là lớp Java tự chứa đầy đủ mà bạn có thể sao chép‑dán vào một tệp có tên `SvgToMultipageTiff.java`. Nó bao gồm các câu lệnh import, chú thích và xử lý lỗi cho môi trường production. + +```java +import com.aspose.html.HTMLDocument; +import com.aspose.html.converters.Converter; +import com.aspose.html.saving.TiffConversionOptions; +import com.aspose.html.saving.TiffConversionOptions.Compression; + +/** + * Demonstrates how to create a multipage TIFF from an SVG file using Aspose.HTML for Java. + * + * Prerequisites: + * - Aspose.HTML for Java JAR on the classpath. + * - An SVG file located at YOUR_DIRECTORY/input.svg. + * + * Run: + * javac -cp "aspose-html.jar" SvgToMultipageTiff.java + * java -cp ".:aspose-html.jar" SvgToMultipageTiff + */ +public class SvgToMultipageTiff { + public static void main(String[] args) throws Exception { + // Step 1: Load the SVG document (load svg document java) + HTMLDocument htmlDoc = new HTMLDocument("YOUR_DIRECTORY/input.svg"); + + // Step 2: Configure TIFF conversion options for multi‑page output and lossless compression + TiffConversionOptions tiffOptions = new TiffConversionOptions(); + tiffOptions.setMultipage(true); // Enables multipage TIFF + tiffOptions.setCompression(Compression.LZW); // Use LZW for lossless compression + + // Optional: Adjust resolution if you need higher quality (default is 96 DPI) + // tiffOptions.setResolution(150); + + // Step 3: Convert the SVG to a multi‑page TIFF file (how to convert svg to tiff) + Converter.convertSVG(htmlDoc, "YOUR_DIRECTORY/output.tiff", tiffOptions); + + // Step 4: Notify that the conversion succeeded + System.out.println("Multi‑page TIFF created at YOUR_DIRECTORY/output.tiff."); + } +} +``` + +Chạy đoạn mã sẽ tạo ra một TIFF trong đó mỗi phần tử gốc SVG trở thành một trang riêng—đúng như những gì bạn cần khi muốn **tạo multipage tiff** cho việc in ấn hoặc lưu trữ. + +## Kết luận + +Chúng ta vừa cho bạn thấy cách **tạo multipage tiff** từ SVG bằng Java và Aspose.HTML. Tutorial đã bao gồm việc tải SVG (`load svg document java`), cấu hình tùy chọn chuyển đổi, thực hiện chuyển đổi (`how to convert svg to tiff`) và xác minh đầu ra. Với mã nguồn đầy đủ trong tay, bạn có thể mở rộng giải pháp để xử lý hàng chục SVG, điều chỉnh DPI, hoặc tích hợp logic này vào một pipeline tạo tài liệu lớn hơn. + +Sẵn sàng cho thử thách tiếp theo? Hãy thử chuyển đổi một thư mục các SVG thành một TIFF đa trang duy nhất, thử các scheme nén khác nhau, hoặc khám phá xuất PDF bằng cách thay `TiffConversionOptions` bằng `PdfConversionOptions`. Các nguyên tắc giống nhau sẽ giúp bạn mở rộng sang các định dạng khác. + +Có câu hỏi hoặc gặp trường hợp SVG lạ? Để lại bình luận bên dưới, và chúc bạn lập trình vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/html5-canvas-rendering/_index.md b/html/vietnamese/java/html5-canvas-rendering/_index.md index bae1bc373..77a040bfe 100644 --- a/html/vietnamese/java/html5-canvas-rendering/_index.md +++ b/html/vietnamese/java/html5-canvas-rendering/_index.md @@ -30,9 +30,12 @@ Trước hết, chúng ta hãy nói về phần tử Canvas HTML5. Hãy nghĩ v Tạo và hiển thị HTML5 Canvas bằng Aspose.HTML cho Java. Tìm hiểu từng bước cách vẽ, định dạng và xuất sang PDF bằng thư viện Java mạnh mẽ này. ### [Làm chủ HTML5 Canvas với Aspose.HTML cho Java](./html5-canvas/) Tìm hiểu cách tạo và chuyển đổi HTML5 Canvas sang PDF bằng Aspose.HTML for Java. Hướng dẫn này hoàn hảo cho các nhà phát triển muốn nâng cao dự án web của họ. +### [Cách mô phỏng iPhone – Hướng dẫn đầy đủ với Aspose.HTML](./how-to-emulate-iphone-complete-guide-with-aspose-html/) +Hướng dẫn chi tiết cách mô phỏng iPhone trong trình duyệt bằng Aspose.HTML, bao gồm các bước cấu hình và xuất kết quả. + {{< /blocks/products/pf/tutorial-page-section >}} {{< /blocks/products/pf/main-container >}} {{< /blocks/products/pf/main-wrap-class >}} -{{< blocks/products/products-backtop-button >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file diff --git a/html/vietnamese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md b/html/vietnamese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md new file mode 100644 index 000000000..e30660503 --- /dev/null +++ b/html/vietnamese/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/_index.md @@ -0,0 +1,168 @@ +--- +category: general +date: 2026-03-26 +description: Tìm hiểu cách mô phỏng iPhone trong Java bằng Aspose.HTML. Bao gồm các + bước để đặt user agent tùy chỉnh và thiết lập tỷ lệ pixel của thiết bị nhằm hiển + thị di động chính xác. +draft: false +keywords: +- how to emulate iphone +- set custom user agent +- set device pixel ratio +- how to set user-agent +- how to set dpr +language: vi +og_description: Cách mô phỏng iPhone trong Java? Bài hướng dẫn này chỉ cách thiết + lập user agent tùy chỉnh và tỷ lệ pixel của thiết bị bằng Aspose.HTML, mang lại + các trang di động pixel‑perfect. +og_title: Cách mô phỏng iPhone – Hướng dẫn Aspose.HTML từng bước +tags: +- Aspose.HTML +- Java +- Mobile Emulation +title: Cách mô phỏng iPhone – Hướng dẫn đầy đủ với Aspose.HTML +url: /vi/java/html5-canvas-rendering/how-to-emulate-iphone-complete-guide-with-aspose-html/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cách mô phỏng iPhone – Hướng dẫn đầy đủ với Aspose.HTML + +Bạn đã bao giờ tự hỏi **cách mô phỏng iPhone** khi kiểm thử một trang web cục bộ chưa? Có thể bạn đang gỡ lỗi một bố cục đáp ứng và trình duyệt trên máy tính để bàn không đáp ứng được. Tin tốt là bạn không cần thiết bị vật lý—Aspose.HTML’s `DocumentSandbox` cho phép bạn mô phỏng màn hình, user‑agent và device‑pixel‑ratio (DPR) của iPhone chỉ với vài dòng Java. + +Trong tutorial này chúng ta sẽ đi qua các bước chính xác để đặt **custom user agent**, cấu hình **device pixel ratio**, và xác minh mọi thứ hoạt động như mong đợi. Khi kết thúc, bạn sẽ có một sandbox tái sử dụng được, render trang giống như iPhone 8, và hiểu tại sao mỗi thiết lập lại quan trọng. + +## Những gì bạn sẽ đạt được + +- Tạo một đối tượng `Screen` phản ánh kích thước và DPR của iPhone. +- Áp dụng một chuỗi **custom user agent** để máy chủ nghĩ rằng yêu cầu đến từ Safari trên iOS. +- Xây dựng một `DocumentSandbox` liên kết màn hình và user‑agent lại với nhau. +- Chạy một `HTMLDocument` bên trong sandbox và xem đầu ra console xác nhận cấu hình. + +Không cần thư viện bên ngoài nào ngoài Aspose.HTML, và mã chạy trên bất kỳ môi trường Java 17+ nào. + +--- + +![cách mô phỏng iPhone screenshot](https://example.com/images/iphone-emulation.png "cách mô phỏng iPhone bằng sandbox Aspose.HTML") + +## Cách mô phỏng iPhone với Aspose.HTML Sandbox + +Điều đầu tiên chúng ta cần là một `Screen` phản ánh kích thước vật lý của iPhone *và* mật độ pixel của nó. Đây là cốt lõi của **cách mô phỏng iPhone** một cách chính xác. + +```java +import com.aspose.html.devices.Screen; + +// Step 1: Define iPhone 8 screen size (width, height) and DPR +Screen mobileScreen = new Screen(375, 667, 2.0); // iPhone 8 dimensions, DPR = 2 +``` + +**Tại sao điều này quan trọng:** +- Chiều rộng = 375 px và chiều cao = 667 px là kích thước pixel CSS bạn sẽ thấy trong Chrome DevTools khi chọn iPhone 8. +- Đặt DPR thành 2 báo cho engine render rằng mỗi pixel CSS tương đương hai pixel vật lý, cho bạn văn bản và hình ảnh sắc nét—đúng như một thiết bị thực. + +> *Mẹo chuyên nghiệp:* Nếu bạn cần mô phỏng iPhone mới hơn (như iPhone 13), chỉ cần đổi số thành 390 × 844 và DPR = 3. + +## Đặt custom user agent (set custom user agent) + +Tiếp theo, chúng ta cần **set custom user agent** để máy chủ trả về HTML/CSS dành cho di động. Nếu không, nhiều trang vẫn sẽ nghĩ bạn đang trên desktop. + +```java +// Step 2: Define an iPhone Safari user‑agent string +String iPhoneUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) " + + "AppleWebKit/605.1.15 (KHTML, like Gecko) " + + "Version/16.0 Mobile/15E148 Safari/604.1"; +``` + +**Cách hoạt động này:** +- Header `User-Agent` là cách các trình duyệt giới thiệu mình với máy chủ. +- Bằng cách cung cấp chính xác chuỗi Safari trên iOS 16 gửi, bạn đảm bảo máy chủ trả về các tài nguyên tối ưu cho di động (hình ảnh đáp ứng, script thích nghi, v.v.). + +Nếu bạn muốn **how to set user-agent** cho một thiết bị khác, chỉ cần thay chuỗi bằng giá trị phù hợp—Google Chrome, Firefox, hoặc thậm chí một bot tùy chỉnh. + +## Cấu hình Device Pixel Ratio (set device pixel ratio) + +Bây giờ chúng ta thực sự **set device pixel ratio** trong sandbox. Đây là bước trả lời trực tiếp “**how to set dpr**” cho môi trường mô phỏng. + +```java +import com.aspose.html.sandbox.DocumentSandbox; + +// Step 3: Build the sandbox with screen and user‑agent +DocumentSandbox documentSandbox = new DocumentSandbox.Builder() + .setScreen(mobileScreen) // applies the DPR we defined earlier + .setUserAgent(iPhoneUserAgent) // applies the custom user‑agent + .build(); +``` + +**Giải thích:** +- Mẫu `Builder` cho phép bạn gắn liền cả màn hình (chứa DPR) và user‑agent một cách mượt mà. +- Khi sandbox render một `HTMLDocument`, nó sẽ giả vờ đang chạy trên thiết bị có mật độ pixel chính xác đó. + +> *Tại sao bạn nên quan tâm:* Một số media query CSS sử dụng `device-pixel-ratio` (ví dụ, `@media (-webkit-min-device-pixel-ratio: 2)`). Nếu bạn không đặt DPR, các quy tắc này sẽ không bao giờ kích hoạt, và bạn sẽ bỏ lỡ các tài nguyên độ phân giải cao. + +## Xác minh cấu hình Sandbox (how to set user-agent) + +Hãy để sandbox vào hoạt động. Đoạn mã sau tạo một `HTMLDocument`, tải một trang, và in ra xác nhận sandbox đang hoạt động. + +```java +import com.aspose.html.HTMLDocument; + +public class SandboxWithDprAndUa { + public static void main(String[] args) { + // Re‑use the sandbox we built earlier + // DocumentSandbox documentSandbox = ... (from previous step) + + // Step 4: Load a page inside the sandbox + HTMLDocument doc = new HTMLDocument("https://example.com", documentSandbox); + + // Step 5: Optional – output a sanity check + System.out.println("Sandbox configured with DPR=2 and iPhone user‑agent."); + } +} +``` + +**Kết quả đầu ra dự kiến trên console** + +``` +Sandbox configured with DPR=2 and iPhone user-agent. +``` + +Nếu bạn chạy chương trình và thấy dòng này, bạn đã thành công **cách mô phỏng iPhone** với DPR và user‑agent đúng. Mở trang trong trình duyệt thực và kiểm tra kích thước viewport—bạn sẽ nhận thấy chúng khớp với giá trị iPhone mà chúng ta đã đặt. + +## Các vấn đề thường gặp và cách đặt DPR đúng (how to set dpr) + +Ngay cả khi có mã đúng, một vài cạm bẫy có thể làm bạn gặp khó khăn: + +| Vấn đề | Tại sao xảy ra | Cách khắc phục | +|-------|----------------|----------------| +| **DPR vẫn ở 1** | Bạn đã truyền `Screen` mà không có đối số thứ ba (DPR). | Luôn sử dụng `new Screen(width, height, dpr)`. | +| **User‑Agent bị bỏ qua** | Sandbox chưa được gắn vào `HTMLDocument`. | Truyền `documentSandbox` làm đối số thứ hai cho constructor của `HTMLDocument`. | +| **Kích thước sai** | Sử dụng pixel thiết bị thay vì pixel CSS. | Nhớ rằng: width/height là **pixel CSS**, không phải pixel phần cứng. | +| **Server vẫn gửi CSS desktop** | Một số trang dùng JavaScript để phát hiện thiết bị, không chỉ dựa vào header. | Xem xét cũng chèn thẻ meta viewport nếu cần. | + +Giữ những lưu ý này, bạn sẽ hiếm khi gặp tình huống mô phỏng không hoạt động như mong đợi. + +## Mở rộng Sandbox – Các bước tiếp theo + +Bây giờ bạn đã biết **cách đặt custom user agent** và **cách đặt dpr**, bạn có thể thử nghiệm thêm: + +- **Thay đổi kích thước màn hình** để mô phỏng tablet hoặc điện thoại lớn hơn. +- **Thay đổi user‑agent** để kiểm tra Chrome trên Android (`"Mozilla/5.0 (Linux; Android 12; ...) Chrome/110.0"`). +- **Thêm cookie hoặc header** qua phương thức `setHeaders` của sandbox để kiểm thử có xác thực. +- **Chụp ảnh màn hình** bằng `HTMLDocument.renderToFile("output.png")` để tự động so sánh sự khác biệt về hình ảnh. + +Các mở rộng này cho phép bạn xây dựng một bộ kiểm thử đầy đủ tính năng mà không cần rời IDE. + +## Kết luận + +Chúng tôi đã trình bày **cách mô phỏng iPhone** bằng `DocumentSandbox` của Aspose.HTML, cho bạn thấy chính xác **cách đặt custom user agent**, **cách đặt device pixel ratio**, và ngay cả sự khác biệt tinh tế giữa “**how to set user-agent**” và “**how to set dpr**”. Ví dụ hoàn chỉnh, có thể chạy được, minh họa mọi phần trong một nơi, để bạn có thể copy‑paste, chỉnh sửa và bắt đầu kiểm thử bố cục di động ngay lập tức. + +Hãy thử—thay đổi kích thước màn hình, chơi với các user‑agent khác nhau, và quan sát cách trang của bạn phản hồi. Khi bạn thành thạo các thiết lập này, việc gỡ lỗi thiết kế đáp ứng trở nên dễ dàng, và bạn sẽ tiết kiệm vô số giờ đồng hồ truy tìm lỗi trên thiết bị thực. + +Có câu hỏi hoặc muốn chia sẻ biến thể của mình? Để lại bình luận bên dưới, và chúc bạn mô phỏng vui vẻ! + +{{< /blocks/products/pf/tutorial-page-section >}} +{{< /blocks/products/pf/main-container >}} +{{< /blocks/products/pf/main-wrap-class >}} +{{< blocks/products/products-backtop-button >}} \ No newline at end of file