From d17a69a5ffba2616dc34be68893ee730516ab287 Mon Sep 17 00:00:00 2001 From: Muhammad Adil Date: Thu, 13 Aug 2026 02:43:23 +0000 Subject: [PATCH] Add 4 html python tutorials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Categories: general Source: AI Search API Tutorials: - Convert HTML to PDF in Python – complete programming guide - Convert HTML to Markdown with Python – complete programming guide - Convert HTML to PDF in Python using Aspose HTML Converter - Load html from file in Python – step‑by‑step guide Auto-generated by Professionalize.Tutorials Agent --- .../_index.md | 252 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 343 +++++++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 250 +++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 343 +++++++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 254 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 342 +++++++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 253 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 345 +++++++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 256 +++++++++++++ .../og-image.png | Bin 0 -> 46621 bytes .../_index.md | 213 +++++++++++ .../og-image.png | Bin 0 -> 49260 bytes .../_index.md | 346 +++++++++++++++++ .../og-image.png | Bin 0 -> 49297 bytes .../_index.md | 213 +++++++++++ .../og-image.png | Bin 0 -> 42706 bytes .../_index.md | 253 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 339 +++++++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 254 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 341 +++++++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 256 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 343 +++++++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 254 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 343 +++++++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 252 +++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 343 +++++++++++++++++ .../_index.md | 210 +++++++++++ .../_index.md | 258 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 341 +++++++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 255 +++++++++++++ .../_index.md | 214 +++++++++++ .../_index.md | 346 +++++++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 255 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 345 +++++++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 253 +++++++++++++ .../_index.md | 210 +++++++++++ .../_index.md | 343 +++++++++++++++++ .../_index.md | 209 +++++++++++ .../_index.md | 254 +++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 339 +++++++++++++++++ .../_index.md | 210 +++++++++++ .../_index.md | 255 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 344 +++++++++++++++++ .../_index.md | 210 +++++++++++ .../_index.md | 253 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 341 +++++++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 254 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 348 ++++++++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 255 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 347 +++++++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 253 +++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 331 +++++++++++++++++ .../_index.md | 214 +++++++++++ .../_index.md | 254 +++++++++++++ .../_index.md | 211 +++++++++++ .../_index.md | 341 +++++++++++++++++ .../_index.md | 210 +++++++++++ .../_index.md | 258 +++++++++++++ .../_index.md | 214 +++++++++++ .../_index.md | 345 +++++++++++++++++ .../_index.md | 212 +++++++++++ .../_index.md | 253 +++++++++++++ .../_index.md | 213 +++++++++++ .../_index.md | 345 +++++++++++++++++ .../_index.md | 213 +++++++++++ 96 files changed, 23483 insertions(+) create mode 100644 html/arabic/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/arabic/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/arabic/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/arabic/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/chinese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/chinese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/chinese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/chinese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/czech/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/czech/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/czech/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/czech/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/dutch/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/dutch/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/dutch/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/dutch/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/english/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/english/python/general/convert-html-to-markdown-with-python-complete-programming-gu/og-image.png create mode 100644 html/english/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/english/python/general/convert-html-to-pdf-in-python-complete-programming-guide/og-image.png create mode 100644 html/english/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/english/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/og-image.png create mode 100644 html/english/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/english/python/general/load-html-from-file-in-python-step-by-step-guide/og-image.png create mode 100644 html/french/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/french/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/french/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/french/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/german/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/german/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/german/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/german/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/greek/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/greek/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/greek/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/greek/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/hindi/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/hindi/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/hindi/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/hindi/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/hongkong/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/hongkong/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/hongkong/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/hongkong/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/hungarian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/hungarian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/hungarian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/hungarian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/indonesian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/indonesian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/indonesian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/indonesian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/italian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/italian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/italian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/italian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/japanese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/japanese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/japanese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/japanese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/korean/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/korean/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/korean/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/korean/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/polish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/polish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/polish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/polish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/portuguese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/portuguese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/portuguese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/portuguese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/russian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/russian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/russian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/russian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/spanish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/spanish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/spanish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/spanish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/swedish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/swedish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/swedish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/swedish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/thai/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/thai/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/thai/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/thai/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/turkish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/turkish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/turkish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/turkish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md create mode 100644 html/vietnamese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md create mode 100644 html/vietnamese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md create mode 100644 html/vietnamese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md create mode 100644 html/vietnamese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md diff --git a/html/arabic/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/arabic/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..07dd4f796 --- /dev/null +++ b/html/arabic/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-08-12 +description: تحويل HTML إلى Markdown باستخدام بايثون. تعلم سير عمل سطر الأوامر لتحويل + صفحة الويب إلى Markdown وأتمتة التوثيق. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: ar +lastmod: 2026-08-12 +og_description: تحويل HTML إلى Markdown باستخدام بايثون. يوضح لك هذا الدليل حلاً سطر + الأوامر لتحويل صفحة الويب إلى Markdown بسرعة وموثوقية. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: تحويل HTML إلى Markdown باستخدام Python – دليل خطوة بخطوة +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: تحويل HTML إلى Markdown باستخدام بايثون – دليل برمجي كامل +url: /ar/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل HTML إلى Markdown باستخدام Python – دليل برمجة كامل + +إذا كنت بحاجة إلى **convert HTML to Markdown**، يوضح لك هذا الدليل حلاً جاهزًا للتنفيذ. سترى كيف يحول برنامج Python قصير أي ملف HTML إلى Markdown نظيف، بنكهة Git، وكيف يمكنك استدعاء نفس المنطق من سطر الأوامر. + +تحويل صفحات الويب إلى Markdown خطوة شائعة عند بناء مواقع توثيق ثابتة أو إعداد المحتوى لمستودعات مُتحكم فيها بالإصدارات. بنهاية هذا الدليل ستحصل على أداة سطر أوامر قابلة لإعادة الاستخدام تتعامل مع ترميز HTML، وتحافظ على الروابط، وتلتزم باتفاقيات Markdown بنكهة Git. + +## المتطلبات المسبقة + +* Python 3.9 أو أحدث مثبت على نظامك. +* حزمة Python `groupdocs-conversion` (أو أي مكتبة توفر `HTMLDocument`، `MarkdownSaveOptions`، و `Converter`). قم بتثبيتها باستخدام: + +```bash +pip install groupdocs-conversion +``` + +* مجلد يحتوي على ملف `input.html` المصدر الذي تريد معالجته. + +الأقسام التالية تتناول كل خطوة، وتشرح سبب أهميتها، وتزودك بالكود الدقيق الذي تحتاجه. + +## الخطوة 1: إعداد البيئة + +إنشاء بيئة افتراضية معزولة يمنع تعارضات الاعتماديات ويجعل أداة سطر الأوامر قابلة للنقل. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*لماذا هذه الخطوة؟* +بيئة افتراضية تعزل حزمة `groupdocs-conversion` عن المشاريع الأخرى، مما يضمن أن أداة `convert html to markdown command line` تعمل بالإصدارات الدقيقة التي اختبرتها. + +## الخطوة 2: كتابة سكريبت التحويل + +أنشئ ملفًا باسم `html_to_md.py` والصق الكود التالي. يقبل السكريبت ثلاثة معطيات: مسار ملف HTML الإدخالي، مسار ملف Markdown الناتج، وعلامة اختيارية لتحديد مُنسق بنكهة Git. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### شرح السكريبت + +| القسم | الغرض | +|---------|---------| +| **Argument parsing** | يُمكّن نمط الاستخدام **convert html to markdown command line**. | +| **HTMLDocument** | يقوم بتحميل ملف المصدر؛ المكتبة تُجرد ترميز الأحرف وتحليل DOM. | +| **MarkdownSaveOptions** | يسمح لك بالتبديل بين Markdown عادي وMarkdown بنكهة Git (علامة `--git`). | +| **Converter.convert_html** | يقوم بالمعالجة الثقيلة – يتجول في شجرة HTML، يترجم الوسوم، ويكتب ملف الإخراج. | +| **Error handling** | يوفر رسالة نجاح/فشل واضحة، وهو أمر أساسي لأنابيب CI. | + +## الخطوة 3: تشغيل التحويل من سطر الأوامر + +بعد حفظ السكريبت، يمكنك تحويل أي ملف HTML بأمر واحد: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**المخرجات المتوقعة** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +افتح `output.md` في محرر نصوص؛ سترى العناوين والقوائم والروابط مُعروضة بصيغة Markdown نظيفة. لأننا استخدمنا مُنسق Git، تظهر الجداول بفواصل الأنابيب (`|`)، وتستخدم قوائم المهام الصيغة `- [ ]`، والتي يعرضها GitHub وGitLab بشكل أصلي. + +## الخطوة 4: دمج الأداة في خطوط الأتمتة + +إذا كنت تدير التوثيق في مستودع، يمكنك إضافة خطوة التحويل إلى سير عمل CI. أدناه مثال لوظيفة GitHub Actions تُنفّذ عند كل دفعة (push): + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*لماذا هذا مهم* – أتمتة خطوة **convert web page to markdown** تضمن بقاء توثيقك متزامنًا مع ملفات HTML المصدر دون جهد يدوي. + +## الحالات الخاصة ونصائح أفضل الممارسات + +* **مشكلات الترميز** – إذا كان HTML الخاص بك يحتوي على أحرف غير UTF‑8، مرّر ترميزًا صريحًا عند إنشاء `HTMLDocument` (مثال: `HTMLDocument(input_path, encoding='utf-8')`). +* **ملفات كبيرة** – بالنسبة لملفات HTML التي تتجاوز 50 ميغابايت، فكر في تحويلها عبر التدفق لتجنب ارتفاع الذاكرة. المكتبة توفر طريقة `convert_html_stream` لهذا السيناريو. +* **معالجة CSS مخصصة** – يقوم المحول بإزالة سمات النمط بشكل افتراضي. إذا كنت بحاجة إلى الحفاظ على تنسيق معين، فعّل `md_opts.preserveFormatting = True`. +* **اختصار سطر الأوامر** – أنشئ سكريبت غلاف صغير (`html2md`) يمرّر المعطيات إلى `html_to_md.py`. ضعّه في `$HOME/.local/bin` وأضفه إلى `PATH` لتجربة **convert html to markdown command line** أقصر. + +## الأسئلة المتكررة + +**هل يعمل هذا على Windows و macOS و Linux؟** +نعم. يعتمد السكريبت فقط على حزمة `groupdocs-conversion` المتعددة المنصات ومكتبات Python القياسية، لذا يعمل دون تغيير على الأنظمة الثلاثة. + +**هل يمكنني تحويل صفحة ويب عن بُعد مباشرة؟** +يمكنك جلب الصفحة باستخدام `requests` وإعطاء سلسلة HTML إلى `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**ماذا لو كنت أحتاج فقط إلى تحويل HTML → Markdown بنكهة GitHub؟** +ما عليك سوى دائمًا تمرير العلامة `--git`؛ فإن المُنسق ينتج مخرجات متوافقة مع GitHub وGitLab وBitbucket. + +## الخلاصة + +أصبح لديك الآن حلًا قويًا لـ **convert HTML to Markdown** يعمل من سكريبت Python ومن سطر الأوامر. غطّى الدليل إعداد البيئة، الكود الكامل، استخدام سطر الأوامر، دمج CI، ومعالجة الحالات الخاصة العملية. + +بعد ذلك، قد تستكشف **convert markdown to HTML**، وتجرب Pandoc للحصول على خيارات تحويل متقدمة، أو تضيف مولد front‑matter لتضمين البيانات الوصفية مباشرةً في ملفات Markdown. كل هذه الإضافات تبني على المفاهيم الأساسية التي أتممتها للتو. + +تحويل سعيد! + +## ما الذي يجب أن تتعلمه لاحقًا؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات التي تم توضيحها في هذا الدليل. كل مصدر يتضمن أمثلة كود كاملة تعمل مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [تحويل HTML إلى Markdown باستخدام Aspose.HTML للغة Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [تحويل HTML إلى Markdown في .NET باستخدام Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/arabic/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..620172920 --- /dev/null +++ b/html/arabic/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: تحويل HTML إلى PDF في بايثون باستخدام GroupDocs.Viewer. تعلّم كيفية حفظ + HTML كملف PDF مع خيارات مرنة من HTML إلى PDF للتحكم الدقيق. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: ar +lastmod: 2026-08-12 +og_description: تحويل HTML إلى PDF باستخدام GroupDocs.Viewer. يوضح لك هذا الدليل كيفية + حفظ HTML كملف PDF، وتكوين خيارات التحويل من HTML إلى PDF، والتعامل مع المستندات + الكبيرة بشكل موثوق. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: تحويل HTML إلى PDF – دليل بايثون خطوة بخطوة +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: تحويل HTML إلى PDF في بايثون – دليل برمجي كامل +url: /ar/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل HTML إلى PDF في بايثون – دليل برمجي كامل + +إذا كنت بحاجة إلى **تحويل HTML إلى PDF** في مشروع بايثون، يوضح لك هذا الدليل حلاً جاهزًا للتنفيذ. سنستعرض تثبيت مكتبة العارض، وتكوين **html to pdf options**، وأخيرًا **save HTML as PDF** باستخدام بضع أسطر من الشيفرة فقط. + +غالبًا ما يتضمن تحويل مستندات HTML معالجة الموارد المرتبطة مثل الصور، CSS، أو JavaScript. بنهاية هذا الدرس ستفهم كيفية الحد من تعشيق الموارد، تجنب ارتفاع استهلاك الذاكرة، وإنتاج ملف PDF نظيف يطابق تخطيط الصفحة الأصلي. + +## المتطلبات المسبقة + +- Python 3.8 أو أحدث +- `pip` (مُثبت حزم بايثون) +- الوصول إلى ملف HTML الذي ترغب في تحويله (مثال: `large_page.html`) + +لا توجد مكتبات نظام إضافية مطلوبة لأن GroupDocs.Viewer يجمع جميع محركات العرض اللازمة. + +## الخطوة 1: تثبيت GroupDocs.Viewer للبايثون + +يوفر GroupDocs.Viewer تحويلًا عالي الدقة من العديد من الصيغ، بما في ذلك HTML، إلى PDF. قم بتثبيته باستخدام: + +```bash +pip install groupdocs-viewer +``` + +> **نصيحة احترافية:** استخدم بيئة افتراضية (`python -m venv .venv`) للحفاظ على عزل الاعتمادات عن المشاريع الأخرى. + +## الخطوة 2: تكوين **html to pdf options** – تحديد عمق تعشيق الموارد + +يمكن أن تحتوي صفحات HTML الكبيرة على موارد متداخلة بعمق (iframes، استيراد CSS، إلخ). ضبط أقصى عمق معالجة يمنع المحول من التكرار إلى ما لا نهاية ويحافظ على استهلاك الذاكرة بشكل متوقع. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +خاصية `max_handling_depth` تخبر العارض بعدد مستويات الموارد المرتبطة التي يجب متابعتها. عمق `3` يعمل جيدًا لمعظم صفحات الويب مع الحفاظ على الصور والأنماط الضرورية. + +## الخطوة 3: تحميل مستند HTML الذي تريد **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` يُجرد عملية اكتشاف صيغة الملف، لذا لا تحتاج إلى إنشاء `HtmlDocument` يدويًا. هذه الخطوة تُعد التمثيل الداخلي الذي سيعمل معه المحول. + +## الخطوة 4: **Save HTML as PDF** باستخدام **html to pdf options** المُكوَّنة + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +كائن `PdfSaveOptions` يجمع جميع إعدادات PDF الخاصة، بما في ذلك `resource_handling_options` التي عرّفناها سابقًا. عند تشغيل `viewer.save`، يتم عرض صفحة HTML، وتُعالج الموارد حتى العمق المسموح، ويُكتب ملف PDF النهائي إلى `output_path`. + +### النتيجة المتوقعة + +بعد انتهاء السكريبت، يحتوي `output.pdf` على تمثيل دقيق لـ `large_page.html`. افتح ملف PDF بأي عارض (Adobe Reader، Chrome، إلخ) وتأكد من أن: + +- الصور، الجداول، وأنماط CSS الأساسية تظهر بشكل صحيح. +- لا توجد صفحات فارغة غير متوقعة ناتجة عن تعمق استدعاء الموارد. + +## التعامل مع الحالات الطرفية والاختلافات الشائعة + +| الحالة | التعديل الموصى به | +|--------|-------------------| +| **HTML يحتوي على خطوط خارجية** | أضف `pdf_options.embed_all_fonts = True` لضمان تضمين الخطوط في ملف PDF. | +| **تحتاج إلى حجم صفحة محدد** | حدد `pdf_options.page_width` و `pdf_options.page_height` (مثال: A4: `595, 842`). | +| **الملفات الكبيرة تسبب أخطاء نفاد الذاكرة** | قلل `resource_options.max_handling_depth` أو قسّم HTML إلى أجزاء أصغر وحوّل كل جزء على حدة. | +| **تريد حماية PDF بكلمة مرور** | استخدم `pdf_options.password = "YourSecret"` قبل استدعاء `save`. | + +هذه التعديلات توضح مرونة **html to pdf options** وتظهر كيف يمكنك تخصيص التحويل وفقًا لمتطلباتك الدقيقة. + +## النص الكامل الذي يمكنك نسخه‑ولصقه + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +شغّل السكريبت: + +```bash +python convert_html_to_pdf.py +``` + +يجب أن ترى رسالة التأكيد وتجد `output.pdf` في الدليل المحدد. + +## الأسئلة المتكررة + +**س: هل يعمل هذا مع عناوين URL عن بُعد بدلاً من الملفات المحلية؟** +ج: نعم. مرّر سلسلة URL إلى `Viewer` (مثال: `Viewer("https://example.com/page.html")`). سيقوم العارض بتنزيل الصفحة قبل تطبيق **html to pdf options**. + +**س: هل يمكنني تحويل عدة ملفات HTML دفعة واحدة؟** +ج: غلف شفرة التحويل داخل حلقة تتكرر على قائمة مسارات الملفات. أعد استخدام نفس كائنات `resource_options` و `pdf_options` لتحقيق الكفاءة. + +**س: ماذا لو كان HTML يستخدم JavaScript لتعديل DOM؟** +ج: يقوم GroupDocs.Viewer بعرض HTML ثابت؛ لا ينفّذ **JavaScript**. للصفحات الديناميكية، قم بعرض الصفحة في متصفح بدون رأس (مثال: Selenium) أولاً، ثم قدم الـ HTML الثابت الناتج إلى المحول. + +## الخلاصة + +أصبح لديك الآن طريقة كاملة وجاهزة للإنتاج **convert HTML to PDF** في بايثون. من خلال تكوين **resource handling** يمكنك التحكم في مدى تعمق معالجة الموارد المرتبطة، وتتيح لك `PdfSaveOptions` **save HTML as PDF** بإعدادات **html to pdf options** الدقيقة. جرّب الإعدادات الاختيارية—مثل تضمين الخطوط أو تحديد حجم الصفحة—لتتناسب مع احتياجات تطبيقك الدقيقة. + +--- + +*الخطوات التالية*: استكشف **save HTML document pdf** مع حماية كلمة مرور، أو دمج هذا التحويل في واجهة برمجة تطبيقات ويب باستخدام Flask أو FastAPI لإنشاء PDF عند الطلب. + +## ماذا يجب أن تتعلم بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مصدر يتضمن أمثلة شيفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف أساليب تنفيذ بديلة في مشاريعك. + +- [كيفية تحويل HTML إلى PDF في Java – باستخدام Aspose.HTML للـ Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [تحويل HTML إلى PDF في Java – تكوين البيئة في Aspose.HTML](/html/english/java/configuring-environment/) +- [تحويل HTML إلى PDF – تنفيذ طلب ويب في Aspose.HTML للـ Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/arabic/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..cde319c68 --- /dev/null +++ b/html/arabic/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,343 @@ +--- +category: general +date: 2026-08-12 +description: تحويل HTML إلى PDF في بايثون باستخدام Aspose HTML Converter. تعلم كيفية + إنشاء PDF من HTML وكيفية تحويل EPUB إلى PDF في بضع أسطر من الشيفرة. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: ar +lastmod: 2026-08-12 +og_description: تحويل HTML إلى PDF في بايثون باستخدام Aspose HTML Converter. يوضح + هذا الدرس كيفية إنشاء PDF من HTML وكيفية تحويل EPUB إلى PDF مع كود واضح وقابل للتنفيذ. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: تحويل HTML إلى PDF في بايثون باستخدام محول Aspose HTML – دليل سريع +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: تحويل HTML إلى PDF في بايثون باستخدام محول Aspose HTML +url: /ar/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحويل HTML إلى PDF في بايثون باستخدام Aspose HTML Converter + +إذا كنت بحاجة إلى **تحويل HTML إلى PDF** بسرعة، يوضح لك هذا الدليل بالضبط كيفية القيام بذلك باستخدام مكتبة Aspose.HTML للبايثون. سواءً كنت تبني خدمة ويب تحول الصفحات التي يرسلها المستخدمون إلى ملفات PDF قابلة للطباعة أو تقوم بأتمتة إنشاء التقارير، فإن الخطوات أدناه تمنحك حلاً كاملاً وجاهزًا للتنفيذ. + +بالإضافة إلى HTML، يدعم Aspose.HTML أيضًا صيغ الكتب الإلكترونية، لذا ستتعرف على **كيفية تحويل ملفات EPUB** إلى PDF دون مغادرة بايثون. في نهاية هذا الدرس ستتمكن من **إنشاء PDF من HTML** وإنشاء إصدارات PDF من كتب EPUB ببضع أسطر من الشيفرة فقط. + +## المتطلبات المسبقة + +قبل أن تبدأ، تأكد من وجود ما يلي: + +* بايثون 3.8 أو أحدث مثبت. +* ترخيص فعال لـ Aspose.HTML للبايثون (الإصدار التجريبي المجاني يكفي للتقييم). +* إمكانية الوصول إلى `pip` لتثبيت حزمة `aspose-html`. +* ملفات HTML أو EPUB تجريبية ترغب في تحويلها. + +```bash +pip install aspose-html +``` + +> **نصيحة احترافية:** قم بتثبيت الحزمة داخل بيئة افتراضية للحفاظ على عزل الاعتمادات. + +## نظرة عامة على عملية التحويل + +يوفر Aspose.HTML فئة `Converter` واحدة تُجرد تفاصيل تحويل HTML وCSS ومحتوى الكتب الإلكترونية إلى PDF. سير العمل هو: + +1. استيراد فئة `Converter`. +2. استدعاء `Converter.convert(source_path, target_path)`. +3. (اختياري) تعديل إعدادات التحويل مثل حجم الصفحة أو تضمين الخطوط. + +تكتشف المكتبة تلقائيًا تنسيق المصدر بناءً على امتداد الملف، لذا تعمل الطريقة نفسها لكل من ملفات HTML وEPUB. + +--- + +## تحويل HTML إلى PDF باستخدام Aspose HTML Converter + +### الخطوة 1: استيراد وحدة تحويل Aspose HTML + +فئة `Converter` موجودة في مساحة الاسم `aspose.html`. استوردها في أعلى السكربت الخاص بك. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### الخطوة 2: إعداد مسارات الإدخال والإخراج + +استخدم مسارات مطلقة أو نسبية يمكن للسكربت قراءتها وكتابتها. من الممارسات الجيدة التحقق من وجود ملف المصدر قبل محاولة التحويل. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### الخطوة 3: تنفيذ التحويل + +استدعاء `Converter.convert` يقوم بكل الأعمال الثقيلة: عرض HTML، تطبيق CSS، وكتابة ملف PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### لماذا يعمل هذا + +* **محرك تخطيط تلقائي** – يستخدم Aspose.HTML محرك عرض مبني على Chromium، مما يضمن معالجة CSS الحديثة وSVG وJavaScript بشكل صحيح. +* **بدون ملفات وسيطة** – يحدث التحويل في الذاكرة، مما يقلل من عبء الإدخال/الإخراج ويسرّع المعالجة الدفعية. + +### النتيجة المتوقعة + +بعد تشغيل السكربت، سيحتوي `output.pdf` على تمثيل دقيق لـ `input.html`. افتحه بأي عارض PDF للتحقق من أن الخطوط والصور وفواصل الصفحات مطابقة للصفحة الأصلية على الويب. + +![Conversion diagram](https://example.com/conversion-diagram.png "Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter") + +*(نص بديل للصورة: مخطط يوضح تحويل ملفات HTML وEPUB إلى PDF باستخدام Aspose HTML Converter)* + +--- + +## إنشاء PDF من HTML بإعدادات مخصصة + +أحيانًا تحتاج إلى التحكم في حجم الصفحة أو الهوامش أو تضمين خطوط معينة. يوفر Aspose.HTML فئة `PdfSaveOptions` لهذا الغرض. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*كائن `options` اختياري؛ احذفه إذا كان التخطيط الافتراضي يفي باحتياجاتك.* + +--- + +## كيفية تحويل EPUB إلى PDF في بايثون + +### الخطوة 1: تحديد مصدر EPUB + +كما هو الحال مع HTML، قدم مسار ملف EPUB الذي تريد تحويله. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### الخطوة 2: تشغيل التحويل + +طريقة `Converter.convert` نفسها تكتشف امتداد `.epub` وتنتقل إلى خط أنابيب عرض الكتب الإلكترونية. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### حالات خاصة يجب مراعاتها + +| الحالة | الإجراء الموصى به | +|----------------------------------------|-------------------| +| EPUB كبير (مئات الفصول) | تحويله على دفعات باستخدام `PdfSaveOptions.start_page` و `end_page` لتقليل استهلاك الذاكرة. | +| فقدان الخطوط في EPUB | ضبط `PdfSaveOptions.embed_standard_fonts = True` للرجوع إلى خطوط النظام. | +| EPUB محمي بكلمة مرور | استخدم `PdfLoadOptions` لتزويد كلمة المرور قبل التحويل (غير موضح هنا). | + +--- + +## مثال كامل قابل للتنفيذ + +فيما يلي سكربت واحد يجمع جميع الخطوات السابقة. احفظه باسم `convert_demo.py` وشغّله من سطر الأوامر. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +شغّل السكربت: + +```bash +python convert_demo.py +``` + +ستظهر لك ثلاث رسائل تأكيد وثلاث ملفات PDF في `YOUR_DIRECTORY`. + +--- + +## الأخطاء الشائعة وكيفية تجنّبها + +* **غياب الترخيص** – بدون ترخيص Aspose.HTML صالح، تضيف المكتبة علامة مائية إلى كل صفحة. سجّل ترخيصك مبكرًا في السكربت: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **المسارات النسبية على أنظمة تشغيل مختلفة** – استخدم `os.path.join` و `os.path.abspath` لبناء مسارات مستقلة عن المنصة. + +* **HTML كبير مع موارد خارجية** – تأكد من أن جميع ملفات CSS والصور والخطوط قابلة للوصول من نظام الملفات أو قم بتضمينها باستخدام Data URIs. وإلا قد يظهر PDF ببدائل فارغة. + +* **سلامة الخيوط** – `Converter.convert` آمن للاستخدام في خيوط متعددة، لكن إنشاء العديد من المحولات في آنٍ واحد قد يستهلك ذاكرة كبيرة. أعد استخدام كائن محول واحد إذا كنت تعالج مئات الملفات بشكل متوازي. + +--- + +## الخلاصة + +أصبح لديك الآن نهج كامل وجاهز للإنتاج **لتحويل HTML إلى PDF** و**لتحويل ملفات EPUB إلى PDF** في بايثون باستخدام **Aspose HTML Converter**. يغطي الدرس: + +* استيراد الوحدة الصحيحة. +* التحقق من صحة ملفات الإدخال. +* تنفيذ تحويل أساسي. +* تخصيص مخرجات PDF باستخدام `PdfSaveOptions`. +* التعامل مع EPUB كبير أو محمي بكلمة مرور. + +من هنا يمكنك توسيع الحل لمعالجة المجلدات دفعةً، دمج الشيفرة في نقطة نهاية Flask أو FastAPI، أو تجربة صيغ إخراج إضافية مثل DOCX أو PNG (يدعمها Aspose.HTML كذلك). + +--- + +### الخطوات التالية + +* استكشف **إنشاء PDF من HTML** للصفحات التي تعتمد على JavaScript عبر تمكين `Converter.convert` بجلسة متصفح بدون رأس. +* اجمع هذا سير العمل مع **Aspose.PDF** لمهام ما بعد المعالجة مثل دمج ملفات PDF متعددة أو إضافة توقيعات رقمية. +* اطلع على خيارات **aspose-html-converter** المتقدمة مثل `PdfSaveOptions.jpeg_quality` للمستندات التي تحتوي على صور كثيرة. + +برمجة سعيدة، واستمتع بموثوقية Aspose.HTML لجميع احتياجات تحويل المستندات الخاصة بك! + +## ما الذي يجب أن تتعلمه بعد ذلك؟ + +تغطي الدروس التالية مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مصدر يتضمن أمثلة شيفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف نهج تنفيذ بديلة في مشاريعك الخاصة. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/arabic/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..93ce8f667 --- /dev/null +++ b/html/arabic/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: تحميل HTML من ملف في بايثون بسرعة. تعلم كيفية قراءة ملف HTML باستخدام + بايثون، وتحميل HTML من عنوان URL، وإنشاء مستند HTML من سلسلة في درس واحد. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: ar +lastmod: 2026-08-12 +og_description: تحميل HTML من ملف في بايثون باستخدام فئة HTMLDocument. اتبع هذا الدليل + لقراءة ملف HTML باستخدام بايثون، وتحميل HTML من عنوان URL، وإنشاء HTMLDocument من + سلسلة نصية للتعامل القوي مع محتوى الويب. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: تحميل HTML من ملف في بايثون – دليل برمجة سريع +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: تحميل HTML من ملف في بايثون – دليل خطوة بخطوة +url: /ar/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# تحميل HTML من ملف في بايثون – دليل خطوة بخطوة + +إذا كنت بحاجة إلى **load html from file in Python**، يوضح لك هذا الدليل بالضبط كيفية القيام بذلك. ستتعلم أيضًا كيفية **read html file using python**، تحميل HTML من عنوان URL، و**create htmldocument from string** حتى تتمكن من التعامل مع أي مصدر لمحتوى HTML. + +تستخدم الأمثلة الفئة `HTMLDocument` من حزمة `html_document`، التي توفر واجهة برمجة تطبيقات موحدة للملفات المحلية، عناوين URL البعيدة، وسلاسل HTML الخام. يعمل النهج مع Python 3.8+ ويتكامل بسلاسة مع المكتبات القياسية مثل `pathlib` و `requests`. + +![لقطة شاشة لكود تحميل HTML من ملف في بايثون](image.png) + +## تحميل HTML من ملف في بايثون – مثال أساسي + +تحميل ملف HTML من نظام الملفات المحلي هو الخطوة الأولى الأكثر شيوعًا عند معالجة الصفحات الثابتة. يقبل مُنشئ `HTMLDocument` مسار الملف، يكتشف ترميز الملف تلقائيًا، ويُحلل العلامات. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**لماذا يعمل هذا:** +* `Path` يج abstracts فواصل المسارات الخاصة بنظام التشغيل، مما يجعل الكود قابلاً للنقل عبر Windows و macOS و Linux. +* `HTMLDocument` يقرأ الملف في وضع ثنائي، يكتشف BOM لـ UTF‑8 أو UTF‑16، ويعود إلى الترميز الافتراضي للنظام عند الحاجة. + +**الإخراج المتوقع (بافتراض أن HTML يحتوي على `Example`):** + +``` +Title: Example +``` + +### المشكلات الشائعة عند تحميل ملف + +* **FileNotFoundError** – تأكد من أن المسار صحيح والملف موجود. استخدم `file_path.is_file()` للتحقق مسبقًا. +* **Encoding errors** – إذا كانت الصفحة تستخدم مجموعة أحرف غير UTF‑8، مرّر `encoding="iso-8859-1"` إلى المُنشئ: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## قراءة ملف HTML باستخدام بايثون – شرح مفصل + +تظهر العبارة **read html file using python** كثيرًا عندما يحتاج المطورون إلى استخراج البيانات من صفحات الويب المحفوظة. بينما `HTMLDocument` يختصر معظم العمل، يمكنك أيضًا تحميل النص الخام وإدخاله إلى المحلل يدويًا. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**لماذا قد تختار هذا المسار:** +* تحتاج إلى معالجة HTML مسبقًا (مثل إزالة السكريبتات) قبل التحليل. +* تريد تخزين العلامات الخام مؤقتًا لإعادة استخدامها لاحقًا دون إعادة قراءة الملف. + +## تحميل HTML من URL – جلب الصفحات البعيدة + +تحميل HTML مباشرةً من عنوان ويب يوسع سير العمل إلى المحتوى الحي. خطوة **load html from url** تعتمد على مكتبة `requests` لمعالجة HTTP ثم تُمرر نص الاستجابة إلى `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**لماذا يعمل هذا:** +* `requests.get` يتبع عمليات إعادة التوجيه ويتعامل مع HTTPS تلقائيًا. +* `response.raise_for_status()` يضمن أن يتم تحليل الاستجابات الناجحة فقط، مما يمنع الفشل الصامت. + +**حالات خاصة:** +* **Slow network** – اضبط معامل `timeout` أو استخدم `requests.Session` لتجميع الاتصالات. +* **Non‑HTML content** – تحقق من رأس `Content-Type` (`response.headers["Content-Type"]`) قبل التحليل. + +## إنشاء htmldocument من سلسلة – العمل مع HTML الخام + +أحيانًا تقوم بإنشاء HTML ديناميكيًا (مثلًا من محرك قوالب) وتحتاج إلى التعامل معه كوثيقة دون كتابته إلى القرص. عملية **create htmldocument from string** بسيطة. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**لماذا هذا مفيد:** +* يلغي الحاجة إلى ملفات مؤقتة، مما يحسن الأداء في بيئات الخوادم بدون خادم. +* يتيح لك التحقق من صحة العلامات المُنشأة قبل إرسالها إلى العميل أو تخزينها. + +**نصائح لمعالجة السلاسل:** +* استخدم السلاسل الثلاثية الاقتباس للحفاظ على قابلية قراءة العلامات. +* إذا كان HTML يحتوي على أحرف Unicode، تأكد من حفظ ملف المصدر بترميز UTF‑8. + +## مثال كامل من البداية إلى النهاية + +جمع جميع استراتيجيات التحميل الأربعة معًا يوضح خط أنابيب مرن يمكنه التبديل بين المصادر المحلية، البعيدة، والذاكرة. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**ما يوضح هذا الكود:** + +* فئة `HTMLDocument` واحدة تتعامل مع جميع أنواع الإدخال، مما يقلل مساحة واجهة برمجة التطبيقات. +* الدوال المساعدة تغلف معالجة الأخطاء وتجعل الكود المستدعي مختصرًا. +* النمط يتوسع لمعالجة الدفعات: تكرار عبر قائمة من مسارات الملفات أو عناوين URL وإدخال كل وثيقة إلى أداة استخراج أو محول. + +## الخلاصة + +أنت الآن تعرف كيفية **load html from file in Python** باستخدام فئة `HTMLDocument`، وكيفية **read html file using + +## ماذا يجب أن تتعلم بعد ذلك؟ + +الدروس التالية تغطي مواضيع ذات صلة وثيقة تبني على التقنيات الموضحة في هذا الدليل. كل مورد يتضمن أمثلة شفرة كاملة مع شروحات خطوة بخطوة لمساعدتك على إتقان ميزات API إضافية واستكشاف نهج تنفيذ بديلة في مشاريعك. + +- [تحميل مستندات HTML من URL في Aspose.HTML للـ Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [تحميل مستندات HTML من تدفق مع Aspose.HTML للـ Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [حفظ مستند HTML إلى ملف في Aspose.HTML للـ Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/chinese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..fc4ea4526 --- /dev/null +++ b/html/chinese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,250 @@ +--- +category: general +date: 2026-08-12 +description: 使用 Python 将 HTML 转换为 Markdown。学习命令行工作流,将网页转换为 Markdown 并实现文档自动化。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: zh +lastmod: 2026-08-12 +og_description: 使用 Python 将 HTML 转换为 Markdown。本教程展示了一种命令行解决方案,能够快速且可靠地将网页转换为 Markdown。 +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: 使用 Python 将 HTML 转换为 Markdown – 步骤指南 +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: 使用 Python 将 HTML 转换为 Markdown —— 完整编程指南 +url: /zh/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Python 将 HTML 转换为 Markdown – 完整编程指南 + +如果您需要 **convert HTML to Markdown**,本指南为您展示一个可直接运行的解决方案。您将看到一个简短的 Python 脚本如何将任意 HTML 文件转换为干净的、Git 风格的 Markdown,以及如何在命令行中调用相同的逻辑。 + +将网页转换为 Markdown 是构建静态文档站点或为版本控制仓库准备内容的常见步骤。完成本教程后,您将拥有一个可重复使用的命令行工具,能够处理 HTML 编码、保留链接,并遵循 Git 风格的 Markdown 约定。 + +## 前提条件 + +* 在系统上安装了 Python 3.9 或更高版本。 +* `groupdocs-conversion` Python 包(或任何提供 `HTMLDocument`、`MarkdownSaveOptions` 和 `Converter` 的库)。使用以下方式安装: + +```bash +pip install groupdocs-conversion +``` + +* 包含要处理的源 `input.html` 文件的文件夹。 + +以下章节将逐步演示每一步,解释其重要性,并提供您所需的完整代码。 + +## 步骤 1:设置环境 + +创建隔离的虚拟环境可以防止依赖冲突,并使命令行工具可移植。 + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*此步骤的原因?* +虚拟环境将 `groupdocs-conversion` 包与其他项目隔离,确保 `convert html to markdown command line` 实用程序使用您测试过的确切版本运行。 + +## 步骤 2:编写转换脚本 + +创建一个名为 `html_to_md.py` 的文件并粘贴以下代码。该脚本接受三个参数:输入 HTML 路径、输出 Markdown 路径,以及一个可选标志用于选择 Git 风格的格式化器。 + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### 脚本说明 + +| 部分 | 目的 | +|---------|---------| +| **Argument parsing** | 启用 **convert html to markdown command line** 的使用模式。 | +| **HTMLDocument** | 加载源文件;库抽象了字符编码和 DOM 解析。 | +| **MarkdownSaveOptions** | 允许在普通 Markdown 与 Git 风格的 Markdown(`--git` 标志)之间切换。 | +| **Converter.convert_html** | 执行核心工作——遍历 HTML 树,转换标签,并写入输出文件。 | +| **Error handling** | 提供明确的成功/失败信息,这对于 CI 流水线至关重要。 | + +## 步骤 3:从命令行运行转换 + +保存脚本后,您可以使用单个命令转换任意 HTML 文件: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**预期输出** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +在文本编辑器中打开 `output.md`;您会看到标题、列表和链接以干净的 Markdown 语法呈现。由于我们使用了 Git 格式化器,表格使用管道符(`|`)分隔,任务列表使用 `- [ ]` 语法,GitHub 和 GitLab 能原生渲染这些内容。 + +## 步骤 4:将工具集成到自动化流水线 + +如果您在仓库中维护文档,可以将转换步骤添加到 CI 工作流中。下面是一个在每次 push 时运行的 GitHub Actions 作业示例: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*此步骤的重要性* – 自动化 **convert web page to markdown** 步骤可确保文档与源 HTML 文件保持同步,无需人工操作。 + +## 边缘情况和最佳实践提示 + +* **编码问题** – 如果您的 HTML 包含非 UTF‑8 字符,请在创建 `HTMLDocument` 时传入显式编码(例如 `HTMLDocument(input_path, encoding='utf-8')`)。 +* **大文件** – 对于大于 50 MB 的 HTML 文件,考虑使用流式转换以避免内存峰值。库提供了 `convert_html_stream` 方法来处理此场景。 +* **自定义 CSS 处理** – 转换器默认会剥离 style 属性。如果需要保留特定格式,请启用 `md_opts.preserveFormatting = True`。 +* **命令行快捷方式** – 创建一个小的包装脚本 (`html2md`),将参数转发给 `html_to_md.py`。将其放置在 `$HOME/.local/bin` 并添加到 `PATH`,即可获得更简短的 **convert html to markdown command line** 使用体验。 + +## 常见问题 + +**此脚本是否在 Windows、macOS 和 Linux 上均可运行?** +是的。该脚本仅依赖跨平台的 `groupdocs-conversion` 包和标准的 Python 库,因此在这三种操作系统上均可不做修改地运行。 + +**我可以直接转换远程网页吗?** +您可以使用 `requests` 获取页面,并将 HTML 字符串传递给 `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**如果我只需要将 HTML 转换为 GitHub 风格的 Markdown,该怎么办?** +只需始终传入 `--git` 标志;格式化器会生成兼容 GitHub、GitLab 和 Bitbucket 的输出。 + +## 结论 + +您现在拥有一个强大的 **convert HTML to Markdown** 解决方案,可通过 Python 脚本和命令行使用。本教程涵盖了环境搭建、完整源码、命令行用法、CI 集成以及实用的边缘情况处理。 + +接下来,您可以探索 **convert markdown to HTML**,尝试使用 Pandoc 实现高级转换选项,或添加 front‑matter 生成器,将元数据直接嵌入 Markdown 文件中。这些扩展都基于您刚刚掌握的核心概念。 + +祝转换愉快! + +## 接下来您可以学习什么? + +以下教程涵盖与本指南技术密切相关的主题,构建在本教程展示的技巧之上。每个资源都包含完整的可运行代码示例和逐步说明,帮助您掌握更多 API 功能并在项目中探索替代实现方案。 + +- [在 Aspose.HTML for Java 中将 HTML 转换为 Markdown](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [在 .NET 中使用 Aspose.HTML 将 HTML 转换为 Markdown](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/chinese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..201f1d42a --- /dev/null +++ b/html/chinese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: 使用 GroupDocs.Viewer 在 Python 中将 HTML 转换为 PDF。了解如何使用灵活的 HTML 转 PDF 选项将 + HTML 保存为 PDF,以实现精确控制。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: zh +lastmod: 2026-08-12 +og_description: 使用 GroupDocs.Viewer 将 HTML 转换为 PDF。本指南向您展示如何将 HTML 保存为 PDF,如何配置 HTML + 转 PDF 选项,以及如何可靠地处理大型文档。 +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: 将HTML转换为PDF——一步一步的Python教程 +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: 在Python中将HTML转换为PDF——完整编程指南 +url: /zh/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 Python 中将 HTML 转换为 PDF – 完整编程指南 + +如果你需要在 Python 项目中 **将 HTML 转换为 PDF**,本指南提供了一个可直接运行的解决方案。我们将演示如何安装 Viewer 库、配置 **html to pdf options**,以及仅用几行代码 **save HTML as PDF**。 + +在转换 HTML 文档时,通常需要处理图片、CSS、JavaScript 等关联资源。阅读完本教程后,你将了解如何限制资源嵌套深度、避免内存激增,并生成与原页面布局一致的干净 PDF 文件。 + +## 前置条件 + +- Python 3.8 或更高版本 +- `pip`(Python 包管理器) +- 需要转换的 HTML 文件(例如 `large_page.html`) + +无需额外的系统库,因为 GroupDocs.Viewer 已捆绑所有必要的渲染引擎。 + +## 步骤 1:安装 GroupDocs.Viewer for Python + +GroupDocs.Viewer 提供对多种格式(包括 HTML)到 PDF 的高保真转换。使用以下命令进行安装: + +```bash +pip install groupdocs-viewer +``` + +> **专业提示:** 使用虚拟环境(`python -m venv .venv`)可以将依赖与其他项目隔离。 + +## 步骤 2:配置 **html to pdf options** – 限制资源嵌套深度 + +大型 HTML 页面可能包含深度嵌套的资源(iframe、CSS 导入等)。设置最大处理深度可防止转换器无限递归,并保持内存使用可预测。 + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth` 属性告诉 Viewer 应该跟随多少层级的关联资源。深度设为 `3` 对大多数网页效果良好,同时仍能保留必要的图片和样式。 + +## 步骤 3:加载要 **convert HTML to PDF** 的 HTML 文档 + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` 会自动检测文件格式,无需手动实例化 `HtmlDocument`。此步骤准备了转换器将要处理的内部表示。 + +## 步骤 4:使用已配置的 **html to pdf options** **Save HTML as PDF** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions` 对象封装了所有 PDF 特定设置,包括前面定义的 `resource_handling_options`。当调用 `viewer.save` 时,HTML 页面被渲染,资源会在允许的深度范围内处理,最终 PDF 写入 `output_path`。 + +### 预期结果 + +脚本执行完毕后,`output.pdf` 将忠实呈现 `large_page.html`。使用任意阅读器(Adobe Reader、Chrome 等)打开 PDF,检查以下内容: + +- 图片、表格和基本 CSS 样式均正确显示。 +- 没有因资源递归过深而产生的意外空白页。 + +## 处理边缘情况和常见变体 + +| 情况 | 推荐的调整 | +|-----------|-------------------| +| **HTML 包含外部字体** | 添加 `pdf_options.embed_all_fonts = True` 以确保字体嵌入 PDF。 | +| **需要特定页面尺寸** | 设置 `pdf_options.page_width` 和 `pdf_options.page_height`(例如 A4:`595, 842`)。 | +| **大文件导致内存不足** | 降低 `resource_options.max_handling_depth`,或将 HTML 拆分为更小的片段分别转换。 | +| **想要为 PDF 设置密码** | 在调用 `save` 前使用 `pdf_options.password = "YourSecret"`。 | + +这些调整展示了 **html to pdf options** 的灵活性,帮助你根据具体需求定制转换过程。 + +## 可直接复制的完整脚本 + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +运行脚本: + +```bash +python convert_html_to_pdf.py +``` + +你应当看到确认信息,并在指定目录中找到 `output.pdf`。 + +## 常见问题 + +**问:可以使用远程 URL 而不是本地文件吗?** +答:可以。将 URL 字符串传给 `Viewer`(例如 `Viewer("https://example.com/page.html")`),Viewer 会先下载页面再应用 **html to pdf options**。 + +**问:能批量转换多个 HTML 文件吗?** +答:可以。将转换代码放入循环,遍历文件路径列表。为提高效率,可复用同一个 `resource_options` 和 `pdf_options` 实例。 + +**问:如果 HTML 使用 JavaScript 动态修改 DOM,怎么办?** +答:GroupDocs.Viewer 只渲染静态 HTML,**不**执行 JavaScript。对于动态页面,可先使用无头浏览器(如 Selenium)渲染页面,然后将生成的静态 HTML 交给转换器。 + +## 结论 + +现在你已经掌握了一套完整、可投入生产的 **convert HTML to PDF** 方法。通过配置 **resource handling**,你可以控制关联资源的处理深度;而 `PdfSaveOptions` 则让你能够 **save HTML as PDF** 并细粒度地使用 **html to pdf options**。尝试可选设置(如字体嵌入、页面尺寸),以满足你的应用的精确需求。 + +--- + +*后续步骤*:探索带密码保护的 **save HTML document pdf**,或将此转换集成到基于 Flask 或 FastAPI 的 Web API 中,实现按需 PDF 生成。 + +## 接下来你应该学习什么? + +以下教程与本指南所示技术密切相关,帮助你进一步掌握 API 功能并探索项目中的其他实现方式。 + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/chinese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..8519162a6 --- /dev/null +++ b/html/chinese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,343 @@ +--- +category: general +date: 2026-08-12 +description: 使用 Aspose HTML Converter 在 Python 中将 HTML 转换为 PDF。了解如何仅用几行代码将 HTML 生成 + PDF,以及如何将 EPUB 转换为 PDF。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: zh +lastmod: 2026-08-12 +og_description: 使用 Aspose HTML Converter 在 Python 中将 HTML 转换为 PDF。本教程展示了如何从 HTML 生成 + PDF,以及如何使用清晰、可运行的代码将 EPUB 转换为 PDF。 +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: 使用 Aspose HTML Converter 在 Python 中将 HTML 转换为 PDF – 快速指南 +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: 使用 Aspose HTML Converter 在 Python 中将 HTML 转换为 PDF +url: /zh/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose HTML Converter 将 HTML 转换为 PDF(Python) + +如果您需要快速**将 HTML 转换为 PDF**,本指南将向您展示如何使用 Aspose.HTML Python 库完成此操作。无论您是构建将用户提交的页面转换为可打印 PDF 的 Web 服务,还是自动化报告生成,下面的步骤都提供了一个完整、可直接运行的解决方案。 + +除了 HTML,Aspose.HTML 还支持电子书格式,您将看到**如何将 EPUB 文件转换为 PDF**,无需离开 Python。完成本教程后,您将能够**从 HTML 生成 PDF**,并仅用几行代码为 EPUB 电子书创建 PDF 版本。 + +## 前置条件 + +在开始之前,请确保您具备: + +* 已安装 Python 3.8 或更高版本。 +* 有效的 Aspose.HTML for Python 许可证(免费试用可用于评估)。 +* `pip` 可用于安装 `aspose-html` 包。 +* 您想要转换的示例 HTML 或 EPUB 文件。 + +```bash +pip install aspose-html +``` + +> **小贴士:** 在虚拟环境中安装该包,以保持依赖隔离。 + +## 转换过程概述 + +Aspose.HTML 提供了一个 `Converter` 类,用于抽象将 HTML、CSS 和电子书内容渲染为 PDF 的细节。工作流程如下: + +1. 导入 `Converter` 类。 +2. 调用 `Converter.convert(source_path, target_path)`。 +3. (可选)调整转换设置,例如页面尺寸或字体嵌入。 + +库会根据文件扩展名自动检测源格式,因此相同的方法可用于 HTML 和 EPUB 文件。 + +--- + +## 使用 Aspose HTML Converter 将 HTML 转换为 PDF + +### 步骤 1:导入 Aspose HTML 转换模块 + +`Converter` 类位于 `aspose.html` 命名空间。请在脚本顶部导入它。 + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### 步骤 2:准备输入和输出路径 + +使用脚本能够读取/写入的绝对路径或相对路径。最好在尝试转换之前验证源文件是否存在。 + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### 步骤 3:执行转换 + +调用 `Converter.convert` 完成所有繁重工作:渲染 HTML、应用 CSS 并写入 PDF 文件。 + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### 为什么这样有效 + +* **自动布局引擎** – Aspose.HTML 使用基于 Chromium 的渲染引擎,确保能够正确处理现代 CSS、SVG 和 JavaScript。 +* **无中间文件** – 转换在内存中完成,降低 I/O 开销并加快批处理速度。 + +### 预期输出 + +运行脚本后,`output.pdf` 将忠实呈现 `input.html` 的内容。使用任意 PDF 查看器打开,以验证字体、图像和分页是否与原始网页匹配。 + +![转换示意图](https://example.com/conversion-diagram.png "展示使用 Aspose HTML Converter 将 HTML 和 EPUB 文件转换为 PDF 的示意图") + +*(图片替代文字:展示使用 Aspose HTML Converter 将 HTML 和 EPUB 文件转换为 PDF 的示意图)* + +--- + +## 使用自定义设置从 HTML 生成 PDF + +有时您需要控制页面尺寸、边距或嵌入特定字体。Aspose.HTML 为此提供了 `PdfSaveOptions` 类。 + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*`options` 对象是可选的;如果您对默认布局满意,可省略它。* + +--- + +## 如何在 Python 中将 EPUB 转换为 PDF + +### 步骤 1:定位 EPUB 源文件 + +与 HTML 类似,提供要转换的 EPUB 文件路径。 + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### 步骤 2:运行转换 + +相同的 `Converter.convert` 方法会检测 `.epub` 扩展名并切换到电子书渲染管道。 + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### 需要考虑的边缘情况 + +| 情况 | 推荐处理方式 | +|---|---| +| 大型 EPUB(数百章) | 使用 `PdfSaveOptions.start_page` 和 `end_page` 分块转换,以限制内存使用。 | +| EPUB 中缺少字体 | 设置 `PdfSaveOptions.embed_standard_fonts = True` 以回退到系统字体。 | +| 受密码保护的 EPUB | 使用 `PdfLoadOptions` 在转换前提供密码(此处未示例)。 | + +--- + +## 完整、可运行的示例 + +下面是一个整合上述所有步骤的单脚本。将其保存为 `convert_demo.py` 并在命令行运行。 + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +运行脚本: + +```bash +python convert_demo.py +``` + +您应该会看到三条确认信息,并在 `YOUR_DIRECTORY` 中生成三个 PDF 文件。 + +--- + +## 常见陷阱及避免方法 + +* **缺少许可证** – 如果没有有效的 Aspose.HTML 许可证,库会在每页添加水印。请在脚本中尽早注册许可证: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **不同操作系统上的相对路径** – 使用 `os.path.join` 和 `os.path.abspath` 构建跨平台路径。 + +* **包含外部资源的大型 HTML** – 确保所有 CSS、图像和字体在文件系统中可访问,或使用 data URI 嵌入。否则 PDF 可能出现空白占位符。 + +* **线程安全** – `Converter.convert` 是线程安全的,但同时创建多个转换器会消耗大量内存。如果并行处理数百个文件,请复用单个转换器实例。 + +--- + +## 结论 + +您现在拥有一个完整、可用于生产环境的方案,使用 **Aspose HTML Converter** 在 Python 中**将 HTML 转换为 PDF**以及**将 EPUB 文件转换为 PDF**。本教程涵盖了: + +* 导入正确的模块。 +* 验证输入文件。 +* 执行基本转换。 +* 使用 `PdfSaveOptions` 自定义 PDF 输出。 +* 处理大型或受密码保护的 EPUB。 + +从此您可以将该方案扩展为批量处理文件夹、集成到 Flask 或 FastAPI 接口,或尝试其他输出格式,如 DOCX 或 PNG(Aspose.HTML 也支持这些格式)。 + +### 下一步 + +* 通过在无头浏览器会话中启用 `Converter.convert`,探索使用 JavaScript 驱动页面的 **generate PDF from HTML**。 +* 将此工作流与 **Aspose.PDF** 结合,用于合并多个 PDF 或添加数字签名等后处理任务。 +* 查看 **aspose-html-converter** 的高级选项,如针对图像密集文档的 `PdfSaveOptions.jpeg_quality`。 + +祝编码愉快,尽情享受 Aspose.HTML 在所有文档转换需求中的可靠性! + +--- + +## 接下来应该学习什么? + +以下教程涵盖与本指南技术紧密相关的主题,帮助您进一步学习。每个资源都提供完整的可运行代码示例和逐步解释,帮助您掌握更多 API 功能并在项目中探索替代实现方案。 + +- [使用 Aspose.HTML 将 HTML 转换为 PDF – 完整操作指南](/html/english/) +- [使用 Aspose.HTML 在 .NET 中将 EPUB 转换为 PDF](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/chinese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..9f6a6660d --- /dev/null +++ b/html/chinese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: 在 Python 中快速加载 HTML 文件。学习如何使用 Python 读取 HTML 文件、从 URL 加载 HTML,以及在单个教程中从字符串创建 + HTML 文档。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: zh +lastmod: 2026-08-12 +og_description: 使用 HTMLDocument 类在 Python 中从文件加载 HTML。请按照本指南使用 Python 读取 HTML 文件、从 + URL 加载 HTML,并从字符串创建 HTMLDocument,以实现强大的网页内容处理。 +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: 在 Python 中从文件加载 HTML – 快速编程指南 +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: 在 Python 中从文件加载 HTML – 步骤指南 +url: /zh/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 Python 中从文件加载 HTML – 步骤指南 + +如果你需要 **在 Python 中从文件加载 HTML**,本指南将为你展示完整步骤。你还将学习如何 **使用 python 读取 html 文件**、从 URL 加载 HTML,以及 **从字符串创建 htmldocument**,从而处理任何来源的 HTML 内容。 + +示例使用 `html_document` 包中的 `HTMLDocument` 类,该类为本地文件、远程 URL 和原始 HTML 字符串提供统一的 API。此方法适用于 Python 3.8+,并能与标准库如 `pathlib` 和 `requests` 无缝集成。 + +![在 Python 中从文件加载 HTML 的代码截图](image.png) + +## 在 Python 中从文件加载 HTML – 基础示例 + +从本地文件系统加载 HTML 文件是处理静态页面时最常见的第一步。`HTMLDocument` 构造函数接受文件路径,自动检测文件编码并解析标记。 + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**工作原理说明:** +* `Path` 抽象了操作系统特定的路径分隔符,使代码在 Windows、macOS 和 Linux 上均可移植。 +* `HTMLDocument` 以二进制模式读取文件,检测 UTF‑8 或 UTF‑16 BOM,并在必要时回退到系统默认编码。 + +**预期输出(假设 HTML 包含 `Example`):** + +``` +Title: Example +``` + +### 加载文件时的常见陷阱 + +* **FileNotFoundError** – 确认路径正确且文件存在。可使用 `file_path.is_file()` 进行预检查。 +* **编码错误** – 如果页面使用非 UTF‑8 字符集,请向构造函数传入 `encoding="iso-8859-1"`:`HTMLDocument(file_path, encoding="iso-8859-1")`。 + +## 使用 python 读取 html 文件 – 详细说明 + +开发者在需要从已保存的网页中提取数据时,常会搜索 **read html file using python**。虽然 `HTMLDocument` 已封装大部分工作,你仍可以手动加载原始文本并将其传递给解析器。 + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**选择此方式的原因:** +* 需要在解析前对 HTML 进行预处理(例如去除脚本)。 +* 想要缓存原始标记以便后续复用,而无需再次读取文件。 + +## 从 URL 加载 html – 获取远程页面 + +直接从网络地址加载 HTML 可以将工作流扩展到实时内容。**load html from url** 步骤依赖 `requests` 库进行 HTTP 处理,然后将响应文本交给 `HTMLDocument`。 + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**工作原理说明:** +* `requests.get` 自动跟随重定向并默认支持 HTTPS。 +* `response.raise_for_status()` 确保仅在成功响应时进行解析,防止静默失败。 + +**边缘情况处理:** +* **网络慢** – 调整 `timeout` 参数或使用 `requests.Session` 实现连接池。 +* **非 HTML 内容** – 在解析前检查 `Content-Type` 头部 (`response.headers["Content-Type"]`)。 + +## 从字符串创建 htmldocument – 处理原始 HTML + +有时你会动态生成 HTML(例如通过模板引擎),并希望在不写入磁盘的情况下将其视为文档。**create htmldocument from string** 操作非常直接。 + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**此方式的优势:** +* 消除临时文件的需求,提升无服务器环境下的性能。 +* 在将生成的标记发送给客户端或存储之前进行验证。 + +**字符串处理技巧:** +* 使用三引号字符串保持标记的可读性。 +* 若 HTML 包含 Unicode 字符,确保源文件以 UTF‑8 编码保存。 + +## 完整端到端示例 + +将上述四种加载策略组合在一起,展示了一个灵活的管道,能够在本地、远程和内存中的来源之间自由切换。 + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**代码展示的要点:** + +* 单一的 `HTMLDocument` 类处理所有输入类型,降低 API 接口复杂度。 +* 辅助函数封装错误处理,使调用代码简洁。 +* 该模式可扩展至批量处理:遍历文件路径或 URL 列表,将每个文档传入爬虫或转换器。 + +## 结论 + +现在你已经掌握了如何使用 `HTMLDocument` 类 **在 Python 中从文件加载 HTML**,以及如何 **read html file using**(未完)。 + + +## 接下来该学习什么? + +以下教程涵盖了与本指南技术紧密相关的主题,帮助你进一步掌握 API 功能并探索在项目中的替代实现方式。每个资源都提供完整的可运行代码示例和逐步解释。 + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/czech/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..f57195b03 --- /dev/null +++ b/html/czech/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-08-12 +description: Převod HTML na Markdown pomocí Pythonu. Naučte se workflow v příkazovém + řádku pro převod webové stránky na Markdown a automatizaci dokumentace. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: cs +lastmod: 2026-08-12 +og_description: Převod HTML na Markdown pomocí Pythonu. Tento tutoriál vám ukazuje + řešení v příkazovém řádku pro rychlý a spolehlivý převod webové stránky na Markdown. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Převod HTML na Markdown pomocí Pythonu – průvodce krok za krokem +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Převod HTML na Markdown pomocí Pythonu – kompletní programovací průvodce +url: /cs/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Převod HTML na Markdown pomocí Pythonu – kompletní programovací průvodce + +Pokud potřebujete **převést HTML na Markdown**, tento průvodce vám ukáže připravené řešení. Uvidíte, jak krátký Python skript převádí libovolný HTML soubor na čistý, Git‑flavored Markdown, a jak můžete stejnou logiku spustit z příkazové řádky. + +Převod webových stránek na Markdown je běžný krok při tvorbě statických dokumentačních stránek nebo při přípravě obsahu pro repozitáře s verzovacím systémem. Na konci tohoto tutoriálu budete mít znovupoužitelný nástroj pro příkazovou řádku, který řeší kódování HTML, zachovává odkazy a respektuje konvence Git‑flavored Markdown. + +## Požadavky + +Než začnete, ujistěte se, že máte: + +* Python 3.9 nebo novější nainstalovaný ve vašem systému. +* Python balíček `groupdocs-conversion` (nebo jakoukoli knihovnu, která poskytuje `HTMLDocument`, `MarkdownSaveOptions` a `Converter`). Nainstalujte jej pomocí: + +```bash +pip install groupdocs-conversion +``` + +* Složku, která obsahuje zdrojový soubor `input.html`, který chcete zpracovat. + +Následující sekce vás provedou každým krokem, vysvětlí, proč je důležitý, a poskytnou přesný kód, který potřebujete. + +## Krok 1: Nastavení prostředí + +Vytvoření izolovaného virtuálního prostředí zabraňuje konfliktům závislostí a činí nástroj pro příkazovou řádku přenosným. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Proč je tento krok důležitý?* +Virtuální prostředí izoluje balíček `groupdocs-conversion` od ostatních projektů, což zajišťuje, že nástroj **convert html to markdown command line** běží s přesně těmi verzemi, které jste otestovali. + +## Krok 2: Napsání skriptu pro konverzi + +Vytvořte soubor s názvem `html_to_md.py` a vložte do něj následující kód. Skript přijímá tři argumenty: cestu k vstupnímu HTML, cestu k výstupnímu Markdownu a volitelný příznak pro výběr Git‑flavored formátovače. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Vysvětlení skriptu + +| Sekce | Účel | +|---------|---------| +| **Argument parsing** | Umožňuje použití vzoru **convert html to markdown command line**. | +| **HTMLDocument** | Načte zdrojový soubor; knihovna abstrahuje kódování znaků a parsování DOM. | +| **MarkdownSaveOptions** | Umožňuje přepínat mezi prostým a Git‑flavored Markdownem (`--git` flag). | +| **Converter.convert_html** | Vykonává těžkou práci – prochází strom HTML, převádí značky a zapisuje výstupní soubor. | +| **Error handling** | Poskytuje jasnou zprávu o úspěchu/neúspěchu, což je zásadní pro CI pipeline. | + +## Krok 3: Spuštění konverze z příkazové řádky + +Po uložení skriptu můžete převést libovolný HTML soubor jediným příkazem: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Očekávaný výstup** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Otevřete `output.md` v textovém editoru; uvidíte nadpisy, seznamy a odkazy vykreslené v čisté syntaxi Markdownu. Protože jsme použili Git formátovač, tabulky se zobrazují s oddělovači (`|`) a úkolové seznamy používají syntaxi `- [ ]`, kterou GitHub a GitLab renderují nativně. + +## Krok 4: Integrace nástroje do automatizačních pipeline + +Pokud spravujete dokumentaci v repozitáři, můžete krok konverze přidat do CI workflow. Níže je příklad úlohy pro GitHub Actions, která se spouští při každém pushi: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Proč je to důležité* – Automatizace kroku **convert web page to markdown** zajišťuje, že vaše dokumentace zůstane synchronizovaná se zdrojovými HTML soubory bez ručního zásahu. + +## Okrajové případy a tipy pro nejlepší praxi + +* **Problémy s kódováním** – Pokud vaše HTML obsahuje znaky mimo UTF‑8, předávejte explicitní kódování při vytváření `HTMLDocument` (např. `HTMLDocument(input_path, encoding='utf-8')`). +* **Velké soubory** – Pro HTML soubory větší než 50 MB zvažte streamování konverze, aby nedošlo k výkyvům paměti. Knihovna poskytuje metodu `convert_html_stream` pro tento scénář. +* **Zpracování vlastního CSS** – Konvertor ve výchozím nastavení odstraňuje atributy stylu. Pokud potřebujete zachovat konkrétní formátování, povolte `md_opts.preserveFormatting = True`. +* **Zkratka pro příkazovou řádku** – Vytvořte malý wrapper skript (`html2md`), který předává argumenty do `html_to_md.py`. Umístěte jej do `$HOME/.local/bin` a přidejte do svého `PATH` pro ještě kratší zážitek s **convert html to markdown command line**. + +## Často kladené otázky + +**Funguje to na Windows, macOS a Linuxu?** +Ano. Skript závisí pouze na multiplatformním balíčku `groupdocs-conversion` a standardních knihovnách Pythonu, takže běží beze změn na všech třech OS. + +**Mohu převést vzdálenou webovou stránku přímo?** +Můžete načíst stránku pomocí `requests` a předat HTML řetězec do `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Co když potřebuji jen HTML → GitHub‑flavored Markdown?** +Jednoduše vždy předávejte příznak `--git`; formátovač vytvoří výstup kompatibilní s GitHub, GitLab a Bitbucket. + +## Závěr + +Nyní máte robustní řešení **convert HTML to Markdown**, které funguje jak ze skriptu v Pythonu, tak z příkazové řádky. Tutoriál pokryl nastavení prostředí, kompletní zdrojový kód, použití z příkazové řádky, integraci do CI a praktické řešení okrajových případů. + +Dále můžete zkoumat **convert markdown to HTML**, experimentovat s Pandoc pro pokročilé možnosti konverze nebo přidat generátor front‑matter pro vložení metadat přímo do Markdown souborů. Každé z těchto rozšíření staví na základních konceptech, které jste právě zvládli. + +Šťastný převod! + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto průvodci. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, aby vám pomohl zvládnout další funkce API a prozkoumat alternativní implementační přístupy ve vašich projektech. + +- [Convert HTML to Markdown in Aspose.HTML for Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Convert HTML to Markdown in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/czech/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..ce7d9e70d --- /dev/null +++ b/html/czech/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Převod HTML do PDF v Pythonu pomocí GroupDocs.Viewer. Zjistěte, jak uložit + HTML jako PDF s flexibilními možnostmi převodu HTML na PDF pro přesnou kontrolu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: cs +lastmod: 2026-08-12 +og_description: Převod HTML na PDF pomocí GroupDocs.Viewer. Tento průvodce vám ukáže, + jak uložit HTML jako PDF, nakonfigurovat možnosti převodu HTML na PDF a spolehlivě + pracovat s velkými dokumenty. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Převod HTML na PDF – krok za krokem Python tutoriál +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Převod HTML do PDF v Pythonu – kompletní programovací průvodce +url: /cs/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Převod HTML do PDF v Pythonu – kompletní programovací průvodce + +Pokud potřebujete **převést HTML do PDF** v projektu Python, tento průvodce vám ukáže připravené řešení. Provedeme vás instalací knihovny viewer, konfigurací **html to pdf options** a nakonec **save HTML as PDF** pomocí několika řádků kódu. + +Převod HTML dokumentů často zahrnuje zpracování propojených zdrojů, jako jsou obrázky, CSS nebo JavaScript. Na konci tohoto tutoriálu budete rozumět, jak omezit vnoření zdrojů, vyhnout se špičkám paměti a vytvořit čistý PDF soubor, který odpovídá původnímu rozložení stránky. + +## Požadavky + +- Python 3.8 nebo novější +- `pip` (instalátor balíčků Pythonu) +- Přístup k HTML souboru, který chcete převést (např. `large_page.html`) + +Žádné další systémové knihovny nejsou vyžadovány, protože GroupDocs.Viewer obsahuje všechny potřebné renderovací enginy. + +## Krok 1: Instalace GroupDocs.Viewer pro Python + +GroupDocs.Viewer poskytuje vysoce věrný převod z mnoha formátů, včetně HTML, do PDF. Nainstalujte jej pomocí: + +```bash +pip install groupdocs-viewer +``` + +> **Tip:** Použijte virtuální prostředí (`python -m venv .venv`), aby byly závislosti izolovány od ostatních projektů. + +## Krok 2: Konfigurace **html to pdf options** – omezení hloubky vnoření zdrojů + +Velké HTML stránky mohou obsahovat hluboce vnořené zdroje (iframes, importy CSS atd.). Nastavení maximální hloubky zpracování zabraňuje konvertoru v nekonečném rekurzivním procházení a udržuje předvídatelnou spotřebu paměti. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Vlastnost `max_handling_depth` říká vieweru, kolik úrovní propojených zdrojů má sledovat. Hloubka `3` funguje dobře pro většinu webových stránek a zároveň zachovává potřebné obrázky a styly. + +## Krok 3: Načtěte HTML dokument, který chcete **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstrahuje detekci formátu souboru, takže není nutné ručně vytvářet instanci `HtmlDocument`. Tento krok připraví interní reprezentaci, se kterou bude konvertor pracovat. + +## Krok 4: **Save HTML as PDF** pomocí nakonfigurovaných **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Objekt `PdfSaveOptions` obsahuje všechna nastavení specifická pro PDF, včetně `resource_handling_options`, které jsme definovali dříve. Když se spustí `viewer.save`, HTML stránka se vykreslí, zdroje se zpracují až do povolené hloubky a výsledné PDF se zapíše do `output_path`. + +### Očekávaný výsledek + +Po dokončení skriptu `output.pdf` obsahuje věrnou reprezentaci `large_page.html`. Otevřete PDF v libovolném prohlížeči (Adobe Reader, Chrome atd.) a ověřte, že: + +- Obrázky, tabulky a základní CSS styly se zobrazují správně. +- Žádné neočekávané prázdné stránky způsobené hlubokou rekurzí zdrojů. + +## Řešení okrajových případů a běžných variant + +| Situace | Doporučená úprava | +|-----------|-------------------| +| **HTML obsahuje externí fonty** | Přidejte `pdf_options.embed_all_fonts = True`, aby byly fonty vloženy do PDF. | +| **Potřebujete konkrétní velikost stránky** | Nastavte `pdf_options.page_width` a `pdf_options.page_height` (např. A4: `595, 842`). | +| **Velké soubory způsobují chyby nedostatku paměti** | Snižte `resource_options.max_handling_depth` nebo rozdělte HTML na menší fragmenty a převádějte je samostatně. | +| **Chcete PDF chránit heslem** | Použijte `pdf_options.password = "YourSecret"` před voláním `save`. | + +Tyto úpravy ilustrují flexibilitu **html to pdf options** a ukazují, jak můžete převod přizpůsobit přesně vašim požadavkům. + +## Kompletní skript, který můžete zkopírovat‑vložit + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Spusťte skript: + +```bash +python convert_html_to_pdf.py +``` + +Měli byste vidět potvrzovací zprávu a najít `output.pdf` ve zvoleném adresáři. + +## Často kladené otázky + +**Q: Funguje to s vzdálenými URL místo lokálních souborů?** +A: Ano. Předávejte řetězec URL do `Viewer` (např. `Viewer("https://example.com/page.html")`). Viewer stránku stáhne před aplikací **html to pdf options**. + +**Q: Můžu převést více HTML souborů najednou?** +A: Zabalte kód převodu do smyčky, která iteruje přes seznam cest k souborům. Pro efektivitu znovu použijte stejné objekty `resource_options` a `pdf_options`. + +**Q: Co když HTML používá JavaScript k úpravě DOM?** +A: GroupDocs.Viewer vykresluje statické HTML; **ne**spouští JavaScript. Pro dynamické stránky nejprve vykreslete stránku v headless prohlížeči (např. Selenium) a poté předávejte vzniklé statické HTML konvertoru. + +## Závěr + +Nyní máte kompletní, připravenou metodu pro **convert HTML to PDF** v Pythonu. Konfigurací **resource handling** řídíte, jak hluboko jsou propojené zdroje zpracovány, a `PdfSaveOptions` vám umožní **save HTML as PDF** s podrobnými **html to pdf options**. Experimentujte s volitelnými nastaveními – například vložením fontů nebo velikostí stránky – aby odpovídala přesným potřebám vaší aplikace. + +--- + +*Další kroky*: prozkoumejte **save HTML document pdf** s ochranou heslem, nebo integrujte tento převod do webového API pomocí Flask nebo FastAPI pro generování PDF na vyžádání. + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto průvodci. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, které vám pomohou zvládnout další funkce API a prozkoumat alternativní přístupy k implementaci ve vlastních projektech. + +- [Jak převést HTML do PDF v Javě – pomocí Aspose.HTML pro Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Převod HTML do PDF v Javě – konfigurace prostředí v Aspose.HTML](/html/english/java/configuring-environment/) +- [Převod HTML do PDF – provádění webových požadavků v Aspose.HTML pro Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/czech/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..16189b115 --- /dev/null +++ b/html/czech/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,342 @@ +--- +category: general +date: 2026-08-12 +description: Převést HTML do PDF v Pythonu pomocí Aspose HTML Converter. Naučte se, + jak generovat PDF z HTML a jak převést EPUB do PDF pomocí jen několika řádků kódu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: cs +lastmod: 2026-08-12 +og_description: Převod HTML na PDF v Pythonu pomocí Aspose HTML Converter. Tento tutoriál + ukazuje, jak generovat PDF z HTML a jak převést EPUB na PDF s jasným, spustitelným + kódem. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Převod HTML na PDF v Pythonu pomocí Aspose HTML Converter – rychlý průvodce +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Převod HTML do PDF v Pythonu pomocí Aspose HTML Converter +url: /cs/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Převod HTML do PDF v Pythonu pomocí Aspose HTML Converter + +Pokud potřebujete **převést HTML do PDF** rychle, tento návod vám přesně ukáže, jak to provést pomocí knihovny Aspose.HTML pro Python. Ať už vytváříte web‑službu, která převádí uživatelské stránky na tisknutelné PDF, nebo automatizujete generování reportů, níže uvedené kroky vám poskytnou kompletní, připravené řešení. + +Kromě HTML Aspose.HTML také podporuje formáty e‑knih, takže uvidíte **jak převést soubory EPUB** do PDF, aniž byste opustili Python. Na konci tohoto tutoriálu budete schopni **vytvořit PDF z HTML** a vytvořit PDF verze EPUB e‑knih pouhými několika řádky kódu. + +## Požadavky + +Před začátkem se ujistěte, že máte: + +* Nainstalovaný Python 3.8 nebo novější. +* Aktivní licence Aspose.HTML pro Python (bezplatná zkušební verze funguje pro hodnocení). +* Přístup k `pip` pro instalaci balíčku `aspose-html`. +* Vzorkové soubory HTML nebo EPUB, které chcete převést. + +```bash +pip install aspose-html +``` + +> **Tip:** Nainstalujte balíček uvnitř virtuálního prostředí, aby byly závislosti izolovány. + +## Přehled procesu převodu + +Aspose.HTML poskytuje jedinou třídu `Converter`, která abstrahuje detaily renderování HTML, CSS a e‑book obsahu do PDF. Pracovní postup je: + +1. Naimportujte třídu `Converter`. +2. Zavolejte `Converter.convert(source_path, target_path)`. +3. (Volitelné) Upravit nastavení převodu, jako je velikost stránky nebo vložení fontů. + +Knihovna automaticky detekuje formát zdroje na základě přípony souboru, takže stejná metoda funguje jak pro HTML, tak pro EPUB soubory. + +--- + +## Převod HTML do PDF pomocí Aspose HTML Converter + +### Krok 1: Importujte modul pro převod Aspose HTML + +Třída `Converter` se nachází v jmenném prostoru `aspose.html`. Naimportujte ji na začátku svého skriptu. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Krok 2: Připravte vstupní a výstupní cesty + +Používejte absolutní nebo relativní cesty, které váš skript může číst/zapisovat. Je dobré ověřit, že zdrojový soubor existuje, než zahájíte převod. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Krok 3: Proveďte převod + +Zavolání `Converter.convert` provede veškerou těžkou práci: renderování HTML, aplikaci CSS a zápis PDF souboru. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Proč to funguje + +* **Automatic layout engine** – Aspose.HTML uses a Chromium‑based rendering engine, ensuring that modern CSS, SVG, and JavaScript are handled correctly. +* **No intermediate files** – The conversion happens in memory, which reduces I/O overhead and speeds up batch processing. + +### Očekávaný výstup + +Po spuštění skriptu bude `output.pdf` obsahovat věrnou reprezentaci `input.html`. Otevřete jej libovolným PDF prohlížečem a ověřte, že fonty, obrázky a zalomení stránek odpovídají původní webové stránce. + +![Diagram převodu](https://example.com/conversion-diagram.png "Diagram zobrazující převod souborů HTML a EPUB do PDF pomocí Aspose HTML Converter") + +*(Text obrázku: Diagram zobrazující převod souborů HTML a EPUB do PDF pomocí Aspose HTML Converter)* + +--- + +## Vytvoření PDF z HTML s vlastními nastaveními + +Někdy potřebujete řídit velikost stránky, okraje nebo vložit konkrétní fonty. Aspose.HTML vystavuje třídu `PdfSaveOptions` pro tento účel. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Objekt `options` je volitelný; vynechte jej, pokud vám vyhovuje výchozí rozvržení.* + +--- + +## Jak převést EPUB do PDF v Pythonu + +### Krok 1: Najděte zdrojový EPUB + +Stejně jako u HTML, zadejte cestu k souboru EPUB, který chcete transformovat. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Krok 2: Spusťte převod + +Stejná metoda `Converter.convert` detekuje příponu `.epub` a přepne se na pipeline pro renderování e‑booku. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Okrajové případy k úvaze + +| Situace | Doporučené řešení | +|-----------------------------------------|----------------------------------------------------------------------------------------------------------------------| +| Velký EPUB (stovky kapitol) | Převádějte po částech pomocí `PdfSaveOptions.start_page` a `end_page`, aby se omezila spotřeba paměti. | +| Chybějící fonty v EPUB | Nastavte `PdfSaveOptions.embed_standard_fonts = True`, aby se použily systémové fonty. | +| Heslem chráněný EPUB | Použijte `PdfLoadOptions` k zadání hesla před převodem (není zde ukázáno). | + +--- + +## Kompletní, spustitelný příklad + +Níže je jeden skript, který kombinuje všechny výše uvedené kroky. Uložte jej jako `convert_demo.py` a spusťte z příkazové řádky. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Spusťte skript: + +```bash +python convert_demo.py +``` + +Měli byste vidět tři potvrzovací zprávy a tři PDF soubory v `YOUR_DIRECTORY`. + +--- + +## Časté úskalí a jak se jim vyhnout + +* **Chybějící licence** – Bez platné licence Aspose.HTML knihovna přidá vodoznak na každou stránku. Zaregistrujte licenci co nejdříve ve skriptu: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relativní cesty na různých OS** – Používejte `os.path.join` a `os.path.abspath` pro tvorbu cest nezávislých na platformě. + +* **Velké HTML s externími zdroji** – Ujistěte se, že všechny CSS, obrázky a fonty jsou přístupné ze souborového systému nebo je vložte pomocí data URI. Jinak může PDF vykreslovat prázdné zástupce. + +* **Bezpečnost vláken** – `Converter.convert` je bezpečný pro více vláken, ale vytváření mnoha konvertorů najednou může spotřebovat značnou paměť. Znovu použijte jedinou instanci konvertoru, pokud zpracováváte stovky souborů paralelně. + +--- + +## Závěr + +Nyní máte kompletní, produkčně připravený přístup k **převodu HTML do PDF** a **k převodu EPUB** souborů do PDF v Pythonu pomocí **Aspose HTML Converter**. Tutoriál pokrýval: + +* Importování správného modulu. +* Ověřování vstupních souborů. +* Provedení základního převodu. +* Přizpůsobení výstupu PDF pomocí `PdfSaveOptions`. +* Zpracování velkých nebo heslem chráněných EPUB. + +Odtud můžete rozšířit řešení pro dávkové zpracování složek, integrovat kód do Flask nebo FastAPI endpointu, nebo experimentovat s dalšími výstupními formáty, jako je DOCX nebo PNG (Aspose.HTML podporuje i tyto formáty). + +### Další kroky + +* Prozkoumejte **generování PDF z HTML** s JavaScript‑ovými stránkami povolením `Converter.convert` v režimu bezhlavého prohlížeče. +* Kombinujte tento workflow s **Aspose.PDF** pro úlohy post‑zpracování, jako je sloučení více PDF nebo přidání digitálních podpisů. +* Podívejte se na pokročilé možnosti **aspose-html-converter**, jako je `PdfSaveOptions.jpeg_quality` pro dokumenty s velkým množstvím obrázků. + +Šťastné programování a užívejte si spolehlivost Aspose.HTML pro všechny vaše potřeby převodu dokumentů! + +## Co byste se měli naučit dál? + +Následující tutoriály pokrývají úzce související témata, která staví na technikách předvedených v tomto průvodci. Každý zdroj obsahuje kompletní funkční ukázky kódu s podrobnými vysvětleními, aby vám pomohl zvládnout další funkce API a prozkoumat alternativní implementační přístupy ve vlastních projektech. + +- [Převod HTML do PDF s Aspose.HTML – Kompletní průvodce manipulací](/html/english/) +- [Převod EPUB do PDF v .NET s Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/czech/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..1529ef410 --- /dev/null +++ b/html/czech/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: Rychle načtěte HTML ze souboru v Pythonu. Naučte se, jak číst HTML soubor + pomocí Pythonu, načíst HTML z URL a vytvořit htmldokument ze řetězce v jednom tutoriálu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: cs +lastmod: 2026-08-12 +og_description: Náhrajte HTML ze souboru v Pythonu pomocí třídy HTMLDocument. Postupujte + podle tohoto návodu, jak načíst HTML soubor pomocí Pythonu, načíst HTML z URL a + vytvořit HTMLDocument ze řetězce pro robustní zpracování webového obsahu. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Načtení HTML ze souboru v Pythonu – rychlý programovací průvodce +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Načtení HTML ze souboru v Pythonu – krok za krokem +url: /cs/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Načtení HTML ze souboru v Pythonu – krok za krokem + +Pokud potřebujete **načíst html ze souboru v Pythonu**, tento návod vám ukáže přesně jak. Také se naučíte, jak **číst html soubor pomocí pythonu**, načíst html z URL a **vytvořit htmldocument z řetězce**, abyste mohli pracovat s jakýmkoli zdrojem HTML obsahu. + +Příklady používají třídu `HTMLDocument` z balíčku `html_document`, který poskytuje jednotné API pro lokální soubory, vzdálené URL a surové HTML řetězce. Přístup funguje s Python 3.8+ a hladce se integruje se standardními knihovnami jako `pathlib` a `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Načtení HTML ze souboru v Pythonu – základní příklad + +Načtení HTML souboru z lokálního souborového systému je nejčastějším prvním krokem při zpracování statických stránek. Konstruktor `HTMLDocument` přijímá cestu k souboru, automaticky detekuje kódování souboru a parsuje markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Proč to funguje:** +* `Path` abstrahuje OS‑specifické oddělovače cest, což činí kód přenosným mezi Windows, macOS a Linuxem. +* `HTMLDocument` čte soubor v binárním režimu, detekuje UTF‑8 nebo UTF‑16 BOM a v případě potřeby přejde na výchozí kódování systému. + +**Očekávaný výstup (předpokládáme, že HTML obsahuje `Example`):** + +``` +Title: Example +``` + +### Časté úskalí při načítání souboru + +* **FileNotFoundError** – Ujistěte se, že cesta je správná a soubor existuje. Použijte `file_path.is_file()` pro předběžnou kontrolu. +* **Chyby kódování** – Pokud stránka používá ne‑UTF‑8 znakovou sadu, předávejte konstruktoru `encoding="iso-8859-1"`: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Čtení html souboru pomocí pythonu – podrobná vysvětlení + +Fráze **read html file using python** se často objevuje, když vývojáři potřebují extrahovat data ze uložených webových stránek. Zatímco `HTMLDocument` abstrahuje většinu práce, můžete také načíst surový text a předat jej parseru ručně. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Proč byste mohli zvolit tuto cestu:** +* Potřebujete předzpracovat HTML (např. odstranit skripty) před parsováním. +* Chcete uložit surový markup do cache pro pozdější opětovné použití bez opětovného čtení souboru. + +## Načtení html z url – získávání vzdálených stránek + +Načtení HTML přímo z webové adresy rozšiřuje workflow na živý obsah. Krok **load html from url** využívá knihovnu `requests` pro HTTP komunikaci a poté předává text odpovědi do `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Proč to funguje:** +* `requests.get` následuje přesměrování a zajišťuje HTTPS „out of the box“. +* `response.raise_for_status()` garantuje, že jsou parsovány jen úspěšné odpovědi, čímž zabraňuje tichým selháním. + +**Hraniční případy:** +* **Pomalá síť** – Upravte parametr `timeout` nebo použijte `requests.Session` pro sdílení spojení. +* **Ne‑HTML obsah** – Ověřte hlavičku `Content-Type` (`response.headers["Content-Type"]`) před parsováním. + +## Vytvoření htmldocument z řetězce – práce se surovým HTML + +Někdy generujete HTML dynamicky (např. z šablonového enginu) a potřebujete jej zacházet jako s dokumentem, aniž byste jej zapisovali na disk. Operace **create htmldocument from string** je přímočará. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Proč je to užitečné:** +* Odstraňuje potřebu dočasných souborů, což zvyšuje výkon v serverless prostředích. +* Umožňuje validovat vygenerovaný markup před odesláním klientovi nebo uložením. + +**Tipy pro práci s řetězci:** +* Používejte trojitě uvozovky, aby byl markup čitelný. +* Pokud HTML obsahuje Unicode znaky, ujistěte se, že zdrojový soubor je uložen s kódováním UTF‑8. + +## Kompletní end‑to‑end příklad + +Spojením všech čtyř strategií načítání demonstrujeme flexibilní pipeline, která může přepínat mezi lokálními, vzdálenými i paměťovými zdroji. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Co tento kód ilustruje:** + +* Jedna třída `HTMLDocument` zpracovává všechny typy vstupů, čímž snižuje povrch API. +* Pomocné funkce zapouzdřují ošetření chyb a zkracují volající kód. +* Vzor škáluje na dávkové zpracování: iterujte přes seznam cest k souborům nebo URL a každým dokumentem napájejte scraper nebo transformátor. + +## Závěr + +Nyní víte, jak **load html from file in Python** pomocí třídy `HTMLDocument`, jak **read html file using + +## What Should You Learn Next? + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/dutch/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..82d24e48e --- /dev/null +++ b/html/dutch/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-08-12 +description: Converteer HTML naar Markdown met Python. Leer een commandoregel‑workflow + om een webpagina naar Markdown te converteren en documentatie te automatiseren. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: nl +lastmod: 2026-08-12 +og_description: Converteer HTML naar Markdown met Python. Deze tutorial laat je een + commandoregeloplossing zien om een webpagina snel en betrouwbaar naar Markdown te + converteren. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: HTML naar Markdown converteren met Python – stap‑voor‑stap gids +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: HTML converteren naar Markdown met Python – volledige programmeergids +url: /nl/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML naar Markdown converteren met Python – volledige programmeergids + +Als je **HTML naar Markdown wilt converteren**, laat deze gids je een kant‑en‑klare oplossing zien. Je ziet hoe een kort Python‑script elk HTML‑bestand omzet in schone, Git‑geflavorde Markdown, en hoe je dezelfde logica vanuit de opdrachtregel kunt aanroepen. + +Webpagina's naar Markdown converteren is een veelvoorkomende stap bij het bouwen van statische documentatiesites of het voorbereiden van inhoud voor versie‑gecontroleerde repositories. Aan het einde van deze tutorial heb je een herbruikbare opdrachtregel‑tool die HTML‑codering afhandelt, links behoudt en de Git‑geflavorde Markdown‑conventies respecteert. + +## Vereisten + +* Python 3.9 of nieuwer geïnstalleerd op je systeem. +* Het `groupdocs-conversion` Python‑pakket (of een andere bibliotheek die `HTMLDocument`, `MarkdownSaveOptions` en `Converter` biedt). Installeer het met: + +```bash +pip install groupdocs-conversion +``` + +* Een map die het bron‑`input.html`‑bestand bevat dat je wilt verwerken. + +De volgende secties lopen elke stap door, leggen uit waarom ze belangrijk zijn, en geven je de exacte code die je nodig hebt. + +## Stap 1: De omgeving instellen + +Het creëren van een geïsoleerde virtuele omgeving voorkomt afhankelijkheidsconflicten en maakt de opdrachtregel‑tool draagbaar. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Waarom deze stap?* +Een virtuele omgeving isoleert het `groupdocs-conversion`‑pakket van andere projecten, waardoor de `convert html to markdown command line`‑utility draait met exact de versies die je hebt getest. + +## Stap 2: Schrijf het conversiescript + +Maak een bestand genaamd `html_to_md.py` aan en plak de volgende code. Het script accepteert drie argumenten: het pad naar de invoer‑HTML, het pad naar de uitvoer‑Markdown, en een optionele vlag om de Git‑geflavorde formatter te kiezen. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Uitleg van het script + +| Sectie | Doel | +|---------|---------| +| **Argument parsing** | Maakt het **convert html to markdown command line**‑gebruikspatroon mogelijk. | +| **HTMLDocument** | Laadt het bronbestand; de bibliotheek abstraheert teken‑codering en DOM‑parsing. | +| **MarkdownSaveOptions** | Stelt je in staat te schakelen tussen gewone en Git‑geflavorde Markdown (`--git`‑vlag). | +| **Converter.convert_html** | Voert het zware werk uit – het doorloopt de HTML‑boom, vertaalt tags, en schrijft het uitvoerbestand. | +| **Error handling** | Biedt een duidelijke succes‑/foutmelding, wat essentieel is voor CI‑pipelines. | + +## Stap 3: Voer de conversie uit vanaf de opdrachtregel + +Met het script opgeslagen, kun je elk HTML‑bestand converteren met één enkele opdracht: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Verwachte output** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Open `output.md` in een teksteditor; je ziet koppen, lijsten en links weergegeven in schone Markdown‑syntaxis. Omdat we de Git‑formatter gebruikten, verschijnen tabellen met pijp (`|`) scheidingstekens, en gebruiken takenlijsten de `- [ ]`‑syntaxis, die GitHub en GitLab native weergeven. + +## Stap 4: Integreer de tool in automatiserings‑pipelines + +Als je documentatie in een repository onderhoudt, kun je de conversiestap toevoegen aan een CI‑workflow. Hieronder een voorbeeld voor een GitHub Actions‑taak die bij elke push wordt uitgevoerd: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Waarom dit belangrijk is* – Het automatiseren van de **convert web page to markdown**‑stap garandeert dat je documentatie synchroon blijft met bron‑HTML‑bestanden zonder handmatige inspanning. + +## Randgevallen en best‑practice tips + +* **Encoding‑problemen** – Als je HTML niet‑UTF‑8‑tekens bevat, geef dan een expliciete codering door bij het aanmaken van `HTMLDocument` (bijv. `HTMLDocument(input_path, encoding='utf-8')`). +* **Grote bestanden** – Voor HTML‑bestanden groter dan 50 MB, overweeg de conversie te streamen om geheugenpieken te vermijden. De bibliotheek biedt een `convert_html_stream`‑methode voor dit scenario. +* **Aangepaste CSS‑afhandeling** – De converter verwijdert standaard stijl‑attributen. Als je specifieke opmaak wilt behouden, schakel `md_opts.preserveFormatting = True` in. +* **Opdrachtregel‑snelkoppeling** – Maak een klein wrapper‑script (`html2md`) dat argumenten doorstuurt naar `html_to_md.py`. Plaats het in `$HOME/.local/bin` en voeg het toe aan je `PATH` voor een nog kortere **convert html to markdown command line**‑ervaring. + +## Veelgestelde vragen + +**Werkt dit op Windows, macOS en Linux?** +Ja. Het script maakt alleen gebruik van het cross‑platform `groupdocs-conversion`‑pakket en standaard Python‑bibliotheken, dus het draait ongewijzigd op alle drie de besturingssystemen. + +**Kan ik een externe webpagina direct converteren?** +Je kunt de pagina ophalen met `requests` en de HTML‑string aan `HTMLDocument` doorgeven: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Wat als ik alleen HTML → GitHub‑geflavorde Markdown nodig heb?** +Geef simpelweg altijd de `--git`‑vlag door; de formatter produceert output die compatibel is met GitHub, GitLab en Bitbucket. + +## Conclusie + +Je hebt nu een robuuste **convert HTML to Markdown**‑oplossing die werkt vanuit een Python‑script en vanaf de opdrachtregel. De tutorial besloeg het opzetten van de omgeving, volledige broncode, opdrachtregel‑gebruik, CI‑integratie en praktische afhandeling van randgevallen. + +Vervolgens kun je **convert markdown to HTML** verkennen, experimenteren met Pandoc voor geavanceerde conversie‑opties, of een front‑matter‑generator toevoegen om metadata direct in de Markdown‑bestanden in te sluiten. Elk van deze uitbreidingen bouwt voort op de kernconcepten die je zojuist onder de knie hebt. + +Veel plezier met converteren! + +## Wat kun je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden getoond. Elke bron bevat volledige werkende code‑voorbeelden met stap‑voor‑stap uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [HTML naar Markdown converteren in Aspose.HTML voor Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [HTML naar Markdown converteren in .NET met Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/dutch/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..3db762853 --- /dev/null +++ b/html/dutch/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Converteer HTML naar PDF in Python met GroupDocs.Viewer. Leer hoe je + HTML kunt opslaan als PDF met flexibele HTML‑naar‑PDF‑opties voor nauwkeurige controle. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: nl +lastmod: 2026-08-12 +og_description: Converteer HTML naar PDF met GroupDocs.Viewer. Deze gids laat zien + hoe je HTML opslaat als PDF, HTML‑naar‑PDF‑opties configureert en grote documenten + betrouwbaar verwerkt. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTML naar PDF converteren – stapsgewijze Python‑tutorial +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: HTML naar PDF converteren in Python – volledige programmeergids +url: /nl/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML naar PDF converteren in Python – volledige programmeergids + +Als je **HTML naar PDF moet converteren** in een Python‑project, laat deze gids je een kant‑klaar werkende oplossing zien. We lopen door het installeren van de viewer‑bibliotheek, het configureren van **html to pdf options**, en uiteindelijk **HTML opslaan als PDF** met slechts een paar regels code. + +Het converteren van HTML‑documenten omvat vaak het verwerken van gekoppelde bronnen zoals afbeeldingen, CSS of JavaScript. Aan het einde van deze tutorial begrijp je hoe je de nesting van bronnen kunt beperken, geheugenpieken kunt voorkomen en een schoon PDF‑bestand kunt produceren dat overeenkomt met de oorspronkelijke paginalay-out. + +## Vereisten + +- Python 3.8 of nieuwer +- `pip` (Python package installer) +- Toegang tot het HTML‑bestand dat je wilt converteren (bijv. `large_page.html`) + +Er zijn geen extra systeem‑bibliotheken nodig omdat GroupDocs.Viewer alle benodigde render‑engines bundelt. + +## Stap 1: Installeer GroupDocs.Viewer voor Python + +GroupDocs.Viewer biedt een hoge‑fidelity conversie van vele formaten, inclusief HTML, naar PDF. Installeer het met: + +```bash +pip install groupdocs-viewer +``` + +> **Pro tip:** Gebruik een virtuele omgeving (`python -m venv .venv`) om afhankelijkheden geïsoleerd te houden van andere projecten. + +## Stap 2: Configureer **html to pdf options** – beperk de nesting‑diepte van bronnen + +Grote HTML‑pagina's kunnen diep geneste bronnen bevatten (iframes, CSS‑imports, enz.). Het instellen van een maximale verwerkingsdiepte voorkomt dat de converter oneindig recursief wordt en houdt het geheugengebruik voorspelbaar. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +De eigenschap `max_handling_depth` vertelt de viewer hoeveel niveaus van gekoppelde bronnen hij moet volgen. Een diepte van `3` werkt goed voor de meeste webpagina's en behoudt toch de benodigde afbeeldingen en stijlen. + +## Stap 3: Laad het HTML‑document dat je wilt **HTML naar PDF converteren** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstraheert de detectie van het bestandsformaat, zodat je niet handmatig `HtmlDocument` hoeft te instantieren. Deze stap bereidt de interne representatie voor waarmee de converter werkt. + +## Stap 4: **HTML opslaan als PDF** met de geconfigureerde **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Het `PdfSaveOptions`‑object bundelt alle PDF‑specifieke instellingen, inclusief de eerder gedefinieerde `resource_handling_options`. Wanneer `viewer.save` wordt uitgevoerd, wordt de HTML‑pagina gerenderd, worden bronnen verwerkt tot de toegestane diepte, en wordt de uiteindelijke PDF weggeschreven naar `output_path`. + +### Verwacht resultaat + +Na het uitvoeren van het script bevat `output.pdf` een getrouwe weergave van `large_page.html`. Open de PDF met een willekeurige viewer (Adobe Reader, Chrome, enz.) en controleer dat: + +- Afbeeldingen, tabellen en basis‑CSS‑stijlen verschijnen correct. +- Geen onverwachte lege pagina's veroorzaakt door diepe bron‑recursie. + +## Afhandelen van randgevallen en veelvoorkomende variaties + +| Situatie | Aanbevolen aanpassing | +|-----------|-------------------| +| **HTML bevat externe lettertypen** | Voeg `pdf_options.embed_all_fonts = True` toe om ervoor te zorgen dat lettertypen in de PDF worden ingebed. | +| **Je hebt een specifieke paginagrootte nodig** | Stel `pdf_options.page_width` en `pdf_options.page_height` in (bijv. A4: `595, 842`). | +| **Grote bestanden veroorzaken out‑of‑memory‑fouten** | Verlaag `resource_options.max_handling_depth` of splits de HTML in kleinere fragmenten en converteer elk afzonderlijk. | +| **Je wilt de PDF met een wachtwoord beveiligen** | Gebruik `pdf_options.password = "YourSecret"` vóór het aanroepen van `save`. | + +Deze aanpassingen illustreren de flexibiliteit van **html to pdf options** en laten zien hoe je de conversie kunt afstemmen op je exacte eisen. + +## Volledig script dat je kunt kopiëren‑plakken + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Voer het script uit: + +```bash +python convert_html_to_pdf.py +``` + +Je zou het bevestigingsbericht moeten zien en `output.pdf` vinden in de opgegeven map. + +## Veelgestelde vragen + +**Q: Werkt dit met externe URL's in plaats van lokale bestanden?** +A: Ja. Geef de URL‑string door aan `Viewer` (bijv. `Viewer("https://example.com/page.html")`). De viewer downloadt de pagina voordat de **html to pdf options** worden toegepast. + +**Q: Kan ik meerdere HTML‑bestanden in één batch converteren?** +A: Plaats de conversiecode in een lus die over een lijst met bestandspaden iterereert. Hergebruik dezelfde `resource_options`‑ en `pdf_options`‑objecten voor efficiëntie. + +**Q: Wat als de HTML JavaScript gebruikt om het DOM te wijzigen?** +A: GroupDocs.Viewer rendert de statische HTML; het voert **geen** JavaScript uit. Voor dynamische pagina's render je de pagina eerst in een headless browser (bijv. Selenium) en voer je vervolgens de resulterende statische HTML aan de converter. + +## Conclusie + +Je hebt nu een volledige, productie‑klare methode om **HTML naar PDF te converteren** in Python. Door **resource handling** te configureren bepaal je hoe diep gekoppelde bronnen worden verwerkt, en met `PdfSaveOptions` kun je **HTML opslaan als PDF** met fijnmazige **html to pdf options**. Experimenteer met de optionele instellingen — zoals het insluiten van lettertypen of paginagrootte — om precies aan de behoeften van je applicatie te voldoen. + +--- + +*Volgende stappen*: verken **save HTML document pdf** met wachtwoordbeveiliging, of integreer deze conversie in een web‑API met Flask of FastAPI voor on‑demand PDF‑generatie. + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden getoond. Elke bron bevat volledige werkende code‑voorbeelden met stap‑voor‑stap uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [Hoe HTML naar PDF converteren in Java – Met Aspose.HTML voor Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [HTML naar PDF converteren in Java – Omgeving configureren in Aspose.HTML](/html/english/java/configuring-environment/) +- [HTML naar PDF converteren – Webverzoekuitvoering in Aspose.HTML voor Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/dutch/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..48f38a817 --- /dev/null +++ b/html/dutch/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,345 @@ +--- +category: general +date: 2026-08-12 +description: Converteer HTML naar PDF in Python met Aspose HTML Converter. Leer hoe + je PDF kunt genereren vanuit HTML en hoe je EPUB naar PDF kunt converteren in slechts + een paar regels code. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: nl +lastmod: 2026-08-12 +og_description: Converteer HTML naar PDF in Python met Aspose HTML Converter. Deze + tutorial laat zien hoe je PDF genereert vanuit HTML en hoe je EPUB naar PDF converteert + met duidelijke, uitvoerbare code. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: HTML naar PDF converteren in Python met Aspose HTML Converter – snelle gids +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: HTML naar PDF converteren in Python met Aspose HTML Converter +url: /nl/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converteer HTML naar PDF in Python met Aspose HTML Converter + +Als je **HTML naar PDF** wilt converteren, laat deze gids je precies zien hoe je dat doet met de Aspose.HTML Python‑bibliotheek. Of je nu een web‑service bouwt die door gebruikers ingediende pagina’s omzet naar afdrukbare PDF’s of rapportgeneratie automatiseert, de onderstaande stappen bieden een complete, kant‑klaar‑oplossing. + +Naast HTML ondersteunt Aspose.HTML ook e‑book‑formaten, dus je ziet **hoe je EPUB**‑bestanden naar PDF kunt converteren zonder Python te verlaten. Aan het einde van deze tutorial kun je **PDF genereren vanuit HTML** en PDF‑versies van EPUB‑e‑books maken in slechts een paar regels code. + +## Vereisten + +Voordat je begint, zorg dat je het volgende hebt: + +* Python 3.8 of nieuwer geïnstalleerd. +* Een actieve Aspose.HTML for Python‑licentie (de gratis proefversie werkt voor evaluatie). +* `pip`‑toegang om het `aspose-html`‑pakket te installeren. +* Voorbeeld‑HTML‑ of EPUB‑bestanden die je wilt converteren. + +```bash +pip install aspose-html +``` + +> **Pro tip:** Installeer het pakket binnen een virtuele omgeving om afhankelijkheden geïsoleerd te houden. + +## Overzicht van het conversie‑proces + +Aspose.HTML biedt een enkele `Converter`‑klasse die de details van het renderen van HTML, CSS en e‑book‑inhoud naar PDF abstraheert. De workflow is: + +1. Importeer de `Converter`‑klasse. +2. Roep `Converter.convert(source_path, target_path)` aan. +3. (Optioneel) Pas conversie‑instellingen aan, zoals paginagrootte of het insluiten van lettertypen. + +De bibliotheek detecteert automatisch het bronformaat op basis van de bestandsextensie, zodat dezelfde methode werkt voor zowel HTML‑ als EPUB‑bestanden. + +--- + +## Converteer HTML naar PDF met Aspose HTML Converter + +### Stap 1: Importeer de Aspose HTML‑conversiemodule + +De `Converter`‑klasse bevindt zich in de `aspose.html`‑namespace. Importeer deze bovenaan je script. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Stap 2: Bereid invoer‑ en uitvoer‑paden voor + +Gebruik absolute of relatieve paden die je script kan lezen/schrijven. Het is goede praktijk om te controleren of het bronbestand bestaat voordat je de conversie start. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Stap 3: Voer de conversie uit + +Het aanroepen van `Converter.convert` doet al het zware werk: het renderen van de HTML, het toepassen van CSS en het schrijven van een PDF‑bestand. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Waarom dit werkt + +* **Automatische layout‑engine** – Aspose.HTML gebruikt een op Chromium gebaseerde renderengine, waardoor moderne CSS, SVG en JavaScript correct worden verwerkt. +* **Geen tussen‑bestanden** – De conversie gebeurt in het geheugen, wat I/O‑overhead vermindert en batch‑verwerking versnelt. + +### Verwachte output + +Na het uitvoeren van het script bevat `output.pdf` een getrouwe weergave van `input.html`. Open het met een PDF‑viewer om te verifiëren dat lettertypen, afbeeldingen en paginabreaks overeenkomen met de oorspronkelijke webpagina. + +![Conversion diagram](https://example.com/conversion-diagram.png "Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter") + +*(Afbeeldings‑alt‑tekst: Diagram dat de conversie van HTML‑ en EPUB‑bestanden naar PDF toont met Aspose HTML Converter)* + +--- + +## Genereer PDF vanuit HTML met aangepaste instellingen + +Soms moet je paginagrootte, marges of specifieke lettertypen insluiten regelen. Aspose.HTML biedt een `PdfSaveOptions`‑klasse voor dat doel. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Het `options`‑object is optioneel; laat het weg als je tevreden bent met de standaardlayout.* + +--- + +## Hoe EPUB naar PDF te converteren in Python + +### Stap 1: Zoek het EPUB‑bronbestand + +Net als bij HTML, geef je het pad op naar het EPUB‑bestand dat je wilt omzetten. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Stap 2: Voer de conversie uit + +Dezelfde `Converter.convert`‑methode detecteert de `.epub`‑extensie en schakelt over naar de e‑book‑renderpipeline. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Randgevallen om te overwegen + +| Situatie | Aanbevolen aanpak | +|------------------------------------------|-------------------| +| Grote EPUB (honderden hoofdstukken) | Converteer in delen met `PdfSaveOptions.start_page` en `end_page` om het geheugenverbruik te beperken. | +| Ontbrekende lettertypen in de EPUB | Stel `PdfSaveOptions.embed_standard_fonts = True` in om terug te vallen op systeemlettertypen. | +| Met wachtwoord beveiligde EPUB | Gebruik `PdfLoadOptions` om het wachtwoord vóór conversie op te geven (niet getoond hier). | + +--- + +## Volledig, uitvoerbaar voorbeeld + +Hieronder vind je één script dat alle bovenstaande stappen combineert. Sla het op als `convert_demo.py` en voer het uit via de opdrachtregel. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Voer het script uit: + +```bash +python convert_demo.py +``` + +Je zou drie bevestigingsberichten en drie PDF‑bestanden in `YOUR_DIRECTORY` moeten zien. + +--- + +## Veelvoorkomende valkuilen en hoe ze te vermijden + +* **Ontbrekende licentie** – Zonder een geldige Aspose.HTML‑licentie voegt de bibliotheek een watermerk toe aan elke pagina. Registreer je licentie vroeg in het script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relatieve paden op verschillende OS‑en** – Gebruik `os.path.join` en `os.path.abspath` om platform‑onafhankelijke paden op te bouwen. + +* **Grote HTML met externe resources** – Zorg dat alle CSS, afbeeldingen en lettertypen bereikbaar zijn vanaf het bestandssysteem of embed ze via data‑URI’s. Anders kan de PDF lege plaatsaanduidingen weergeven. + +* **Thread‑veiligheid** – `Converter.convert` is thread‑veilig, maar het gelijktijdig maken van veel converters kan veel geheugen verbruiken. Hergebruik één converter‑instantie als je honderden bestanden parallel verwerkt. + +--- + +## Conclusie + +Je beschikt nu over een volledige, productie‑klare aanpak om **HTML naar PDF** te converteren en **hoe EPUB**‑bestanden naar PDF te converteren in Python met de **Aspose HTML Converter**. De tutorial besprak: + +* Het importeren van de juiste module. +* Het valideren van invoerbestanden. +* Het uitvoeren van een basisconversie. +* Het aanpassen van PDF‑output met `PdfSaveOptions`. +* Het omgaan met grote of met wachtwoord beveiligde EPUB‑bestanden. + +Vanaf hier kun je de oplossing uitbreiden naar batch‑verwerking van mappen, integratie in een Flask‑ of FastAPI‑endpoint, of experimenteren met extra output‑formaten zoals DOCX of PNG (Aspose.HTML ondersteunt die ook). + +--- + +### Volgende stappen + +* Verken **PDF genereren vanuit HTML** met JavaScript‑gedreven pagina’s door `Converter.convert` te gebruiken met een headless‑browser‑sessie. +* Combineer deze workflow met **Aspose.PDF** voor nabewerkingen zoals het samenvoegen van meerdere PDF’s of het toevoegen van digitale handtekeningen. +* Bekijk de geavanceerde opties van **aspose-html-converter**, zoals `PdfSaveOptions.jpeg_quality` voor document‑intensieve afbeeldingen. + +Veel programmeerplezier, en geniet van de betrouwbaarheid van Aspose.HTML voor al je document‑conversiebehoeften! + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids zijn gedemonstreerd. Elke bron bevat complete werkende code‑voorbeelden met stap‑voor‑stap‑uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/dutch/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..7fa2547d2 --- /dev/null +++ b/html/dutch/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Laad HTML snel vanuit een bestand in Python. Leer hoe je een HTML‑bestand + leest met Python, HTML laadt vanaf een URL, en een HTML‑document maakt vanuit een + string in één tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: nl +lastmod: 2026-08-12 +og_description: Laad HTML vanuit een bestand in Python met de HTMLDocument‑klasse. + Volg deze gids om een HTML‑bestand te lezen met Python, HTML van een URL te laden + en een HTMLDocument van een string te maken voor robuuste verwerking van webinhoud. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: HTML laden vanuit bestand in Python – snelle programmeergids +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: HTML uit bestand laden in Python – stap‑voor‑stap gids +url: /nl/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML laden vanuit bestand in Python – stapsgewijze handleiding + +Als je **html vanuit een bestand in Python wilt laden**, laat deze gids je precies zien hoe. Je leert ook hoe je **html‑bestand kunt lezen met python**, html vanuit een url kunt laden, en **htmldocument kunt maken vanuit een string**, zodat je elke bron van HTML‑inhoud kunt verwerken. + +De voorbeelden gebruiken de `HTMLDocument`‑klasse uit het `html_document`‑pakket, dat een eenduidige API biedt voor lokale bestanden, externe URL’s en ruwe HTML‑strings. De aanpak werkt met Python 3.8+ en integreert naadloos met standaardbibliotheken zoals `pathlib` en `requests`. + +![Screenshot van code voor html laden vanuit bestand in Python](image.png) + +## HTML laden vanuit bestand in Python – basisvoorbeeld + +Een HTML‑bestand van het lokale bestandssysteem laden is de meest voorkomende eerste stap bij het verwerken van statische pagina’s. De `HTMLDocument`‑constructor accepteert een bestandspad, detecteert automatisch de codering van het bestand en parseert de markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Waarom dit werkt:** +* `Path` abstraheert OS‑specifieke pad‑scheidingstekens, waardoor de code draagbaar is over Windows, macOS en Linux. +* `HTMLDocument` leest het bestand in binaire modus, detecteert UTF‑8 of UTF‑16 BOM, en valt terug op de standaardcodering van het systeem wanneer dat nodig is. + +**Verwachte output (ervan uitgaande dat de HTML `Example` bevat):** + +``` +Title: Example +``` + +### Veelvoorkomende valkuilen bij het laden van een bestand + +* **FileNotFoundError** – Zorg ervoor dat het pad correct is en het bestand bestaat. Gebruik `file_path.is_file()` om vooraf te controleren. +* **Encoding errors** – Als de pagina een niet‑UTF‑8 charset gebruikt, geef dan `encoding="iso-8859-1"` door aan de constructor: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## HTML‑bestand lezen met python – gedetailleerde uitleg + +De uitdrukking **read html file using python** komt vaak voor wanneer ontwikkelaars data uit opgeslagen webpagina’s moeten extraheren. Terwijl `HTMLDocument` het grootste deel van het werk abstraheert, kun je ook ruwe tekst laden en handmatig aan de parser voeren. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Waarom je deze route zou kunnen kiezen:** +* Je moet de HTML vooraf verwerken (bijv. scripts verwijderen) voordat je gaat parseren. +* Je wilt de ruwe markup cachen voor later hergebruik zonder het bestand opnieuw te lezen. + +## HTML laden vanuit url – externe pagina’s ophalen + +HTML direct van een webadres laden breidt de workflow uit naar live‑content. De **load html from url**‑stap maakt gebruik van de `requests`‑bibliotheek voor HTTP‑afhandeling en geeft vervolgens de respons‑tekst door aan `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Waarom dit werkt:** +* `requests.get` volgt redirects en behandelt HTTPS out‑of‑the‑box. +* `response.raise_for_status()` garandeert dat alleen succesvolle responsen worden geparseerd, waardoor stille fouten worden voorkomen. + +**Randgevallen:** +* **Langzaam netwerk** – Pas de `timeout`‑parameter aan of gebruik `requests.Session` voor connection pooling. +* **Niet‑HTML content** – Controleer de `Content-Type`‑header (`response.headers["Content-Type"]`) voordat je gaat parseren. + +## htmldocument maken vanuit string – werken met ruwe HTML + +Soms genereer je HTML dynamisch (bijv. vanuit een template‑engine) en moet je het behandelen als een document zonder het naar schijf te schrijven. De **create htmldocument from string**‑operatie is eenvoudig. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Waarom dit nuttig is:** +* Het elimineert de noodzaak voor tijdelijke bestanden, wat de prestaties in serverless omgevingen verbetert. +* Het stelt je in staat de gegenereerde markup te valideren voordat je deze naar een client stuurt of opslaat. + +**Tips voor string‑verwerking:** +* Gebruik triple‑quoted strings om de markup leesbaar te houden. +* Als de HTML Unicode‑tekens bevat, zorg er dan voor dat het bronbestand is opgeslagen met UTF‑8‑codering. + +## Volledig end‑to‑end voorbeeld + +Alle vier de laadstrategieën combineren toont een flexibele pipeline die kan schakelen tussen lokale, externe en in‑memory bronnen. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Wat deze code illustreert:** + +* Een enkele `HTMLDocument`‑klasse verwerkt alle invoertypen, waardoor de API‑oppervlakte wordt verkleind. +* Helper‑functies kapselen foutafhandeling in en maken de aanroepende code beknopt. +* Het patroon schaalt naar batch‑verwerking: itereren over een lijst met bestandspaden of URL’s en elk document doorgeven aan een scraper of transformer. + +## Conclusie + +Je weet nu hoe je **html vanuit een bestand in Python kunt laden** met de `HTMLDocument`‑klasse, hoe je **html‑bestand kunt lezen met + +## Wat moet je hierna leren? + +De volgende tutorials behandelen nauw verwante onderwerpen die voortbouwen op de technieken die in deze gids worden gedemonstreerd. Elke bron bevat volledige werkende code‑voorbeelden met stapsgewijze uitleg om je te helpen extra API‑functies onder de knie te krijgen en alternatieve implementatie‑benaderingen in je eigen projecten te verkennen. + +- [HTML‑documenten laden vanuit URL in Aspose.HTML voor Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [HTML‑documenten laden vanuit stream met Aspose.HTML voor Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [HTML‑document opslaan naar bestand in Aspose.HTML voor Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/english/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..0e517505b --- /dev/null +++ b/html/english/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-08-12 +description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: en +lastmod: 2026-08-12 +og_description: Convert HTML to Markdown using Python. This tutorial shows you a command‑line + solution to convert web page to Markdown quickly and reliably. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Convert HTML to Markdown with Python – step‑by‑step guide +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Convert HTML to Markdown with Python – complete programming guide +url: /python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to Markdown with Python – complete programming guide + +If you need to **convert HTML to Markdown**, this guide shows you a ready‑to‑run solution. You’ll see how a short Python script turns any HTML file into clean, Git‑flavored Markdown, and how you can invoke the same logic from the command line. + +Converting web pages to Markdown is a common step when building static documentation sites or preparing content for version‑controlled repositories. By the end of this tutorial you will have a reusable command‑line tool that handles HTML encoding, preserves links, and respects Git‑flavored Markdown conventions. + +## Prerequisites + +Before you start, make sure you have: + +* Python 3.9 or newer installed on your system. +* The `groupdocs-conversion` Python package (or any library that provides `HTMLDocument`, `MarkdownSaveOptions`, and `Converter`). Install it with: + +```bash +pip install groupdocs-conversion +``` + +* A folder that contains the source `input.html` file you want to process. + +The following sections walk through each step, explain why it matters, and give you the exact code you need. + +## Step 1: Set up the environment + +Creating an isolated virtual environment prevents dependency conflicts and makes the command‑line tool portable. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Why this step?* +A virtual environment isolates the `groupdocs-conversion` package from other projects, ensuring that the `convert html to markdown command line` utility runs with the exact versions you tested. + +## Step 2: Write the conversion script + +Create a file named `html_to_md.py` and paste the following code. The script accepts three arguments: the input HTML path, the output Markdown path, and an optional flag to choose the Git‑flavored formatter. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Explanation of the script + +| Section | Purpose | +|---------|---------| +| **Argument parsing** | Enables the **convert html to markdown command line** usage pattern. | +| **HTMLDocument** | Loads the source file; the library abstracts character encoding and DOM parsing. | +| **MarkdownSaveOptions** | Lets you switch between plain and Git‑flavored Markdown (`--git` flag). | +| **Converter.convert_html** | Performs the heavy lifting – it walks the HTML tree, translates tags, and writes the output file. | +| **Error handling** | Provides a clear success/failure message, which is essential for CI pipelines. | + +## Step 3: Run the conversion from the command line + +With the script saved, you can convert any HTML file with a single command: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Expected output** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Open `output.md` in a text editor; you’ll see headings, lists, and links rendered in clean Markdown syntax. Because we used the Git formatter, tables appear with pipe (`|`) delimiters, and task lists use `- [ ]` syntax, which GitHub and GitLab render natively. + +## Step 4: Integrate the tool into automation pipelines + +If you maintain documentation in a repository, you can add the conversion step to a CI workflow. Below is an example for a GitHub Actions job that runs on every push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Why this matters* – Automating the **convert web page to markdown** step guarantees that your documentation stays in sync with source HTML files without manual effort. + +## Edge cases and best‑practice tips + +* **Encoding problems** – If your HTML contains non‑UTF‑8 characters, pass an explicit encoding when creating `HTMLDocument` (e.g., `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – For HTML files larger than 50 MB, consider streaming the conversion to avoid memory spikes. The library provides a `convert_html_stream` method for this scenario. +* **Custom CSS handling** – The converter strips style attributes by default. If you need to preserve specific formatting, enable `md_opts.preserveFormatting = True`. +* **Command‑line shortcut** – Create a small wrapper script (`html2md`) that forwards arguments to `html_to_md.py`. Place it in `$HOME/.local/bin` and add it to your `PATH` for an even shorter **convert html to markdown command line** experience. + +## Frequently asked questions + +**Does this work on Windows, macOS, and Linux?** +Yes. The script relies only on the cross‑platform `groupdocs-conversion` package and standard Python libraries, so it runs unchanged on all three OSes. + +**Can I convert a remote web page directly?** +You can fetch the page with `requests` and feed the HTML string to `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**What if I need HTML → GitHub‑flavored Markdown only?** +Simply always pass the `--git` flag; the formatter produces output compatible with GitHub, GitLab, and Bitbucket. + +## Conclusion + +You now have a robust **convert HTML to Markdown** solution that works from a Python script and from the command line. The tutorial covered environment setup, full source code, command‑line usage, CI integration, and practical edge‑case handling. + +Next, you might explore **convert markdown to HTML**, experiment with Pandoc for advanced conversion options, or add a front‑matter generator to embed metadata directly into the Markdown files. Each of these extensions builds on the core concepts you’ve just mastered. + +Happy converting! + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Convert HTML to Markdown in Aspose.HTML for Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Convert HTML to Markdown in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/og-image.png b/html/english/python/general/convert-html-to-markdown-with-python-complete-programming-gu/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..10e132129feebd1f338ce9b803945647f69885a3 GIT binary patch literal 46621 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 literal 0 HcmV?d00001 diff --git a/html/english/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/english/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..aae08d86f --- /dev/null +++ b/html/english/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to save + HTML as PDF with flexible html to pdf options for precise control. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: en +lastmod: 2026-08-12 +og_description: Convert HTML to PDF with GroupDocs.Viewer. This guide shows you how + to save HTML as PDF, configure html to pdf options, and handle large documents reliably. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Convert HTML to PDF – step-by-step Python tutorial +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Convert HTML to PDF in Python – complete programming guide +url: /python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to PDF in Python – complete programming guide + +If you need to **convert HTML to PDF** in a Python project, this guide shows you a ready‑to‑run solution. We'll walk through installing the viewer library, configuring **html to pdf options**, and finally **save HTML as PDF** with just a few lines of code. + +Converting HTML documents often involves handling linked resources like images, CSS, or JavaScript. By the end of this tutorial you’ll understand how to limit resource nesting, avoid memory spikes, and produce a clean PDF file that matches the original page layout. + +## Prerequisites + +- Python 3.8 or newer +- `pip` (Python package installer) +- Access to the HTML file you want to convert (e.g., `large_page.html`) + +No additional system libraries are required because GroupDocs.Viewer bundles all necessary rendering engines. + +## Step 1: Install GroupDocs.Viewer for Python + +GroupDocs.Viewer provides high‑fidelity conversion from many formats, including HTML, to PDF. Install it with: + +```bash +pip install groupdocs-viewer +``` + +> **Pro tip:** Use a virtual environment (`python -m venv .venv`) to keep dependencies isolated from other projects. + +## Step 2: Configure **html to pdf options** – limit resource nesting depth + +Large HTML pages can contain deeply nested resources (iframes, CSS imports, etc.). Setting a maximum handling depth prevents the converter from recursing indefinitely and keeps memory usage predictable. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +The `max_handling_depth` property tells the viewer how many levels of linked resources it should follow. A depth of `3` works well for most web pages while still preserving necessary images and styles. + +## Step 3: Load the HTML document you want to **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstracts the file format detection, so you don’t need to manually instantiate `HtmlDocument`. This step prepares the internal representation that the converter will work with. + +## Step 4: **Save HTML as PDF** using the configured **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +The `PdfSaveOptions` object bundles all PDF‑specific settings, including the `resource_handling_options` we defined earlier. When `viewer.save` runs, the HTML page is rendered, resources are processed up to the allowed depth, and the final PDF is written to `output_path`. + +### Expected result + +After the script finishes, `output.pdf` contains a faithful representation of `large_page.html`. Open the PDF with any viewer (Adobe Reader, Chrome, etc.) and verify that: + +- Images, tables, and basic CSS styles appear correctly. +- No unexpected blank pages caused by deep resource recursion. + +## Handling edge cases and common variations + +| Situation | Recommended tweak | +|-----------|-------------------| +| **HTML contains external fonts** | Add `pdf_options.embed_all_fonts = True` to ensure fonts are embedded in the PDF. | +| **You need a specific page size** | Set `pdf_options.page_width` and `pdf_options.page_height` (e.g., A4: `595, 842`). | +| **Large files cause out‑of‑memory errors** | Decrease `resource_options.max_handling_depth` or split the HTML into smaller fragments and convert each separately. | +| **You want to password‑protect the PDF** | Use `pdf_options.password = "YourSecret"` before calling `save`. | + +These adjustments illustrate the flexibility of **html to pdf options** and show how you can tailor the conversion to your exact requirements. + +## Full script you can copy‑paste + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Run the script: + +```bash +python convert_html_to_pdf.py +``` + +You should see the confirmation message and find `output.pdf` in the specified directory. + +## Frequently asked questions + +**Q: Does this work with remote URLs instead of local files?** +A: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). The viewer will download the page before applying the **html to pdf options**. + +**Q: Can I convert multiple HTML files in a batch?** +A: Wrap the conversion code in a loop that iterates over a list of file paths. Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + +**Q: What if the HTML uses JavaScript to modify the DOM?** +A: GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. For dynamic pages, render the page in a headless browser (e.g., Selenium) first, then feed the resulting static HTML to the converter. + +## Conclusion + +You now have a complete, production‑ready method to **convert HTML to PDF** in Python. By configuring **resource handling** you control how deeply linked resources are processed, and the `PdfSaveOptions` let you **save HTML as PDF** with fine‑grained **html to pdf options**. Experiment with the optional settings—such as font embedding or page sizing—to match the exact needs of your application. + +--- + +*Next steps*: explore **save HTML document pdf** with password protection, or integrate this conversion into a web API using Flask or FastAPI for on‑demand PDF generation. + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/og-image.png b/html/english/python/general/convert-html-to-pdf-in-python-complete-programming-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..5b1e991551109a2bd22e9e5f744222fa915156cb GIT binary patch literal 49260 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 literal 0 HcmV?d00001 diff --git a/html/english/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/english/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..7a2e7d631 --- /dev/null +++ b/html/english/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,346 @@ +--- +category: general +date: 2026-08-12 +description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how to + generate PDF from HTML and how to convert EPUB to PDF in just a few lines of code. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: en +lastmod: 2026-08-12 +og_description: Convert HTML to PDF in Python using Aspose HTML Converter. This tutorial + shows how to generate PDF from HTML and how to convert EPUB to PDF with clear, runnable + code. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Convert HTML to PDF in Python with Aspose HTML Converter – quick guide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Convert HTML to PDF in Python using Aspose HTML Converter +url: /python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convert HTML to PDF in Python using Aspose HTML Converter + +If you need to **convert HTML to PDF** quickly, this guide shows you exactly how to do it with the Aspose.HTML Python library. Whether you’re building a web‑service that turns user‑submitted pages into printable PDFs or automating report generation, the steps below give you a complete, ready‑to‑run solution. + +In addition to HTML, Aspose.HTML also handles e‑book formats, so you’ll see **how to convert EPUB** files to PDF without leaving Python. By the end of this tutorial you will be able to **generate PDF from HTML** and create PDF versions of EPUB ebooks in just a few lines of code. + +## Prerequisites + +Before you start, make sure you have: + +* Python 3.8 or newer installed. +* An active Aspose.HTML for Python license (the free trial works for evaluation). +* `pip` access to install the `aspose-html` package. +* Sample HTML or EPUB files you want to convert. + +```bash +pip install aspose-html +``` + +> **Pro tip:** Install the package inside a virtual environment to keep dependencies isolated. + +## Overview of the conversion process + +Aspose.HTML provides a single `Converter` class that abstracts the details of rendering HTML, CSS, and e‑book content into PDF. The workflow is: + +1. Import the `Converter` class. +2. Call `Converter.convert(source_path, target_path)`. +3. (Optional) Adjust conversion settings such as page size or font embedding. + +The library automatically detects the source format based on the file extension, so the same method works for both HTML and EPUB files. + +--- + +## Convert HTML to PDF with Aspose HTML Converter + +### Step 1: Import the Aspose HTML conversion module + +The `Converter` class lives in the `aspose.html` namespace. Import it at the top of your script. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Step 2: Prepare input and output paths + +Use absolute or relative paths that your script can read/write. It’s good practice to validate that the source file exists before attempting conversion. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Step 3: Perform the conversion + +Calling `Converter.convert` does all the heavy lifting: rendering the HTML, applying CSS, and writing a PDF file. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Why this works + +* **Automatic layout engine** – Aspose.HTML uses a Chromium‑based rendering engine, ensuring that modern CSS, SVG, and JavaScript are handled correctly. +* **No intermediate files** – The conversion happens in memory, which reduces I/O overhead and speeds up batch processing. + +### Expected output + +After running the script, `output.pdf` will contain a faithful representation of `input.html`. Open it with any PDF viewer to verify that fonts, images, and page breaks match the original web page. + +![Conversion diagram](https://example.com/conversion-diagram.png "Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter") + +*(Image alt text: Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter)* + +--- + +## Generate PDF from HTML with custom settings + +Sometimes you need to control page size, margins, or embed specific fonts. Aspose.HTML exposes a `PdfSaveOptions` class for that purpose. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*The `options` object is optional; omit it if you’re happy with the default layout.* + +--- + +## How to convert EPUB to PDF in Python + +### Step 1: Locate the EPUB source + +Just like with HTML, provide the path to the EPUB file you want to transform. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Step 2: Run the conversion + +The same `Converter.convert` method detects the `.epub` extension and switches to the e‑book rendering pipeline. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Edge cases to consider + +| Situation | Recommended handling | +|----------------------------------------|----------------------| +| Large EPUB (hundreds of chapters) | Convert in chunks using `PdfSaveOptions.start_page` and `end_page` to limit memory usage. | +| Missing fonts in the EPUB | Set `PdfSaveOptions.embed_standard_fonts = True` to fall back to system fonts. | +| Password‑protected EPUB | Use `PdfLoadOptions` to supply the password before conversion (not shown here). | + +--- + +## Full, runnable example + +Below is a single script that combines all of the steps above. Save it as `convert_demo.py` and run it from the command line. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Run the script: + +```bash +python convert_demo.py +``` + +You should see three confirmation messages and three PDF files in `YOUR_DIRECTORY`. + +--- + +## Common pitfalls and how to avoid them + +* **Missing license** – Without a valid Aspose.HTML license, the library adds a watermark to every page. Register your license early in the script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relative paths on different OSes** – Use `os.path.join` and `os.path.abspath` to build platform‑independent paths. + +* **Large HTML with external resources** – Ensure all CSS, images, and fonts are reachable from the file system or embed them using data URIs. Otherwise the PDF may render blank placeholders. + +* **Thread safety** – `Converter.convert` is thread‑safe, but creating many converters simultaneously can consume significant memory. Reuse a single converter instance if you’re processing hundreds of files in parallel. + +--- + +## Conclusion + +You now have a complete, production‑ready approach to **convert HTML to PDF** and **how to convert EPUB** files to PDF in Python using the **Aspose HTML Converter**. The tutorial covered: + +* Importing the correct module. +* Validating input files. +* Performing a basic conversion. +* Customizing PDF output with `PdfSaveOptions`. +* Handling large or password‑protected EPUBs. + +From here you can extend the solution to batch‑process folders, integrate the code into a Flask or FastAPI endpoint, or experiment with additional output formats such as DOCX or PNG (Aspose.HTML supports those as well). + +--- + +### Next steps + +* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling `Converter.convert` with a headless browser session. +* Combine this workflow with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or adding digital signatures. +* Check out **aspose-html-converter** advanced options such as `PdfSaveOptions.jpeg_quality` for image‑heavy documents. + +Happy coding, and enjoy the reliability of Aspose.HTML for all your document‑conversion needs! + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/og-image.png b/html/english/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..7839f26dcb7c7fb8e161ca2aa10664e7142b9856 GIT binary patch literal 49297 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

T!f zY{PARI~4G|sMkm%jPy%XIaD4GOqiPp!)^HF#Dw4dqz8~fubp^4KR{AMc6kDHyb;#= z?=h{X5g(|c*_h|%=XY&vfP4;zLb%3xkU!(s$bkS&hNp_(-+A)qE=au4`%9L|XSAJ& zc<3LDA#DaQ$8-(UrT=sI4MBBIF5V>e_v{+dkEP>(PfY!H^3VUr>7)OdLG+(aet58b zMJ_Vi-;RM_+Tz!o&r|wc!{8Y)@(;88mx|<_RG*})v;FJOA0!7>WdRU~)P_+=2&gxh z163d}Si-;nY~|$znBHueLR|cB6%~}!J%5k+(O26f4n0LhKChemR7M4OO{zxG+0LE? zXD9dPHRtC^XYz^AgvlMpGuYxzC6Vj>dhcfg>L6Urndp*&g7Z_#S2x2)j;#FVV^w^s z_Cqr>^jvJx|8j0B4*a9J>G$7VU;zA|YZnW}41TXapZr`KK51*bzzV9VsmaX^3=W?E zQ-F3K3>4vqQkxxDCz5j32~tatkT5<0r`S5zc2-#AINzfs30TlpV2VlsnKQte34xbL zVQz*!$1W05$B$(df%7sm!1h@0iAmT+KXB4Vq!jntKuhcWuJ?gZLpqWyXy7TpEk*mG zzd4*nvzqK;G5llHvX>2su-f?=bCs*W_2!f~@zpXBYwG1Y7%Vwa3n+QZy^N)tt38XH zHWW+vV!Bb*z@$9W3KUN#fBz7{RlL-zvRxu^{6b95*lS9kPxA&q+ zIr@H&X0mR52Z}p~Aig_R{!{l7@&5A7%!#1{8%F5b}DISr@w@v0@MffnO5NrhUpX%C{nQ52zEAZ zVJA~4S(X?Q(pP~9_M(q0hAr0C8xg+Sgg{*v2-ooU7y&a3RA>3TZwZ`nMF|0P8F-^p zARiMdt+(#N1lQ8Feb`^D?waq%M@B&c49zG06n?L!r)#J~DIEB~pSybXtAP|x#Hpz} z>MQdvXPLYaX*}&6;*z?Rg@rpn0;*lQ^j<-(^k-3N(a(?896$^-IG_MPv?x+RGEzYx zo$uKb7c35U7Q<@hoTq;ot-EpTkHwL!WVs_dfhzCMpG*Ln81oq^;H&PLBuVgiM+fuf zkY*U6R_pBzQ0^uy>ySW|0oW?)!wD^p_hbw*6B-8he!|e^xwD9n)TyZh0od*FxP#{8 zWSWSD3oj6#0=h30qC8V$f*UDKN=8_I+tr0n7eQ!Kf$`N#ISx^a1<(Gk1CYi??|3-K zg{4F!a{er6nbd^h|xM^aFmWv2nNb*Q(YgCb8f4>w|*2 zw_`d0M$}7!7k}2be?XzrGcy{xy73phTR?ic#i|d~!N2i3(*+E!kf%5fzt~w$$ZtG78X9vF+SM&I5Z?W8=9;z6>t&HzaY`I(NX-^p2IVbGDIkd$Gm=jiiNj#HH zf&I^)$9gM7_N*;7xExKT`2dQVfjE*t-=xyeF&hgXEcgge*X~pq7&*h@x=OTrqA1wx z2MT`tKtlBq5E5F{!pU#SS&u$yX$Egp*uqD$_A5W%Nm=*Q0aIl!QvJ;{8GSNH20L&j}BUy&4&Dx$qTn97EqClaFk^=c2`q2yVZsvZ3r zX;a-Z0twKw>q|&Tbb>dX0UJ9DKsn7`XNQa1@b-pG6Pf6RR*T{?$(Fm7M2A*{R5I(B zWfk(7dGqBEse27KLEA7ZDdP4ZdeD{|)HEiY-CXCo(&*4?Z){I%OHLGCZP%0T0J+M| z%#6W1?VHmClA6zD@kTyt%|IeSpQqAXe;<##43VE1!xg!H;LRDcCp}Kg%eBBF;a2(* z3G)^ko0{@Fn4DyV8WuvKbhaDGb90n_3v~cR5(aZe_sfPxU+!wM4t?j=?IdL?w0b%3 zzQ0t9c$da5AcUR+$9QZo1D?{Pu&u?#`0rpW5aO^7?agjrUvdE9T) zJh~o?Vo|kmb`)IVYQ>i#?&nJepaAAO0Q+b`SW!z^#NoBGyL@dC$N$dWn!@PaW4;>~ zN-FHNJlfU*w-&Lx;$)@Unl|t;bxB%Fp@dvr^MrvDD$?_nbQkU^+-k^XtL2qGW5kR; ziF~ii#-QGD_JTbR3a$0&*<6!>;gFNjc(=yliRX`lo0_$t`ZbW@DTmgZpW5zAV`Hl` znTxG=r$SO3(rBZTlXribd7>#6O7io8BTTg2-90!**DLd^^jTtlPb=In!a&nQsK_^r zlQC%mpzW(HfW3)|Lje%OP^5Thel2TnV0;6d-$j4^GT25)inCXw!pQIbH$YSx7*yzz zTkf3k9Pg%dFc7GPfNVaUhr zuVSxDDPKPG{xHn_Z21JRpF)t$USNy8rafHWcD%W2>qRq5ngjz8!r@_QdxBxB6JSqZ zSE1ts3t$%)DT10t!d56^bX_(H;#s(K=-woYdVmA1kt=`si(D*3!0<@r` zQs!mwoo@7_^w%8Y;~jUKla)4F%;OUTa4TOF|C7_?c;aDlfPf=zFc%&WNZFsroHuIu z7`NeQD>rVKWW<#68g0QMY2vK< zCShznNCz-cDe`I*VmS+YK$yE9))T8e1fW@Ker;k!-{}CenjdxOQC5q;2U3kO2KYY* zPF#wL-EH7`A)$pXIejA|hvm|eETgCK#a?k8zsW?rg7BPI#wIs6&5id4lG)ASVq; z(H8{Utsj<{2nS=mT+HRBe)yf=gMesdVz23dQcDw0jtZ~h=jb&b1Q&W2JkH{ zhK=3?R8>{!H~A{gSQBlU1M#bB{1;AuE5)I%j@~i@(D(MB%?iy?8PLo0v=o}}za)O3 zuSo;sx5Vc3q<<(x?;a>b3^J(j4!FnpEEQvXTSAEdvR{k!HRj@8ftSluL4~EIr53v$ z`|9C>kYfspRbHo40I3bUbr+3^mxXd>6Y!uP9N0=F?fS1uf0Qzt3=IFWrEZ)e;8*L` z*pj)=SQP;r!Oz%cxPo7|Acj(eO10Xku9=+~%*o+QXWqgY#nkrpAt}u4xUn?6U*78$ zs!5B^@V$zYuc$OfYu2A08M!)xLKMEU&yUx(RyPMnW+xgsUi~m$(`q{3bx65y@nHpW zIz=fCbpV&UnfOh>2&Af|5VsOJ;_u}qGO7!VjjkKsJv!7A%8^6Fc2gLdtnZ;vNYbj9 zI>1`8OW_H7FngPyp0%YOpmW`8ygYv%1<2;5(@24ZECS)YM#V6SH3} z;tJ<}5AE!k-`isq7W*&-iptKmWklv{-e+R#C%ssm8 zVmzI1_`(=#XeAv@CLqfelg7J*J5lPUO`rY zJdtwTo--y@5S+GkQ6?TOk6iM~)^#6X;Edwuxg~WJug&}(55NOL((-H> zr6f+{{q1K!^|+mzYRoB<;pWp&k`NdupSLHpz+rn6Zd$-lHEBLLltL%GbhXvhgMeij z3n+*F)HSoTd^Pqt0U}1|iTb0X96w(GwsJbT2Ot{lr5918JafG>Wu>L*-Y$J=U(tZG z{f$CW(32ptgNj4ZdU}t4RshCcN(+}fnAzC^BVHi zA3(M&OwGACxo34i*p%F!2StST_8QUKzSpxo#4JWT!Wab~*EZ-60?d2uPQ7GoplacZqa&!;I41ozmT%b2rcPzPG>it#7S+U1zxv z;mnyi`|SPy|7!b9y=G$4EB!1kIt*8&TEoM&oT@(VEQ^xF*uix=_5gfi!x{MxXngL) zmidRJ0IGFcOv(wV{r4_Kh!VM&#cHS3Y zI3PF`^`#36&Kfe}_mZhOCYXA(Rm3_^1<3g$sqwC%w}02cGx;lZC>~1%5P2J&hvKY- z&oPKjj@u!xn3&v|?0Jidpf{%jon@-YLXSyjZ`u_T9M5iO?=?{bG&@ab?gBI5CMtQ< zz+n2bD+&9a7w`-J0O05VNCr{D2guEh_R1g|AD?1$dS!e1|Wp89)`VaL_Xlw4F>ID4sE{|h<^7UDtwzFJOiojjd*_u19^!?u{8hc0k z{%KIvB+Iv+7$_)6%h*#8j(kv2?xdnZg@v&3@ZvlG&XVSJ=2)^K2WGDyY*CP_1p-v* zF3>swHw_>}@Zq&vpx|SGwS8vyMJKEP?vgFr8TCT1Q~hsW^8$lpWsF%hUjY&Ga1xi{ zt2VO!V}cU!Y^)a{-96xFKDijpJ;KdAJ3G6SjfM1Mzu}l)PM$@Q)lm7UIW#z^S#Fy8 zGYt}Sby>_+0;BpOA_}T!^IeOsFcn5v1L)Oso^Gqk8TTh}r7Q(3F>5>13CUnrR|5Iq zNSf$6G6}cCo71A_;c1bP!+;ERK+Fyfe%jmFyn*X!QMt7Hf{*0H_w|;o)S{iM?v&b> z`_5xyZX-VVV|twAdT%0~WkgZ|THDNZ^OBrV@!;K!yT#8vJ$#6#WRwA*2g@v+h z7trhLxSzpG4R+OCVO2qv51;s$OOZRHFcOCW21`kCIhzImQR}R_v9YN`oCrU`2l?JG`J=!hQT#I3q__t13+QSWuEE^k#-dMYONRB7Nx zksy-Uf_Dq9XSPo(%@);Z2TDDMpjG#~z>-zdCYhgjZYU-0`1|ZmH7Ci!hC8bE6Sy`9ZHc=lUEcl^&jI%UdzGo!D+=cG!mf zBL#Cr(x7Xa41OVcwg;iH9I9o@@M+2vIb{C~o|HpXllKLp*SleG$jym8cZ2huGnMv( zhv~$T9Sj*@WIWRAr}LSdnbPHh+U@NSMWWB-zG*lo$91U)UGSLCN|uuO`%_zvxk#kD zYt?yQXmEsuY-3LF@aO~u1NW+51b86EtRGrgSj6Xd<@o#IgYMY+4hc$~N1d31aT zx}g-v(8vfHI+4g>3=qaD+Z=)x@f0<^pkm_tyThgsZ5>S{pp&o4xVMf;jC@Z4nTejX!t!U zS+r*Ws&r#h%%yMQwZHrIyXG=XS(uC8`Rw`DW@L0a<$Lw_XxrlswayUrgIY8nEKyD_ zBAt0SCdNrltr4)V0h8JMa;Q$DLyUphIUD9`O2R#Zh!aOkoAo17O57->RQ!+kL(X9A z3HNFg*9&`KOE_NdeW6)oH8-z8K4@UiE97f+l*pf@@#=mpz67c{#?)+V-f>f)kHocK z-Nm=#Q#50$3`x4fcXCvG7|uLM@aF2TP3(xE58$@WFDPr9Qi_^Vb`SIsy6CT7u>^z! z!ELwuvzR7wk+;GNntv@tk2(b6Do7_INE2iV1jw+Wi)cW%5>9Xn*H8Pm+l~}qvl8?a1$u|yay*HDk>{C+7i>l1nh1` z5yGzUYp!qU-!q;RLqRG1t@)R5B%hG_UqI~HO*@pR(KQVR-;p%$3h`R^GI$3)#SE+j zIxrPkrCzCs*i@<=w=_F-Q_Fk3mwl7wXax8~05)H4x3OW13NtdX-~jBT9`uH8RsSU2 zQ{btj_(^v^L`FJGH(lB1tO|{qI)7e7S-FfM02hzoeEcC9J8yS;yVm4z{?-<-HlYSZ z=Sr3(N%B<&v*TvcM`Nlw?zt%AeMLAS?^;^XDCCP_tcFfaO}*mfu=0(=`cPI?O*beD z#KFZv27}h?>`t z=PUNZ&EJ~>q^{|jkh>fS3+o%=VnR-9^nN z{4e~jj=qRxNXY{#R@H_~X$$+UVv4XLn{8cblD~&4$c~8bP$YU5`Q!T+Zf=z#6b@f7_L5>f?t8A0wjrhf`;GQjAZQSiUCG>g0T7W04iK@%mkeTuaI zPfLeSRz@Sq@&tsG3w=P`Da71$d^Uh+`}D_%K_&zf@jC*lPK8l!v)r>>-=zk%;a2c~+Q zFy2{7IWNfC!s~XeFnMMFb{O01aRrACS^il4EF_csn`kSu3I(nxihrN-XX7*8V!x9& zxpE~qw8I4j1rUdocX~YuBZ;~OnlJ)<2Hu#_~^Z)caL)aWq}f^2{_bIB!LgTq-h z6r(5^FOf5B`qj_I(+Xie??*lV3?x9LJ(0v6qf z>@z*YmKLzJ)k5T#1hHu~+HUzBMNEy1XuBn>tSo7S@rQ4cAkMKL6&v-%kUyxdiR|Ok zJbwIG*)HJfPf>mSRX-Dtvhb}1aD{Z^qoY61P1+qF=N30M&fvwFm7P=$7dwnSl?X^y zP%YrutEZYpVpaFwd};xAO&q42M4i>%aZdpfrzTzVL@Wy31Q<$QTWy zR)G|Nu&K?}RjO5tS(yDkpoO#P=vw?Rh`Ak9n>+OB$VtoejWVvGpE5u98cHLwqRLJvC;$N}e8O1k0aLy; zkNt}CGup|AEg~##RT#;qw|pm4K=<708S^oID>2cKUV%cuHj&~1Xm#ou8tNPBY8&d1 zkdZ)Rs|2CJA}7xueyDG5&Y#q`$1dQCEH4iXm6L#0W>f(d$>Ugl-nie%soBq>1L`VF z&Iqy2)ZZSRo~93(j_M$zqoXU{TTJSEujOuErd3n`_l$KI$A{}nH`Ujk$w>u&dp&OA z&4b9vtxXL_TNX3uA-5MoIEIGavaC9Fcbu$nOk-Jl`{T0k;6bw|1-5i@zPdH8z(B)k0P1J{i)-# zApG9l7=m24S+<0O)5B-a4^;cVeYQ59X5|fcOF1aT@?2#72KX^YzAI35wc$}}6!pLt&9EB0{@wE<+pedF`sCKPdq zb~^F|mrkCvrhKNMK}Iuy;kh_pG9cW6s)mybNpA!0w5-myYACR!0h)N_kR|G?9~Qam zK$4XYT(UWu{BEOP7MWW+*)k*;jOjrIuTk_t(pF~*_`1h1TSK&+8DjfWxtQPl)|*rT z*ht(&q0)^o7{?_YdA&wP#jjr~^5JCy((Dwgcpy!zjFVX?rO(*;E;BEWk9&`*O(XVo zqGD4UaLf@9k;kdJ!n3hI(`Tt!9u0AQ3UQ7i&cgp4{371{5b3 z559$joceM|e*gZcRc30W#S@WQBv5l_Hf8k`DJEBLg$B4WWX$V-iyLRt{UefNRe7$G zUyMh5TFPW>oc%KUyBj$OCdl6*&A+||24N;7^d>@V{PN3zkigjiV6yUgmmWveaFX*L zILnY3S%!eVuc@KBww@ntM}%}5p3$NFH=0`tXQ+@!)t&UXy5`yNH`j{WTOZhOK13sdNd6ZzjD3g@yGln}G}g1**R4dWw!VB9j$W=4s3iJQ*nE6co~R z7n4{K=YXvTD4&^y1qlg}uP?^U=5>hz8HBQrbP$jbe`aioIS4KjM=ClcFMeca8Lj4f zQOd~34Cwt#Z0;FvzZxI2r+^+fefpZ_?F|bJ4UNm`AlcTdb6+-C{}6*KA**VCRVn>! zCK=FD=iJiL&t7~_FS9vU_g<_|O6r+UN!oNsuab0kZ}>fQ02q0RTZ4gxB(DGzw9Pv{ zpm?(%8NfY{LZt#^#pXQIdl6%DAaYxZ@L6nm3U4&d($og#xUJE$Tl&x)^ydfSI9Y1= z@QcWVD%m)ww)4(jOiF^FnaBH09Mrq6Mss_NKlZ)a9Tx4w3tR zQH4KahW`vVFav};fOuh0IOXHVx8!;XZ-p?;6@`#v7+aa9=^sZrUs+Y`A!M&L@BQ`(j{Kb8;|gqldQDKyKKbb{GO}-9XnrUZUOL zHK%1XIRg+nR1%(VHtosc214Wjevew(pPoiRf3wz~;Cgt(wfb5L&`mYPsn^H*Mf8ek z?ul^&%ZDG6Q-B4tbS-Ojl*fiuuTEF(^(W10V7gmC%--y2Z~J;GD=MCk9zJ$Irx13y z(3CKC0yIuc%<6&u_laWN#l1C|vbOH-eCBU-L8>Cgzz>HgKMYfZcqvY5aC;oV5)w9f z7VcWple2r<+uf$41Arnf!>fx(1l9Aj4->G2RFALEYqL{R_c8;P!7N0-iVwgGhOp`S zdeDUTCku<8lFkFQ(A~ORTRW(qE!R);GiS#p0`>_oN)vEFaT?FsV zkT~sO5z^-WOx7~f?tc&JHPlrh_AmE4zkt~$UF;Xl_0=IxPM&|eG8O#pY&{pd1vvkI zT(~^hh0`V}&gz5g+zeC0(%RoU%0Kiy|!gQHM+B7ccS*|&R zsAVTr0N%2c1#%GhU-m6e&0R?Vs7qif$b>eh%5f?`4%mwoY~81(r?+-_CYo;7_$&E; z#^zg?XAkH)m@Z&!ZIXV@b!Lj1cf9UzYP@+wFNur|jn=%MqN*(h9)3Xb$z6ZjG&FYV zzq%$ocQb&23X6|O7+b{_ZY#(yzPy0y<@S}CT3G1Sex?-NE}$ zIXv!9JPY1p9W+wh983a?3FcSmm*|Gnwr~0Ec0N1Ghdj}flkqwkVTG%fL`5dTHhkYR zM@RVv?%nwI*uakUOVVQM>J&}-bX2r8{3VdC3WtZw15{0z${)TT>VD@YNN%%#C-$ol z6x}XMqaSQXCSDJ?AGc+p+vN^6o|xT01EnvwPLn_&LfrfAqulibhql$HAcV`4jgrR4 zXAP@IPP`+||O+~T|hPRIUJl3y4rDRFvlT(4%` z&kcS1ECwWROJTKZed*77mni50wUhZt1wE1t%z*D~>){}tUbvloT7LpU6aYh-3*Den zu^F=C_8(bJ1c4F2Eb!LMEFl_h3u--};Ym-ml+jN}h(9sy_1XL|6^2bHk~TItSo`Vl zh-cxlG(BBe-3)Xuqj~HRF`mewN^+qSiyMckOHX@mgiYHsB$-V5ToS2!o)y{et5*x@ z=rh{a&AzvofVf7|7eueB4KUI10GY;K#zTEjUPTifbFhmyu{qwXBuI~}MaOBJED3i& zI~?Ig(10 zW1Jt5G00+g4>LLxRL(ip`cm^Okr;tS^Ct7dFCOqok;}#NYoCnJ-{~&_x&wohzkB(R zX0i!1@BmhJyKV{--+aONn#0~M^*IUGCeUA+lxhAz|2Y5#_`>gl^d!U-)oK7184i!l zVtE>LE|WVZ;CW1Rv~GiKLC09Dr*5VFJ_n*JiXdBV{;-2CLCsW-UtU33>D+-Is-mR@ z!V)rpC0hCm(uYsocKPdgQ6y4ztU0sJk3~Uprfb_pSH<1MHpN!pUm)ZJ5)VMf6$TbbE%pMU_a-39W2_HNAaj5v@rCn8}OKeUg7)GcSRqY_68$xz+Fp9 zOsxB8ZEtU{&>zKN!rBN<;`Mfs0a7&i=Qtf6|LS9S3tpQ+^ z>D>n(`0`ccI5(OW3nDRI+xGupQ-vXHsZU*%wKdKU5wK)-LtP`I7|qRz(Q#PgUQs$V z{f@ww+KxXEfy^wEdjW@j1a-e&ZK00|ZBpOeQ4+lO?GtYM<*&RPWi!x?gMGPt;GwwbWHiZ?81_S#b@ zEh)y)az8ap*E5Tt0_i8mzjvcT_A4u@65e?A=0>#4e*6f;)sBviBuT_+!hK=T z_%D0StAO2*aWYaS1iDW>ijvl6Cn1Yg0H)~lvcs;C z#@^lzGa@35l6j>HlXph6v{cg)7s=?Uu-k%si_weqo)XFsG9iP7y`tt=uk)6Yg}VdU z4#d{>wtOnD*G1_cpgaQByZU;5OYVlu%pGO(=~bo)#bkb_TLD2iI{VI_od>1fcXzN* zj5GDv`=FZV=;+)@IvN^!A5{`lQjS4T%~jtF;4{=V3ZEaGli}iF6aL*_+p@GUwEB<2 zwAr8xXsU^m5`hZ}hP?fIsRJ zvm)IxNkEUK^d7A6dc4#pZ~Kyy>C=^|!(}6}nLw=CR~Qjacj^BT#h-ggo$+&cUK7FI zHY}@A3`BGf9(>NV-&g%VrIo$4TBmxFb<|R$*V-z~>vj{pVH4TdXuKM)tj6;oi)i&; zM(Vcn@74fgj7IuE;fedFZ|t%}9m0`8AIjq!%DDsP{lrM;|F$BS!sF6 z_WNYI2U3rnQQq1%HVMKJYsVnv#NoDm7qBK^Y(5JL1XzmZ>sW7?cV2?D(pRY3=L=BV z14%H$uzr~)g~tie5zhTNfY>dU5Qu`UcXDkFC8d*_w{4mbD`w<&FYfUryGdHMMG2}y`RE*J2{9U%(3K2=s%b93=%yni1T9c{F}0tC_vVV>a$ zF(I@6>}n8>^WUeZ>R)Xwh}H-0y?>O&_rl44uJ(T=QvZK0Y6YL;zi0hdObot$@_*ky zVkMBu@*%qGfA(D%{~zzWP}QN7q!%e5YUCBPUBw+O_|J)z*1lr3ba!GN-RA^?fkW}H z4*5Q0^gr*%GvKOGY{RXH%>UmzE8_6K8t)e`K=#kcMT-8rdBXqCQsDpnQ#*O&cOcHW zg7MGG|G#W&0k&HRM|$v+5J)ibU+cU@xjd@~>+X>my*tMs;c_}U;qwVsocAosE5r6D zxqSNI>lqpr)+^i;1x%E^{nh3Dl_ld(pK^;bTJ$Tn%`J{n*92u`I;A{Ymk*U5(X6d4 zRyo}Y_=GbN^e00+8$0-ouGbb+BVU}HoI7Y*a<*u)kQkqMh&aDUZ*sQQ#c>{p;TsUJ0A4_A>sKtVJGd^}cr67o3M5-YV^!5vXhEbZ??2dXP5z0_^nrO?P$Od| z@!7CZt@J3)7ZvBLr3+1bdh^srVz%Dv!(SCl*0fM-?`acCG1Za5&Pj00Oh6}dZD)88 zx+-c?Wx^p6BjZCu<3nuRY>p020fd|m?a98Vhh-q8M`gd@>ymLaSb01fr%}U*hYy`K zSFoP=lo1&a77`j3qJ9+o=!5djB7R<<;hQUe9~_V;uyu<5 zT&T%YUQXU3zreOpX*VP3;RDZDVvJWfT%UR2iNy@8*LyvRp*ssP38}+MdK2^G8MTjKaMJ>T-S?J7!9LH%(}9q@ zut*dtKM9HNexW;?Ogr_{iG{(HK_-e`hlc_aEGaFI@Oe0+Q`e+|9aXUX?;;CS$JUj;;#N(K{^ z{P~0>%91RstD!B{bcFPF0M14jJow{}_wCck$?46FtujsKRiiAkuowID_5H?W^@X#p zxY=vj*$>mP7r*;y%}kn`zR7>p6ScH#t=rJL_=SIbVtDxKWIL_0%26c}ry6nF5Z>N? z(lP)8X^RsjA3^fsm$)oza$Ty$?;q#p(4U8(P*rh_C79*$l<4f-b*jdBqJJ_opoPcvH_EJtx{`S%LBCB1QprDlqvu3{( z+;hQ5D+zE9Jdai}>)qVU7^SrlvkV7J#%uWdh?)&ziA$s>F}MVG2dg(tzJ|Qc96k59FLOGaIWK zig|kK*y_Kv6ZJ5bFn8BZ`knFH+zdS5oHQQcby>6_gWWx{IN*)fxfUH?y`ZozJCpfV z{di2co~UWKFMQ02HB~6@qM7lkf5eniz+IA659+LFgQLnJCPt0^G$XGpy*8JUk4jj0 z&+GhHBYJ^p!dT5~H?A;|)>2Rm!$0bR zlG|fYNe@Bk`M9Os?`lul@ndml5Nzbq9#k~YuE4K#pBF-*kvPjp zdr8^Zp=HdqQ zthUcK@mU`^i2kT4fhRv|CJ%5S?^3s5qCdM!(WmaXxDFCefe;2p(*R@ z0_}d_4=r_xd_9rykfJ89xD!SwxUW9pJHebrESUNc z-_1CQlls7-A%@b`)nCZKT2Wg0ER6W|8_JWTLwEhL9xbijP{rrZL%^}KLnhXo5lTMk zxqlY2w=g_BtW|DV)exuHL5~sI4-P7QWhmmzP^`vWZ?=VbPgi=@>F2a0j~LtB^O(K) z9}UN67z*19x3#h_CEDr0A?)S--9K!)d~^M(o<9Iu(pw;3SFI;AJe&Itg8nd_u+VA; zEQzR8mx^gpU#Q+G>OuP~Y)FWbzSPYoX|T@2og1?2yMO;Kg-T7vqpE@{)OB0!OM~6Y z{XM3_$?iQmIux+|3UU%xe%`v^1m4q=GBGlX_IC^5K1D0!V4|SI zT~Afc+v#Wo1F<5{X=(~j7PJ{arsQSf#KlDQh)QI!9!yCsykq$=S!a%3A<1a}Z>7uS zmOM}>aGu+qdnR#uR!0TRbY&n%;gECkaPimG5+%j2eKvtz9@&kNc?9$s)3*L+t zKjw1{j)ogQ*f@!q1&G6V&Ix{!zNt1OH$@#)B z-W1p64b2XlcOEF~M~GSO?8Fs$oz_sm_dEz>{~Zb={|<$RbI%iOG$M>tzNM@mx?C#S zQ_#|`7@Lfbjd71oumPk|uI~!-c^EPK?0CQaVfk2+*PXi5-0<;!j4Q{hi8EQRz7V^! z5m0OWNT@?Xgbha;pu&W`j-FE+;)r%e+%_2Q&AH7R6~df0J@mci^EKu_nOh9RSA03% zhd3gv;SZ@upf~xslxYY!SQ^}`ZMfOEob7DU!$|G+M$1A?9vr2u#m3@l&rJIHVQ%TF zHn_SSca(;Pz~(NGfh*?7B3Xc^m>kkrGSU`PnFH}`*xSXlwA?je)x5eTpm1KO`RVl- zirCx^?ID>;*evfmQ(mSEA?A@j^cOgr-!1L@Q@odoAFGbHYIIYqa`0P8RI0aWMn;7$ zi&1Tfn9u1YBCNL(7Zs+ftlN!f8JyHCd`t!i&-5mN&yhO6(j?3Ka`U^7z>nC#zk-v+ z^{1HI*dX?aI7RdpzGA)by!LzK6=(437^YU9pdml zUry1U;O~zO4H7xupQrIL-QEBdfTM0JRH|iqy#LQooh*O)qOuR7Q_|z(x~x)*L@1Td zsG3F^|NQ9|hJVYNUV2$|nWN+R4$KDAU@vdAZ!bsDu3IJ$m5S{9lc%ScL*wK66`Im1 zEOe(Y8PQ^XaB@{8fBYC%q}xI9xgX3t^LJ;jvUTQ5$0B_h2U^ zS1*oL0)t!u#Vof()-#%6e<7Bjc-H=vC%&3)qP!dga|q)7;3=r&%56t@SR1&TwkA?JtYHsCO;y z*x&tR>}%VmnHXmabyG?G+4tYe7|hI z(M`X+TPPcFc*4dK*OO+$zxY;;$zN=Hv!R@M{Sh?fv#(5aFSe5_EW6(P zdI4UMm}Itu&~(dL!+SFRx{qp$nSmz%JS2 zQ366>Emk%;0rpo?2MxF%u$4RerO;8sI62v?%gR<4P#0^)`KE|MP94ROF3&<0bmzTp z$i6rp|J}EDk|37%X<-iY*pBc{j|hWOQmuf=RA;ymdTy+Q@K)!p?q{)fO<7wkWN>#H z@EE_Ll|0*Bf-t|9$&*!Z8T71~nVD9hpattfS%vfH(71k?7LCBH!EVfFE9Cof7k9i* z>9-T@_T�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%0A5;`|O4L3^ER$h{Y%qoW*@{PoW!r;sQ+ z+{V<0vzC^Yy;Adg{a)_w+ackl8G%di->5cb*Mm)V@^Yf6Uf1gIA`U(^jM7_jbs=ZU z|9n`P&ki=rtWhxgnq6o72*(@gs?ReN<Ra8~q zsJ^gBG($9Xl*{<-aTg&qn?Bl$1fHTB=`Tb14db==GnBuhhw z_fOZ>gw**CK5j9xfw4QW=F=PR={RHD%eiswDUZ8@TE;*Vx+X!SPZUjxZ0Z% zE!1GB*x}NklPVJJn)FoPNV~=vHXU=ea5rIn+SIVcsB+SzCm!kd##Qy(s`O{QiT&;K z=egPx3KN$3QzXGyGz1CAJc}6GdCJ5kx*9i->!+9+(wg)7^=oJ23kl1;#;9Zntn2Eoa-FJ2Y!in3B3d9dBb9b_ShoHG)38u#x`>Dij7ZXInZj-`hy7TA z=`ve~h_W+El2W9|6g&1EY=n|gDD-=O->#J;PbHC85mai(z3n3JwPB4+(ngi@ggh4} zy0auE+kgMtc{QiIqX@j=vTX%svP2#?A9fMFUcfGc{l3dA;!@xu&n!xxhTNuio>)$k zS})Roq%!l9$23TSpwKX7aD;%A00E1tM~qO5PLJms&#(njOyRzA&c5VK%qM1;xJ{34 zY3b_gPkXGTr=zeK@AdPgjU>gq`!{aPMj5+GAR-Z@HiMkXZ~j(Y6>gn22E_YbktRkF zMG)fQbf7_J-^_i>!2=&w6nU|f{OWtj%a@Y;^$P{Z|G-z(H818;OL7f{dV9A-R(}Hf z#}Uz7Mtpv0h9FX5Al?uy`AR)MtD_sUqY>`OLv(28d}Uo37m4?>(|kk z#^upu*~nq-yw@Kr)kF7f4L;#26rtI&(=Qy-PkgL_NVOsyTQtwQSRn9<@s9=j-5|NBqI+0{#9n5cYEU!%{E)R_qgVb56YiBR4tR#VVMJ?5Cj~!t&Bb&?edF0`Q zH4U>n=|MV5)G_S}9Ua}w{SSuS`lr=drYjVdWcSw{mchj2evt3(rK*~}a66D9W3mz2 zXC>hcu~-=cw`y+}eiZ=&lk=!azE5UlprcV1>lSi z+JS5}285qw{f`YDR>53^{`p}9D^krJ_|NXrq0b*uU23KGA`!ilhX!VzQ%ai}RKy1r z4pRk6IG4cG+?6x2Ah+DhT=syu zWVcp4sgjIc{eB(nJF>KC{#|dse}7X68)3ac^yn^zhw`V@k(-o|U|DKjL=tw*xzP`V zDT4#Z+g}Bcr1=91>R^s1DxmPMP+&`FWEev9_c)KU=F^Yg*aey6&k zg|-)=0*xHH8AByKHyo1Ph^`INR%q<$uNGwsyL~$h0%FU}oAfR-JMAIdG_$`u)qV!- zGqaqL1&dGZE`*0?{D&AGIy%b4LE7JHJ>qK@|wvP5d9hPad$fi(z>ZmuBDC-TY+#Hm?d)M)B4&2+0k&(W= zt&Lk$x#xF3P&t<^oi6HGax?@rkp2A(SBr4D#m4E3XX=cr97oE@;SOrXUK>ALn{vq| zff1~3p44=)6qm%MU%gHdJ$fO`n-F((6O@^Ny1pALocXmLCBCN5XI?E)ikeqbb(DJc zZ51rJ%)`ZaL~qALwacYoj*rUzKFb?*=sa|Zw6Tfq!R$n->vwZHditRc(7t|3PcPN= zm_CRx%1vEaSjg2a7E!zE_A!1-v1H-W_zDLZtj`7vvH=_O2gG-g85i?R;B8FV-_ zBEJ}G79@-5lXySyNw= zw-T$-NGJ<3AzQ%)?B4}>4-~KRmEAPwrjag3^|hab+BYv?rXFL$yapu~N_T$AM`I4*pDm87 zu_>Ny`bz4kavHm-doUj}%X65Y7Jlgkklj zkgqE5&1_nZvDPUlC={F4I_)0~_&7~ye9o--k5C`XQy|bLDgktIoWN0 z!oqADC2d;9XiEkMf-AvSIH_x^hM~wJ1uMW%EIL9auC=%+qljap7kVVck%8 zLgL0`9C~RUPSX2qG1Y`!2TxVyv-or8XF4zr7!df)W@qC$rqk2O??!qzS zacJAwwCEQcPn^dIc}ElZuACw7aEEE)Yq47gqZ6)uqm2#sy=sk&9Djed$gSUR8;i$H zA3f^Z5MO>H1=G0X5I0z^q~6CSZlxGqPaIAq?c>h5kg%*rF7_iOrn3W@@**yigZWlr z{a*9!k-%81mvEW?)S#X^4Mr~!Es=8zm}xg*8GAp=hbk2#7wn*j*?tiU*E0*Pdk_VcZ-w>(0*mvsC!`jRDh*6FOXCq_2-Ew~(`xv(#30*Wxo? z|0@;hnsNP%?B;WBESvAo#+f@YOu2(@^{YLCa;MQ@1$Mx~sdkx$No9jM*v^v=GvJ%3 zbMvG$Spk`!F1^!<0`BX)z^&4K)L;IMQv#x!5Y-fKI z8J2H()x?Z%DqHsmKT%bcl0(@V2v>ia6lG^~@y5j6Rl4kV!y}#W`;##_Xh!~=Nl{+j zO0r!h8eh;I%&{_1XHZ>Ys+d-}9GV3dbWRWJ(x~U3ol2!=X0#CT3HfTk>KzP+^>a`L z&&?H7pXcG>zZlHnvI!-D;3}Aoot$O1PA}8Q{TmK5hVKmKFfi}wIn%l>NiSeNZOdm{ zSppTBXo)#+P0f0EDiTr)Z5FxOj%uw`K4Om2BMRV?s5AR_?Fy)0RI{suO?)6ecvpE=_CB(yc`N&D zXr_o4*xQh`r!Q-~O%)~YeshGCbMGz*h|M0%%e|ZzIM@h+Z^AUMyEEq{tz^$rD4ZMN zG0#267PMZ#i)O|%ZXq}7h4(7je}Q~jERFk+9b<|Uzwdf=17o&;3~lcaE$aEbXk#Nw zd+WBycq5MWA>9?`bF!Lj?#YJsR+ahXR@KwgbTJ|&=ByICpX-a9a2s8Dd3o;`g9Ls* zGDs^jPp=O0HuLgQod?Ms`iUBN9-FUDhXP>m*75JrFW zq>4sFL^zKNHGpsPR7xi%LWrcu5$<(*!Hv3H4v4@WY9VWvM)^gU>+S1jnjBix&!?~W zh7`hb5yXUhhWovYeQz&vR|NN@a%*IGJe?qabG?2dPklw{XHrtZ%oq@Pf`w6CIhqCb zIy~I@heV-Bp)1cQfGhMn(!Mo=X%9?s3fa##1EDWQhrpXEOZy!d6HTGsHXkMB-&OkA zP6Sq)VVd;yohHg0{5A-<+y=0MAMs1m%q}^WNR`OG_+EwKggzX%7JcPfQ=U_kQ?tTh zRD|lGcQRr8bK#||msBD}RKf29M^aK2-S*ah6q4T1ws&+yOC5DjWSZ;}$-c86mGu%1 zd-z06a4oR?oQ`d)V+WmsQaeURF;mcTPn@%$@Nho49A^x?)^fW{f9shYa>G#{SV(1Q zr49!@fjceRmofF?*p+Tri!z__?kFw1N7xhWL*m<{nPF&d4H@EO8)G^nK4rSX0pEZm z&Nosav4vBY?5FF`&NqrF;p(@odXMH#^~w+_N=+*9-w0`gl{$@=X{7c>0eYsCAVqEt z3G6GDuD~F5D=wZ`hqUYJ#wEtzz9r%~T&C9)iv1vn59YXYce1KHM=amnqmRVB)SIej zrk{|Ok}+VXncW~DSLlMR=b{>iuO^S}CpErMH?98_8?ccG@y%%h7<;m`_sDaW^+r{rCq=8h zX462Hb=xXu$jV?jLm#=qZDPrEaq+xzq_+0Jgf-l(QVQO~2;Z5+y-gHI8TkM$eKS1v zLPOGSmJxnk%_SydipOp&tM)^Uub96+2Vp7QyM1emQdvvu2khu#Zb+kE*l7!LP+)m^ zd4fP+VePnqSvp~dw{+9k%*2H7%}N7vzW^xxR#&K%p#*7Z9)WHjFf=v>~$`5iLC zqFIA<6l%owY$0QPymE~|C4k%_1*o$i2%@7)$ETx9(Ip}Vf^6cKoO4-jll|v=05VbK z5`X=$R$}sR5x%;c7A4G_Opn84@g zsk(f+q%jcMRByP6T@e*4w5l$OGM}DrC@ZrZuG678U^yfjRoT0wT1nVcIkSroR@t`2 z*zy@GO>f(nM>6FecW~v%Uw0R4cWsf_o}scGj4{>SyLY3cE$pplm(&hxJ?%CO-}@XJ zN%2=P2e`eFb7_0&phu5nuDM~lJ_@sVxNFTS36g|?Q4O2|p}x_zZG+jmZ!A$6^pt47 zc}_OSL04fcR7GXq)OMr(Y=j3Re4}Fd*7x1^$i_7|l5j{ZiryJt(9sajhnKSP84J0N z7p-n|bx|{m_9P2#zD&HW=6_iEdxO(sfUlZ-l$|_c;%ykcAr4&Fz(%(pFF?H=@X{#p z#{!t~dwE9`i+g*LXW!~np^}mRIJgh?kXZ)rI~=PajoSzakaql}9-#f%Z+GPjBQ?9v z@6j*W`2E$PEWh%Vq@-ZAv&^C{c!b3Ufbd>wNJ=4gc16>KJtq6eM|jx|>L+T>+Pm@n zN>LKtU7`S%o&zRN&1z`o%jux~vB^U!h9GJTa-sU-3Ek!LXgdHxRM`)e04rpnX87kz z&%1YhyaDi}}D_Go0GHQ%c`T18bS4ePCjcG|$Cx|q&laKup9 zvou_4_`rKkhZTi&c{e8VMQeVl4xV@wGg|fW8Fpt93)5%W8hP#@0GW7@tFilL7`R-( zET{&UkrbTtiBK6E-0y66l`tY&3CqcTZh+84qd6am_T- zxxHDNw`qs27bhU(PW)AB-V)L(*kSsm@>xrTLFNDxRu#(`!p7$FRpiHGmM9HFU0qwn zZswrvf&PhfNw^Go?hL!giC?b{nARmbtMAaBGOx?c^tC_utiuUq3z%Ca%HRQS+=#MQ zJE2sx=*PQ(C$d)pvNA0EvYgl)7?l#UavxwXko(A_A6pzJwjw7CwFz_cIQuaFe0*xx zJ$D^I#Quf<&XfIjxGU@v>ge=We+bxr4)geTnasZmNbD9)O|K)UIN;#nPADs=KQ57b H7W{tz_@Wy$ literal 0 HcmV?d00001 diff --git a/html/english/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/english/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..9517e6dbd --- /dev/null +++ b/html/english/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Load html from file in Python quickly. Learn how to read html file using + python, load html from url, and create htmldocument from string in a single tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: en +lastmod: 2026-08-12 +og_description: Load html from file in Python using the HTMLDocument class. Follow + this guide to read html file using python, load html from url, and create htmldocument + from string for robust web content handling. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Load html from file in Python – quick programming guide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Load html from file in Python – step‑by‑step guide +url: /python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Load html from file in Python – step‑by‑step guide + +If you need to **load html from file in Python**, this guide shows you exactly how. You’ll also learn how to **read html file using python**, load html from url, and **create htmldocument from string** so you can handle any source of HTML content. + +The examples use the `HTMLDocument` class from the `html_document` package, which provides a unified API for local files, remote URLs, and raw HTML strings. The approach works with Python 3.8+ and integrates cleanly with standard libraries such as `pathlib` and `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Load html from file in Python – basic example + +Loading an HTML file from the local filesystem is the most common first step when processing static pages. The `HTMLDocument` constructor accepts a file path, automatically detects the file’s encoding, and parses the markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Why this works:** +* `Path` abstracts OS‑specific path separators, making the code portable across Windows, macOS, and Linux. +* `HTMLDocument` reads the file in binary mode, detects UTF‑8 or UTF‑16 BOM, and falls back to the system’s default encoding when necessary. + +**Expected output (assuming the HTML contains `Example`):** + +``` +Title: Example +``` + +### Common pitfalls when loading a file + +* **FileNotFoundError** – Ensure the path is correct and the file exists. Use `file_path.is_file()` to pre‑check. +* **Encoding errors** – If the page uses a non‑UTF‑8 charset, pass `encoding="iso-8859-1"` to the constructor: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Read html file using python – detailed explanation + +The phrase **read html file using python** appears often when developers need to extract data from saved web pages. While `HTMLDocument` abstracts most of the work, you can also load raw text and feed it to the parser manually. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Why you might choose this route:** +* You need to preprocess the HTML (e.g., strip scripts) before parsing. +* You want to cache the raw markup for later reuse without re‑reading the file. + +## Load html from url – fetching remote pages + +Loading HTML directly from a web address expands the workflow to live content. The **load html from url** step relies on the `requests` library for HTTP handling and then hands the response text to `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Why this works:** +* `requests.get` follows redirects and handles HTTPS out of the box. +* `response.raise_for_status()` guarantees that only successful responses are parsed, preventing silent failures. + +**Edge cases:** +* **Slow network** – Adjust the `timeout` parameter or use `requests.Session` for connection pooling. +* **Non‑HTML content** – Verify the `Content-Type` header (`response.headers["Content-Type"]`) before parsing. + +## Create htmldocument from string – working with raw HTML + +Sometimes you generate HTML dynamically (e.g., from a template engine) and need to treat it as a document without writing it to disk. The **create htmldocument from string** operation is straightforward. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Why this is useful:** +* Eliminates the need for temporary files, which improves performance in serverless environments. +* Allows you to validate generated markup before sending it to a client or storing it. + +**Tips for string handling:** +* Use triple‑quoted strings to keep the markup readable. +* If the HTML includes Unicode characters, ensure the source file is saved with UTF‑8 encoding. + +## Full end‑to‑end example + +Putting all four loading strategies together demonstrates a flexible pipeline that can switch between local, remote, and in‑memory sources. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**What this code illustrates:** + +* A single `HTMLDocument` class handles all input types, reducing API surface area. +* Helper functions encapsulate error handling and make the calling code concise. +* The pattern scales to batch processing: iterate over a list of file paths or URLs and feed each document into a scraper or transformer. + +## Conclusion + +You now know how to **load html from file in Python** using the `HTMLDocument` class, how to **read html file using + + +## What Should You Learn Next? + + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/og-image.png b/html/english/python/general/load-html-from-file-in-python-step-by-step-guide/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..9fee58a096b17e9c6ad791be044d31b0a94f66cf GIT binary patch literal 42706 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 z

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 literal 0 HcmV?d00001 diff --git a/html/french/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/french/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..94e4fffa7 --- /dev/null +++ b/html/french/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-08-12 +description: Convertir le HTML en Markdown avec Python. Apprenez un flux de travail + en ligne de commande pour convertir une page web en Markdown et automatiser la documentation. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: fr +lastmod: 2026-08-12 +og_description: Convertir le HTML en Markdown avec Python. Ce tutoriel vous montre + une solution en ligne de commande pour convertir une page web en Markdown rapidement + et de manière fiable. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Convertir le HTML en Markdown avec Python – guide étape par étape +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Convertir le HTML en Markdown avec Python – guide complet de programmation +url: /fr/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML en Markdown avec Python – guide complet de programmation + +Si vous avez besoin de **convertir HTML en Markdown**, ce guide vous présente une solution prête à l’emploi. Vous verrez comment un petit script Python transforme n’importe quel fichier HTML en Markdown propre, au format Git, et comment vous pouvez invoquer la même logique depuis la ligne de commande. + +Convertir des pages web en Markdown est une étape courante lors de la création de sites de documentation statiques ou de la préparation de contenu pour des dépôts sous contrôle de version. À la fin de ce tutoriel, vous disposerez d’un outil en ligne de commande réutilisable qui gère l’encodage HTML, préserve les liens et respecte les conventions du Markdown au format Git. + +## Prérequis + +* Python 3.9 ou plus récent installé sur votre système. +* Le package Python `groupdocs-conversion` (ou toute bibliothèque qui fournit `HTMLDocument`, `MarkdownSaveOptions` et `Converter`). Installez-le avec : + +```bash +pip install groupdocs-conversion +``` + +* Un dossier contenant le fichier source `input.html` que vous souhaitez traiter. + +Les sections suivantes parcourent chaque étape, expliquent pourquoi elles sont importantes et vous fournissent le code exact dont vous avez besoin. + +## Étape 1 : Configurer l’environnement + +Créer un environnement virtuel isolé évite les conflits de dépendances et rend l’outil en ligne de commande portable. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Pourquoi cette étape ?* +Un environnement virtuel isole le package `groupdocs-conversion` des autres projets, garantissant que l’utilitaire `convert html to markdown command line` s’exécute avec les versions exactes que vous avez testées. + +## Étape 2 : Écrire le script de conversion + +Créez un fichier nommé `html_to_md.py` et collez le code suivant. Le script accepte trois arguments : le chemin du fichier HTML d’entrée, le chemin du fichier Markdown de sortie, et un drapeau optionnel pour choisir le formateur au format Git. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Explication du script + +| Section | Objectif | +|---------|----------| +| **Argument parsing** | Permet le modèle d’utilisation **convert html to markdown command line**. | +| **HTMLDocument** | Charge le fichier source ; la bibliothèque abstrait l’encodage des caractères et l’analyse du DOM. | +| **MarkdownSaveOptions** | Vous permet de basculer entre le Markdown simple et le Markdown au format Git (`--git` flag). | +| **Converter.convert_html** | Effectue le travail lourd – il parcourt l’arbre HTML, traduit les balises et écrit le fichier de sortie. | +| **Error handling** | Fournit un message clair de succès/échec, essentiel pour les pipelines CI. | + +## Étape 3 : Exécuter la conversion depuis la ligne de commande + +Une fois le script enregistré, vous pouvez convertir n’importe quel fichier HTML avec une seule commande : + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Sortie attendue** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Ouvrez `output.md` dans un éditeur de texte ; vous verrez les titres, les listes et les liens rendus en syntaxe Markdown propre. Comme nous avons utilisé le formateur Git, les tableaux apparaissent avec des délimiteurs pipe (`|`), et les listes de tâches utilisent la syntaxe `- [ ]`, que GitHub et GitLab affichent nativement. + +## Étape 4 : Intégrer l’outil dans les pipelines d’automatisation + +Si vous maintenez la documentation dans un dépôt, vous pouvez ajouter l’étape de conversion à un workflow CI. Voici un exemple de job GitHub Actions qui s’exécute à chaque push : + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Pourquoi cela importe* – Automatiser l’étape **convert web page to markdown** garantit que votre documentation reste synchronisée avec les fichiers HTML source sans effort manuel. + +## Cas limites et conseils de bonnes pratiques + +* **Problèmes d’encodage** – Si votre HTML contient des caractères non‑UTF‑8, indiquez un encodage explicite lors de la création de `HTMLDocument` (par ex., `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – Pour les fichiers HTML de plus de 50 Mo, envisagez de diffuser la conversion pour éviter les pics de mémoire. La bibliothèque fournit une méthode `convert_html_stream` pour ce scénario. +* **Custom CSS handling** – Le convertisseur supprime les attributs de style par défaut. Si vous devez préserver un formatage spécifique, activez `md_opts.preserveFormatting = True`. +* **Command‑line shortcut** – Créez un petit script wrapper (`html2md`) qui transmet les arguments à `html_to_md.py`. Placez-le dans `$HOME/.local/bin` et ajoutez‑le à votre `PATH` pour une expérience **convert html to markdown command line** encore plus courte. + +## Questions fréquemment posées + +**Cela fonctionne-t-il sur Windows, macOS et Linux ?** +Oui. Le script ne dépend que du package multiplateforme `groupdocs-conversion` et des bibliothèques Python standard, il s’exécute donc tel quel sur les trois systèmes d’exploitation. + +**Puis-je convertir directement une page web distante ?** +Vous pouvez récupérer la page avec `requests` et transmettre la chaîne HTML à `HTMLDocument` : + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Et si j’ai besoin uniquement de HTML → Markdown au format GitHub ?** +Il suffit de toujours passer le drapeau `--git` ; le formateur produit une sortie compatible avec GitHub, GitLab et Bitbucket. + +## Conclusion + +Vous disposez maintenant d’une solution robuste **convert HTML to Markdown** qui fonctionne à partir d’un script Python et depuis la ligne de commande. Le tutoriel a couvert la configuration de l’environnement, le code source complet, l’utilisation en ligne de commande, l’intégration CI et la gestion pratique des cas limites. + +Ensuite, vous pourriez explorer **convert markdown to HTML**, expérimenter avec Pandoc pour des options de conversion avancées, ou ajouter un générateur de front‑matter pour intégrer des métadonnées directement dans les fichiers Markdown. Chacune de ces extensions s’appuie sur les concepts de base que vous venez de maîtriser. + +Bonne conversion ! + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s’appuient sur les techniques démontrées dans ce guide. Chaque ressource comprend des exemples de code complets et fonctionnels avec des explications étape par étape pour vous aider à maîtriser des fonctionnalités d’API supplémentaires et à explorer des approches d’implémentation alternatives dans vos propres projets. + +- [Convertir HTML en Markdown avec Aspose.HTML pour Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Convertir HTML en Markdown avec .NET et Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/french/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..5af221548 --- /dev/null +++ b/html/french/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Convertir le HTML en PDF en Python avec GroupDocs.Viewer. Découvrez comment + enregistrer le HTML en PDF avec des options flexibles de conversion HTML vers PDF + pour un contrôle précis. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: fr +lastmod: 2026-08-12 +og_description: Convertir le HTML en PDF avec GroupDocs.Viewer. Ce guide vous montre + comment enregistrer le HTML au format PDF, configurer les options de conversion + HTML en PDF et gérer les gros documents de manière fiable. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Convertir HTML en PDF – tutoriel Python étape par étape +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Convertir le HTML en PDF avec Python – guide complet de programmation +url: /fr/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML en PDF avec Python – guide complet de programmation + +Si vous devez **convertir HTML en PDF** dans un projet Python, ce guide vous présente une solution prête à l'emploi. Nous parcourrons l'installation de la bibliothèque viewer, la configuration des **options de conversion html en pdf**, et enfin **enregistrer le HTML en PDF** en quelques lignes de code. + +La conversion de documents HTML implique souvent la gestion de ressources liées telles que les images, le CSS ou le JavaScript. À la fin de ce tutoriel, vous comprendrez comment limiter l'imbrication des ressources, éviter les pics de mémoire et produire un fichier PDF propre qui correspond à la mise en page de la page d'origine. + +## Prérequis + +- Python 3.8 ou plus récent +- `pip` (installateur de paquets Python) +- Accès au fichier HTML que vous souhaitez convertir (par ex., `large_page.html`) + +Aucune bibliothèque système supplémentaire n'est requise car GroupDocs.Viewer regroupe tous les moteurs de rendu nécessaires. + +## Étape 1 : Installer GroupDocs.Viewer pour Python + +GroupDocs.Viewer fournit une conversion haute fidélité depuis de nombreux formats, y compris HTML, vers PDF. Installez-le avec : + +```bash +pip install groupdocs-viewer +``` + +> **Astuce :** Utilisez un environnement virtuel (`python -m venv .venv`) pour garder les dépendances isolées des autres projets. + +## Étape 2 : Configurer les **options de conversion html en pdf** – limiter la profondeur d'imbrication des ressources + +Les grandes pages HTML peuvent contenir des ressources profondément imbriquées (iframes, imports CSS, etc.). Définir une profondeur maximale de traitement empêche le convertisseur de récursivité infinie et rend l'utilisation de la mémoire prévisible. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +La propriété `max_handling_depth` indique au viewer combien de niveaux de ressources liées il doit suivre. Une profondeur de `3` fonctionne bien pour la plupart des pages web tout en conservant les images et styles nécessaires. + +## Étape 3 : Charger le document HTML que vous souhaitez **convertir HTML en PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstrait la détection du format de fichier, vous n’avez donc pas besoin d’instancier manuellement `HtmlDocument`. Cette étape prépare la représentation interne avec laquelle le convertisseur travaillera. + +## Étape 4 : **Enregistrer le HTML en PDF** en utilisant les **options de conversion html en pdf** configurées + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +L'objet `PdfSaveOptions` regroupe tous les paramètres spécifiques au PDF, y compris les `resource_handling_options` définies précédemment. Lorsque `viewer.save` s'exécute, la page HTML est rendue, les ressources sont traitées jusqu'à la profondeur autorisée, et le PDF final est écrit dans `output_path`. + +### Résultat attendu + +Après l'exécution du script, `output.pdf` contient une représentation fidèle de `large_page.html`. Ouvrez le PDF avec n'importe quel lecteur (Adobe Reader, Chrome, etc.) et vérifiez que : + +- Les images, tableaux et styles CSS de base s'affichent correctement. +- Aucune page blanche inattendue due à une récursion profonde des ressources. + +## Gestion des cas limites et des variations courantes + +| Situation | Ajustement recommandé | +|-----------|-----------------------| +| **HTML contient des polices externes** | Ajoutez `pdf_options.embed_all_fonts = True` pour garantir que les polices sont incorporées dans le PDF. | +| **Vous avez besoin d'une taille de page spécifique** | Définissez `pdf_options.page_width` et `pdf_options.page_height` (par ex., A4 : `595, 842`). | +| **Les gros fichiers provoquent des erreurs de mémoire insuffisante** | Diminuez `resource_options.max_handling_depth` ou divisez le HTML en fragments plus petits et convertissez chacun séparément. | +| **Vous souhaitez protéger le PDF par mot de passe** | Utilisez `pdf_options.password = "YourSecret"` avant d'appeler `save`. | + +Ces ajustements illustrent la flexibilité des **options de conversion html en pdf** et montrent comment vous pouvez adapter la conversion à vos exigences précises. + +## Script complet à copier‑coller + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Exécutez le script : + +```bash +python convert_html_to_pdf.py +``` + +Vous devriez voir le message de confirmation et trouver `output.pdf` dans le répertoire spécifié. + +## Questions fréquentes + +**Q : Cette méthode fonctionne-t-elle avec des URL distantes au lieu de fichiers locaux ?** +R : Oui. Passez la chaîne d'URL à `Viewer` (par ex., `Viewer("https://example.com/page.html")`). Le viewer téléchargera la page avant d'appliquer les **options de conversion html en pdf**. + +**Q : Puis-je convertir plusieurs fichiers HTML en lot ?** +R : Enveloppez le code de conversion dans une boucle qui itère sur une liste de chemins de fichiers. Réutilisez les mêmes objets `resource_options` et `pdf_options` pour plus d'efficacité. + +**Q : Que se passe-t-il si le HTML utilise du JavaScript pour modifier le DOM ?** +R : GroupDocs.Viewer rend le HTML statique ; il n'exécute **pas** le JavaScript. Pour les pages dynamiques, rendez la page dans un navigateur sans tête (par ex., Selenium) d'abord, puis fournissez le HTML statique résultant au convertisseur. + +## Conclusion + +Vous disposez maintenant d'une méthode complète, prête pour la production, pour **convertir HTML en PDF** avec Python. En configurant la **gestion des ressources**, vous contrôlez la profondeur de traitement des ressources liées, et le `PdfSaveOptions` vous permet de **enregistrer le HTML en PDF** avec des **options de conversion html en pdf** précises. Expérimentez les paramètres optionnels—comme l'incorporation des polices ou la taille de page—pour répondre exactement aux besoins de votre application. + +--- + +*Prochaines étapes* : explorez **enregistrer le document HTML en pdf** avec protection par mot de passe, ou intégrez cette conversion dans une API web utilisant Flask ou FastAPI pour la génération de PDF à la demande. + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s'appuient sur les techniques démontrées dans ce guide. Chaque ressource comprend des exemples de code complets et fonctionnels avec des explications étape par étape pour vous aider à maîtriser des fonctionnalités supplémentaires de l'API et explorer des approches d'implémentation alternatives dans vos propres projets. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/french/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..7a7311601 --- /dev/null +++ b/html/french/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,339 @@ +--- +category: general +date: 2026-08-12 +description: Convertissez du HTML en PDF en Python avec Aspose HTML Converter. Apprenez + comment générer un PDF à partir de HTML et comment convertir un EPUB en PDF en quelques + lignes de code. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: fr +lastmod: 2026-08-12 +og_description: Convertir HTML en PDF en Python avec Aspose HTML Converter. Ce tutoriel + montre comment générer un PDF à partir de HTML et comment convertir un EPUB en PDF + avec un code clair et exécutable. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Convertir HTML en PDF avec Python et Aspose HTML Converter – guide rapide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Convertir HTML en PDF en Python avec le convertisseur HTML d'Aspose +url: /fr/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML en PDF avec Python en utilisant Aspose HTML Converter + +Si vous devez **convertir HTML en PDF** rapidement, ce guide vous montre exactement comment le faire avec la bibliothèque Aspose.HTML pour Python. Que vous construisiez un service web qui transforme des pages soumises par les utilisateurs en PDF imprimables ou que vous automatisiez la génération de rapports, les étapes ci‑dessous vous offrent une solution complète, prête à l'exécution. + +En plus du HTML, Aspose.HTML gère également les formats de livres numériques, vous verrez donc **comment convertir des fichiers EPUB** en PDF sans quitter Python. À la fin de ce tutoriel, vous serez capable de **générer un PDF à partir de HTML** et de créer des versions PDF de livres numériques EPUB en quelques lignes de code seulement. + +## Prérequis + +* Python 3.8 ou une version plus récente installé. +* Une licence active Aspose.HTML pour Python (l'essai gratuit fonctionne pour l'évaluation). +* Accès à `pip` pour installer le package `aspose-html`. +* Fichiers HTML ou EPUB d'exemple que vous souhaitez convertir. + +```bash +pip install aspose-html +``` + +> **Astuce :** Installez le package dans un environnement virtuel pour garder les dépendances isolées. + +## Vue d'ensemble du processus de conversion + +Aspose.HTML fournit une classe unique `Converter` qui abstrait les détails du rendu du HTML, du CSS et du contenu de livres numériques en PDF. Le flux de travail est : + +1. Importer la classe `Converter`. +2. Appeler `Converter.convert(source_path, target_path)`. +3. (Optionnel) Ajuster les paramètres de conversion tels que la taille de la page ou l'incorporation des polices. + +La bibliothèque détecte automatiquement le format source en fonction de l'extension du fichier, de sorte que la même méthode fonctionne pour les fichiers HTML et EPUB. + +--- + +## Convertir HTML en PDF avec Aspose HTML Converter + +### Étape 1 : Importer le module de conversion Aspose HTML + +La classe `Converter` se trouve dans l'espace de noms `aspose.html`. Importez‑la en haut de votre script. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Étape 2 : Préparer les chemins d'entrée et de sortie + +Utilisez des chemins absolus ou relatifs que votre script peut lire/écrire. Il est recommandé de vérifier que le fichier source existe avant d'essayer la conversion. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Étape 3 : Effectuer la conversion + +Appeler `Converter.convert` effectue tout le travail lourd : rendu du HTML, application du CSS et écriture d'un fichier PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Pourquoi cela fonctionne + +* **Moteur de mise en page automatique** – Aspose.HTML utilise un moteur de rendu basé sur Chromium, garantissant que le CSS moderne, le SVG et le JavaScript sont correctement gérés. +* **Pas de fichiers intermédiaires** – La conversion se fait en mémoire, ce qui réduit la surcharge d'E/S et accélère le traitement par lots. + +### Résultat attendu + +Après l'exécution du script, `output.pdf` contiendra une représentation fidèle de `input.html`. Ouvrez-le avec n'importe quel lecteur PDF pour vérifier que les polices, les images et les sauts de page correspondent à la page web originale. + +![Diagramme de conversion](https://example.com/conversion-diagram.png "Diagramme montrant la conversion de fichiers HTML et EPUB en PDF à l'aide d'Aspose HTML Converter") + +*(Texte alternatif de l'image : Diagramme montrant la conversion de fichiers HTML et EPUB en PDF à l'aide d'Aspose HTML Converter)* + +## Générer un PDF à partir de HTML avec des paramètres personnalisés + +Parfois, vous devez contrôler la taille de la page, les marges ou incorporer des polices spécifiques. Aspose.HTML expose une classe `PdfSaveOptions` à cet effet. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*L'objet `options` est optionnel ; omettez‑le si la mise en page par défaut vous convient.* + +--- + +## Comment convertir un EPUB en PDF avec Python + +### Étape 1 : Localiser la source EPUB + +Tout comme pour le HTML, fournissez le chemin du fichier EPUB que vous souhaitez transformer. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Étape 2 : Exécuter la conversion + +La même méthode `Converter.convert` détecte l'extension `.epub` et bascule vers le pipeline de rendu de livre numérique. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Cas limites à considérer + +| Situation | Gestion recommandée | +|----------------------------------------|----------------------| +| Grand EPUB (des centaines de chapitres) | Convertir par morceaux en utilisant `PdfSaveOptions.start_page` et `end_page` pour limiter l'utilisation de la mémoire. | +| Polices manquantes dans l'EPUB | Définir `PdfSaveOptions.embed_standard_fonts = True` pour revenir aux polices système. | +| EPUB protégé par mot de passe | Utiliser `PdfLoadOptions` pour fournir le mot de passe avant la conversion (non montré ici). | + +--- + +## Exemple complet et exécutable + +Ci‑dessous se trouve un script unique qui combine toutes les étapes précédentes. Enregistrez‑le sous le nom `convert_demo.py` et exécutez‑le depuis la ligne de commande. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Exécuter le script : + +```bash +python convert_demo.py +``` + +Vous devriez voir trois messages de confirmation et trois fichiers PDF dans `YOUR_DIRECTORY`. + +--- + +## Pièges courants et comment les éviter + +* **Licence manquante** – Sans une licence Aspose.HTML valide, la bibliothèque ajoute un filigrane à chaque page. Enregistrez votre licence tôt dans le script : + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Chemins relatifs sur différents OS** – Utilisez `os.path.join` et `os.path.abspath` pour construire des chemins indépendants de la plateforme. + +* **HTML volumineux avec ressources externes** – Assurez‑vous que tous les CSS, images et polices sont accessibles depuis le système de fichiers ou intégrez‑les via des data URIs. Sinon le PDF peut afficher des espaces réservés vides. + +* **Sécurité des threads** – `Converter.convert` est thread‑safe, mais créer de nombreux convertisseurs simultanément peut consommer beaucoup de mémoire. Réutilisez une seule instance de convertisseur si vous traitez des centaines de fichiers en parallèle. + +--- + +## Conclusion + +Vous disposez maintenant d'une approche complète et prête pour la production pour **convertir HTML en PDF** et **convertir des fichiers EPUB** en PDF avec Python en utilisant le **Aspose HTML Converter**. Le tutoriel a couvert : + +* Importation du module correct. +* Validation des fichiers d'entrée. +* Réalisation d'une conversion de base. +* Personnalisation de la sortie PDF avec `PdfSaveOptions`. +* Gestion des EPUB volumineux ou protégés par mot de passe. + +À partir de là, vous pouvez étendre la solution pour traiter des dossiers en lot, intégrer le code dans un endpoint Flask ou FastAPI, ou expérimenter des formats de sortie supplémentaires tels que DOCX ou PNG (Aspose.HTML les prend également en charge). + +### Prochaines étapes + +* Explorer **générer PDF à partir de HTML** avec des pages pilotées par JavaScript en activant `Converter.convert` avec une session de navigateur sans tête. +* Combiner ce flux de travail avec **Aspose.PDF** pour des tâches de post‑traitement comme la fusion de plusieurs PDF ou l'ajout de signatures numériques. +* Découvrir les options avancées de **aspose-html-converter** telles que `PdfSaveOptions.jpeg_quality` pour les documents riches en images. + +Bon codage, et profitez de la fiabilité d'Aspose.HTML pour tous vos besoins de conversion de documents ! + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s'appuient sur les techniques démontrées dans ce guide. Chaque ressource comprend des exemples de code complets et fonctionnels avec des explications étape par étape pour vous aider à maîtriser des fonctionnalités API supplémentaires et explorer des approches d'implémentation alternatives dans vos propres projets. + +- [Convertir HTML en PDF avec Aspose.HTML – Guide complet de manipulation](/html/english/) +- [Convertir EPUB en PDF en .NET avec Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/french/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..c38ba4776 --- /dev/null +++ b/html/french/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Chargez du HTML depuis un fichier en Python rapidement. Apprenez à lire + un fichier HTML avec Python, à charger du HTML depuis une URL et à créer un htmldocument + à partir d’une chaîne dans un seul tutoriel. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: fr +lastmod: 2026-08-12 +og_description: Chargez du HTML depuis un fichier en Python en utilisant la classe + HTMLDocument. Suivez ce guide pour lire un fichier HTML avec Python, charger du + HTML depuis une URL et créer un HTMLDocument à partir d’une chaîne pour une gestion + robuste du contenu Web. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Charger du HTML depuis un fichier en Python – guide de programmation rapide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Charger du HTML depuis un fichier en Python – guide étape par étape +url: /fr/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Charger du html depuis un fichier en Python – guide étape par étape + +Si vous devez **load html from file in Python**, ce guide vous montre exactement comment procéder. Vous apprendrez également comment **read html file using python**, charger du html depuis une URL, et **create htmldocument from string** afin de pouvoir gérer n'importe quelle source de contenu HTML. + +Les exemples utilisent la classe `HTMLDocument` du package `html_document`, qui fournit une API unifiée pour les fichiers locaux, les URL distantes et les chaînes HTML brutes. Cette approche fonctionne avec Python 3.8+ et s'intègre proprement aux bibliothèques standard telles que `pathlib` et `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Charger du html depuis un fichier en Python – exemple de base + +Charger un fichier HTML depuis le système de fichiers local est l'étape initiale la plus courante lors du traitement de pages statiques. Le constructeur `HTMLDocument` accepte un chemin de fichier, détecte automatiquement l'encodage du fichier et analyse le balisage. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Pourquoi cela fonctionne :** +* `Path` abstrait les séparateurs de chemin spécifiques au système d'exploitation, rendant le code portable sur Windows, macOS et Linux. +* `HTMLDocument` lit le fichier en mode binaire, détecte le BOM UTF‑8 ou UTF‑16, et revient à l'encodage par défaut du système si nécessaire. + +**Sortie attendue (en supposant que le HTML contienne `Example`):** + +``` +Title: Example +``` + +### Pièges courants lors du chargement d'un fichier + +* **FileNotFoundError** – Assurez‑vous que le chemin est correct et que le fichier existe. Utilisez `file_path.is_file()` pour vérifier préalablement. +* **Encoding errors** – Si la page utilise un jeu de caractères non UTF‑8, passez `encoding="iso-8859-1"` au constructeur : `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Lire un fichier html avec python – explication détaillée + +L'expression **read html file using python** apparaît souvent lorsque les développeurs doivent extraire des données de pages web enregistrées. Bien que `HTMLDocument` abstraie la plupart du travail, vous pouvez également charger du texte brut et le transmettre manuellement au parseur. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Pourquoi vous pourriez choisir cette approche :** +* Vous devez pré‑traiter le HTML (par ex., supprimer les scripts) avant l'analyse. +* Vous souhaitez mettre en cache le balisage brut pour une réutilisation ultérieure sans relire le fichier. + +## Charger du html depuis une URL – récupération de pages distantes + +Charger du HTML directement depuis une adresse web élargit le flux de travail au contenu en direct. L'étape **load html from url** s'appuie sur la bibliothèque `requests` pour la gestion HTTP, puis transmet le texte de la réponse à `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Pourquoi cela fonctionne :** +* `requests.get` suit les redirections et gère HTTPS nativement. +* `response.raise_for_status()` garantit que seules les réponses réussies sont analysées, évitant les échecs silencieux. + +**Cas limites :** +* **Slow network** – Ajustez le paramètre `timeout` ou utilisez `requests.Session` pour le pool de connexions. +* **Non‑HTML content** – Vérifiez l'en‑tête `Content-Type` (`response.headers["Content-Type"]`) avant l'analyse. + +## Créer un htmldocument à partir d'une chaîne – travailler avec du HTML brut + +Parfois vous générez du HTML dynamiquement (par ex., à partir d'un moteur de templates) et devez le traiter comme un document sans l'écrire sur le disque. L'opération **create htmldocument from string** est simple. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Pourquoi c'est utile :** +* Élimine le besoin de fichiers temporaires, ce qui améliore les performances dans les environnements serverless. +* Vous permet de valider le balisage généré avant de l'envoyer à un client ou de le stocker. + +**Conseils pour la manipulation de chaînes :** +* Utilisez des chaînes triple‑guillemets pour garder le balisage lisible. +* Si le HTML inclut des caractères Unicode, assurez‑vous que le fichier source est enregistré avec l'encodage UTF‑8. + +## Exemple complet de bout en bout + +Assembler les quatre stratégies de chargement montre un pipeline flexible pouvant basculer entre des sources locales, distantes et en mémoire. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Ce que ce code illustre :** + +* Une seule classe `HTMLDocument` gère tous les types d'entrée, réduisant la surface de l'API. +* Les fonctions auxiliaires encapsulent la gestion des erreurs et rendent le code appelant concis. +* Le modèle s'étend au traitement par lots : itérer sur une liste de chemins de fichiers ou d'URL et alimenter chaque document dans un scraper ou un transformateur. + +## Conclusion + +Vous savez maintenant comment **load html from file in Python** en utilisant la classe `HTMLDocument`, comment **read html file using + +## Que devriez‑vous apprendre ensuite ? + +Les tutoriels suivants couvrent des sujets étroitement liés qui s'appuient sur les techniques démontrées dans ce guide. Chaque ressource comprend des exemples de code complets et fonctionnels avec des explications étape par étape pour vous aider à maîtriser des fonctionnalités d'API supplémentaires et à explorer des approches d'implémentation alternatives dans vos propres projets. + +- [Charger des documents HTML depuis une URL avec Aspose.HTML pour Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Charger des documents HTML depuis un flux avec Aspose.HTML pour Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Enregistrer un document HTML dans un fichier avec Aspose.HTML pour Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/german/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..257d1fdc6 --- /dev/null +++ b/html/german/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-08-12 +description: HTML mit Python in Markdown konvertieren. Lernen Sie einen Befehlszeilen‑Workflow, + um Webseiten in Markdown zu konvertieren und die Dokumentation zu automatisieren. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: de +lastmod: 2026-08-12 +og_description: HTML mit Python in Markdown konvertieren. Dieses Tutorial zeigt Ihnen + eine Befehlszeilen‑Lösung, um Webseiten schnell und zuverlässig in Markdown zu konvertieren. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: HTML mit Python in Markdown konvertieren – Schritt‑für‑Schritt‑Anleitung +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: HTML in Markdown konvertieren mit Python – vollständiger Programmierleitfaden +url: /de/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML in Markdown mit Python konvertieren – vollständiger Programmierleitfaden + +Wenn Sie **HTML in Markdown konvertieren** müssen, zeigt Ihnen dieser Leitfaden eine sofort einsatzbereite Lösung. Sie sehen, wie ein kurzes Python‑Skript jede HTML‑Datei in sauberes, Git‑flavored Markdown umwandelt und wie Sie dieselbe Logik von der Befehlszeile aus aufrufen können. + +Webseiten in Markdown zu konvertieren ist ein gängiger Schritt beim Erstellen statischer Dokumentationsseiten oder beim Vorbereiten von Inhalten für versionskontrollierte Repositories. Am Ende dieses Tutorials verfügen Sie über ein wiederverwendbares Befehlszeilen‑Tool, das HTML‑Kodierung verarbeitet, Links bewahrt und die Git‑flavored Markdown‑Konventionen einhält. + +## Voraussetzungen + +Bevor Sie beginnen, stellen Sie sicher, dass Sie: + +* Python 3.9 oder neuer, auf Ihrem System installiert. +* Das Python‑Paket `groupdocs-conversion` (oder jede Bibliothek, die `HTMLDocument`, `MarkdownSaveOptions` und `Converter` bereitstellt). Installieren Sie es mit: + +```bash +pip install groupdocs-conversion +``` + +* Ein Ordner, der die Quell‑`input.html`‑Datei enthält, die Sie verarbeiten möchten. + +Die folgenden Abschnitte führen Sie durch jeden Schritt, erklären, warum er wichtig ist, und geben Ihnen den genauen Code, den Sie benötigen. + +## Schritt 1: Umgebung einrichten + +Das Erstellen einer isolierten virtuellen Umgebung verhindert Abhängigkeitskonflikte und macht das Befehlszeilen‑Tool portabel. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Warum dieser Schritt?* +Eine virtuelle Umgebung isoliert das `groupdocs-conversion`‑Paket von anderen Projekten und stellt sicher, dass das `convert html to markdown command line`‑Dienstprogramm mit den exakt getesteten Versionen läuft. + +## Schritt 2: Das Konvertierungsskript schreiben + +Erstellen Sie eine Datei namens `html_to_md.py` und fügen Sie den folgenden Code ein. Das Skript akzeptiert drei Argumente: den Pfad zur Eingabe‑HTML, den Pfad zur Ausgabe‑Markdown und ein optionales Flag, um den Git‑flavored‑Formatter auszuwählen. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Erklärung des Skripts + +| Abschnitt | Zweck | +|-----------|-------| +| **Argument parsing** | Ermöglicht das **convert html to markdown command line**‑Verwendungsmuster. | +| **HTMLDocument** | Lädt die Quelldatei; die Bibliothek abstrahiert Zeichenkodierung und DOM‑Parsing. | +| **MarkdownSaveOptions** | Ermöglicht das Umschalten zwischen einfachem und Git‑flavored Markdown (`--git`‑Flag). | +| **Converter.convert_html** | Führt die eigentliche Arbeit aus – es durchläuft den HTML‑Baum, übersetzt Tags und schreibt die Ausgabedatei. | +| **Error handling** | Gibt eine klare Erfolgs‑/Fehlermeldung aus, was für CI‑Pipelines essentiell ist. | + +## Schritt 3: Die Konvertierung über die Befehlszeile ausführen + +Nachdem das Skript gespeichert ist, können Sie jede HTML‑Datei mit einem einzigen Befehl konvertieren: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Erwartete Ausgabe** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Öffnen Sie `output.md` in einem Texteditor; Sie werden Überschriften, Listen und Links in sauberer Markdown‑Syntax sehen. Da wir den Git‑Formatter verwendet haben, erscheinen Tabellen mit Pipe‑(`|`)‑Trennzeichen und Aufgabenlisten verwenden die `- [ ]`‑Syntax, die GitHub und GitLab nativ rendern. + +## Schritt 4: Das Tool in Automatisierungspipelines integrieren + +Wenn Sie Dokumentation in einem Repository pflegen, können Sie den Konvertierungsschritt zu einem CI‑Workflow hinzufügen. Nachfolgend ein Beispiel für einen GitHub‑Actions‑Job, der bei jedem Push ausgeführt wird: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Warum das wichtig ist* – Die Automatisierung des **convert web page to markdown**‑Schritts stellt sicher, dass Ihre Dokumentation ohne manuellen Aufwand mit den Quell‑HTML‑Dateien synchron bleibt. + +## Randfälle und bewährte Tipps + +* **Encoding‑Probleme** – Wenn Ihr HTML nicht‑UTF‑8‑Zeichen enthält, übergeben Sie beim Erstellen von `HTMLDocument` eine explizite Kodierung (z. B. `HTMLDocument(input_path, encoding='utf-8')`). +* **Große Dateien** – Für HTML‑Dateien größer als 50 MB sollten Sie die Konvertierung streamen, um Speicher‑Spikes zu vermeiden. Die Bibliothek stellt dafür die Methode `convert_html_stream` bereit. +* **Benutzerdefinierte CSS‑Verarbeitung** – Der Konverter entfernt standardmäßig Style‑Attribute. Wenn Sie bestimmte Formatierungen erhalten müssen, aktivieren Sie `md_opts.preserveFormatting = True`. +* **Befehlszeilen‑Kurzbefehle** – Erstellen Sie ein kleines Wrapper‑Skript (`html2md`), das Argumente an `html_to_md.py` weiterleitet. Platzieren Sie es in `$HOME/.local/bin` und fügen Sie es Ihrem `PATH` hinzu, um ein noch kürzeres **convert html to markdown command line**‑Erlebnis zu erhalten. + +## Häufig gestellte Fragen + +**Funktioniert das unter Windows, macOS und Linux?** +Ja. Das Skript verwendet nur das plattformübergreifende `groupdocs-conversion`‑Paket und Standard‑Python‑Bibliotheken, sodass es unverändert auf allen drei Betriebssystemen läuft. + +**Kann ich eine entfernte Webseite direkt konvertieren?** +Sie können die Seite mit `requests` abrufen und den HTML‑String an `HTMLDocument` übergeben: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Was ist, wenn ich nur HTML → GitHub‑flavored Markdown benötige?** +Einfach immer das `--git`‑Flag übergeben; der Formatter erzeugt Ausgabe, die mit GitHub, GitLab und Bitbucket kompatibel ist. + +## Fazit + +Sie haben jetzt eine robuste **convert HTML to Markdown**‑Lösung, die sowohl aus einem Python‑Skript als auch von der Befehlszeile aus funktioniert. Das Tutorial behandelte die Einrichtung der Umgebung, den vollständigen Quellcode, die Befehlszeilen‑Verwendung, die CI‑Integration und den praktischen Umgang mit Randfällen. + +Als Nächstes könnten Sie **convert markdown to HTML** erkunden, mit Pandoc für erweiterte Konvertierungsoptionen experimentieren oder einen Front‑Matter‑Generator hinzufügen, um Metadaten direkt in die Markdown‑Dateien einzubetten. Jede dieser Erweiterungen baut auf den Kernkonzepten auf, die Sie gerade gemeistert haben. + +Viel Spaß beim Konvertieren! + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige funktionierende Code‑Beispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, zusätzliche API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [HTML in Markdown konvertieren in Aspose.HTML für Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [HTML in Markdown konvertieren in .NET mit Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/german/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..79ad7e07c --- /dev/null +++ b/html/german/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Konvertieren Sie HTML in PDF in Python mit GroupDocs.Viewer. Erfahren + Sie, wie Sie HTML als PDF mit flexiblen HTML‑zu‑PDF‑Optionen für präzise Kontrolle + speichern. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: de +lastmod: 2026-08-12 +og_description: HTML mit GroupDocs.Viewer in PDF konvertieren. Dieser Leitfaden zeigt + Ihnen, wie Sie HTML als PDF speichern, HTML‑zu‑PDF‑Optionen konfigurieren und große + Dokumente zuverlässig verarbeiten. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTML in PDF konvertieren – Schritt‑für‑Schritt‑Python‑Tutorial +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: HTML in PDF mit Python konvertieren – vollständiger Programmierleitfaden +url: /de/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML in PDF konvertieren in Python – vollständiger Programmierleitfaden + +Wenn Sie **HTML in PDF konvertieren** müssen in einem Python‑Projekt, zeigt Ihnen dieser Leitfaden eine sofort einsatzbereite Lösung. Wir führen Sie durch die Installation der Viewer‑Bibliothek, die Konfiguration von **html to pdf options** und schließlich das **save HTML as PDF** mit nur wenigen Codezeilen. + +Das Konvertieren von HTML‑Dokumenten beinhaltet oft das Verarbeiten verknüpfter Ressourcen wie Bilder, CSS oder JavaScript. Am Ende dieses Tutorials verstehen Sie, wie Sie die Verschachtelung von Ressourcen begrenzen, Speicherspitzen vermeiden und eine saubere PDF‑Datei erzeugen, die dem ursprünglichen Seitenlayout entspricht. + +## Voraussetzungen + +- Python 3.8 oder neuer +- `pip` (Python‑Paket‑Installer) +- Zugriff auf die HTML‑Datei, die Sie konvertieren möchten (z. B. `large_page.html`) + +Es sind keine zusätzlichen Systembibliotheken erforderlich, da GroupDocs.Viewer alle notwendigen Rendering‑Engines bündelt. + +## Schritt 1: Installieren von GroupDocs.Viewer für Python + +GroupDocs.Viewer bietet hochpräzise Konvertierung aus vielen Formaten, einschließlich HTML, nach PDF. Installieren Sie es mit: + +```bash +pip install groupdocs-viewer +``` + +> **Pro‑Tipp:** Verwenden Sie eine virtuelle Umgebung (`python -m venv .venv`), um Abhängigkeiten von anderen Projekten zu isolieren. + +## Schritt 2: Konfigurieren von **html to pdf options** – Begrenzung der Verschachtelungstiefe von Ressourcen + +Große HTML‑Seiten können tief verschachtelte Ressourcen enthalten (iframes, CSS‑Importe usw.). Das Festlegen einer maximalen Verarbeitungstiefe verhindert, dass der Konverter unendlich rekursiv arbeitet, und hält die Speicher‑Auslastung vorhersehbar. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Die Eigenschaft `max_handling_depth` gibt dem Viewer an, wie viele Ebenen verknüpfter Ressourcen er folgen soll. Eine Tiefe von `3` funktioniert für die meisten Webseiten gut, während notwendige Bilder und Styles erhalten bleiben. + +## Schritt 3: Laden Sie das HTML‑Dokument, das Sie **convert HTML to PDF** möchten + +`Viewer` abstrahiert die Dateiformaterkennung, sodass Sie `HtmlDocument` nicht manuell instanziieren müssen. Dieser Schritt bereitet die interne Repräsentation vor, mit der der Konverter arbeitet. + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +## Schritt 4: **Save HTML as PDF** mit den konfigurierten **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Das Objekt `PdfSaveOptions` bündelt alle PDF‑spezifischen Einstellungen, einschließlich der zuvor definierten `resource_handling_options`. Wenn `viewer.save` ausgeführt wird, wird die HTML‑Seite gerendert, Ressourcen bis zur zulässigen Tiefe verarbeitet und das endgültige PDF nach `output_path` geschrieben. + +### Erwartetes Ergebnis + +Nachdem das Skript beendet ist, enthält `output.pdf` eine getreue Darstellung von `large_page.html`. Öffnen Sie das PDF mit einem beliebigen Viewer (Adobe Reader, Chrome usw.) und prüfen Sie, dass: + +- Bilder, Tabellen und grundlegende CSS‑Stile korrekt angezeigt werden. +- Keine unerwarteten leeren Seiten durch tiefe Ressourcen‑Rekursion entstehen. + +## Umgang mit Randfällen und gängigen Variationen + +| Situation | Empfohlene Anpassung | +|-----------|----------------------| +| **HTML enthält externe Schriften** | Fügen Sie `pdf_options.embed_all_fonts = True` hinzu, um sicherzustellen, dass Schriften im PDF eingebettet werden. | +| **Sie benötigen eine bestimmte Seitengröße** | Setzen Sie `pdf_options.page_width` und `pdf_options.page_height` (z. B. A4: `595, 842`). | +| **Große Dateien verursachen Out‑of‑Memory‑Fehler** | Verringern Sie `resource_options.max_handling_depth` oder teilen Sie das HTML in kleinere Fragmente und konvertieren Sie jedes separat. | +| **Sie möchten das PDF mit einem Passwort schützen** | Verwenden Sie `pdf_options.password = "YourSecret"` bevor Sie `save` aufrufen. | + +Diese Anpassungen zeigen die Flexibilität von **html to pdf options** und verdeutlichen, wie Sie die Konvertierung exakt an Ihre Anforderungen anpassen können. + +## Vollständiges Skript zum Kopieren und Einfügen + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Skript ausführen: + +```bash +python convert_html_to_pdf.py +``` + +Sie sollten die Bestätigungsnachricht sehen und `output.pdf` im angegebenen Verzeichnis finden. + +## Häufig gestellte Fragen + +**Q: Funktioniert das mit entfernten URLs anstelle lokaler Dateien?** +A: Ja. Übergeben Sie den URL‑String an `Viewer` (z. B. `Viewer("https://example.com/page.html")`). Der Viewer lädt die Seite herunter, bevor die **html to pdf options** angewendet werden. + +**Q: Kann ich mehrere HTML‑Dateien stapelweise konvertieren?** +A: Verpacken Sie den Konvertierungscode in einer Schleife, die über eine Liste von Dateipfaden iteriert. Verwenden Sie dieselben `resource_options`‑ und `pdf_options`‑Objekte erneut, um die Effizienz zu steigern. + +**Q: Was ist, wenn das HTML JavaScript verwendet, um das DOM zu verändern?** +A: GroupDocs.Viewer rendert das statische HTML; es führt **kein** JavaScript aus. Für dynamische Seiten rendern Sie die Seite zuerst in einem Headless‑Browser (z. B. Selenium) und übergeben dann das resultierende statische HTML an den Konverter. + +## Fazit + +Sie haben nun eine vollständige, produktionsreife Methode, um **HTML in PDF** in Python zu **convert HTML to PDF**. Durch die Konfiguration von **resource handling** steuern Sie, wie tief verknüpfte Ressourcen verarbeitet werden, und `PdfSaveOptions` ermöglichen Ihnen das **save HTML as PDF** mit feinkörnigen **html to pdf options**. Experimentieren Sie mit den optionalen Einstellungen – wie Schriftart‑Einbettung oder Seitengröße – um die genauen Anforderungen Ihrer Anwendung zu erfüllen. + +--- + +*Weiterführende Schritte*: Erkunden Sie **save HTML document pdf** mit Passwortschutz oder integrieren Sie diese Konvertierung in eine Web‑API mit Flask oder FastAPI für die on‑demand PDF‑Erstellung. + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Codebeispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, weitere API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [Wie man HTML in PDF Java konvertiert – Verwendung von Aspose.HTML für Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [HTML nach PDF konvertieren Java – Umgebung konfigurieren in Aspose.HTML](/html/english/java/configuring-environment/) +- [HTML nach PDF konvertieren – Web‑Request‑Ausführung in Aspose.HTML für Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/german/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..44ee64030 --- /dev/null +++ b/html/german/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,341 @@ +--- +category: general +date: 2026-08-12 +description: Konvertieren Sie HTML in PDF in Python mit dem Aspose HTML Converter. + Erfahren Sie, wie Sie PDF aus HTML erzeugen und EPUB in PDF mit nur wenigen Codezeilen + konvertieren. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: de +lastmod: 2026-08-12 +og_description: HTML in PDF in Python mit Aspose HTML Converter konvertieren. Dieses + Tutorial zeigt, wie man PDF aus HTML erzeugt und wie man EPUB in PDF umwandelt, + mit klarem, ausführbarem Code. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: HTML in PDF mit Python und Aspose HTML Converter – Schnellguide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: HTML in PDF mit Python und dem Aspose HTML Converter konvertieren +url: /de/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML in PDF in Python mit Aspose HTML Converter konvertieren + +Wenn Sie **HTML in PDF** schnell konvertieren müssen, zeigt Ihnen dieser Leitfaden genau, wie Sie dies mit der Aspose.HTML Python-Bibliothek erledigen. Egal, ob Sie einen Web‑Service erstellen, der von Benutzern eingereichte Seiten in druckbare PDFs umwandelt, oder die Berichtserstellung automatisieren – die nachstehenden Schritte bieten Ihnen eine vollständige, sofort einsatzbereite Lösung. + +Zusätzlich zu HTML unterstützt Aspose.HTML auch E‑Book‑Formate, sodass Sie **wie man EPUB**‑Dateien in PDF konvertiert, ohne Python zu verlassen. Am Ende dieses Tutorials können Sie **PDF aus HTML erzeugen** und PDF‑Versionen von EPUB‑E‑Books mit nur wenigen Code‑Zeilen erstellen. + +## Voraussetzungen + +Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben: + +* Python 3.8 oder neuer installiert. +* Eine aktive Aspose.HTML für Python Lizenz (die kostenlose Testversion funktioniert für Evaluierungszwecke). +* `pip`‑Zugriff, um das Paket `aspose-html` zu installieren. +* Beispiel‑HTML‑ oder EPUB‑Dateien, die Sie konvertieren möchten. + +```bash +pip install aspose-html +``` + +> **Profi‑Tipp:** Installieren Sie das Paket in einer virtuellen Umgebung, um Abhängigkeiten zu isolieren. + +## Übersicht über den Konvertierungsprozess + +Aspose.HTML stellt eine einzelne `Converter`‑Klasse bereit, die die Details des Renderns von HTML, CSS und E‑Book‑Inhalten in PDF abstrahiert. Der Arbeitsablauf ist: + +1. Importieren Sie die `Converter`‑Klasse. +2. Rufen Sie `Converter.convert(source_path, target_path)` auf. +3. (Optional) Passen Sie Konvertierungseinstellungen wie Seitengröße oder Schriftart‑Einbettung an. + +Die Bibliothek erkennt das Quellformat automatisch anhand der Dateierweiterung, sodass dieselbe Methode sowohl für HTML‑ als auch für EPUB‑Dateien funktioniert. + +--- + +## HTML mit Aspose HTML Converter in PDF konvertieren + +### Schritt 1: Importieren des Aspose HTML‑Konvertierungsmoduls + +Die `Converter`‑Klasse befindet sich im Namensraum `aspose.html`. Importieren Sie sie am Anfang Ihres Skripts. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Schritt 2: Eingabe‑ und Ausgabepfade vorbereiten + +Verwenden Sie absolute oder relative Pfade, die Ihr Skript lesen/schreiben kann. Es ist gute Praxis, zu prüfen, ob die Quelldatei existiert, bevor Sie die Konvertierung versuchen. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Schritt 3: Die Konvertierung durchführen + +Der Aufruf von `Converter.convert` übernimmt die gesamte schwere Arbeit: das Rendern von HTML, das Anwenden von CSS und das Schreiben einer PDF‑Datei. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Warum das funktioniert + +* **Automatische Layout-Engine** – Aspose.HTML verwendet eine Chromium‑basierte Rendering‑Engine, die sicherstellt, dass modernes CSS, SVG und JavaScript korrekt verarbeitet werden. +* **Keine Zwischendateien** – Die Konvertierung erfolgt im Speicher, wodurch I/O‑Overhead reduziert und die Stapelverarbeitung beschleunigt wird. + +### Erwartete Ausgabe + +Nach dem Ausführen des Skripts enthält `output.pdf` eine getreue Darstellung von `input.html`. Öffnen Sie es mit einem beliebigen PDF‑Betrachter, um zu überprüfen, ob Schriftarten, Bilder und Seitenumbrüche mit der ursprünglichen Webseite übereinstimmen. + +![Konvertierungsdiagramm](https://example.com/conversion-diagram.png "Diagramm, das die Konvertierung von HTML‑ und EPUB‑Dateien in PDF mit Aspose HTML Converter zeigt") + +*(Bildbeschreibung: Diagramm, das die Konvertierung von HTML‑ und EPUB‑Dateien in PDF mit Aspose HTML Converter zeigt)* + +## PDF aus HTML mit benutzerdefinierten Einstellungen erzeugen + +Manchmal müssen Sie Seitengröße, Ränder oder das Einbetten bestimmter Schriftarten steuern. Aspose.HTML stellt dafür eine `PdfSaveOptions`‑Klasse bereit. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Das `options`‑Objekt ist optional; lassen Sie es weg, wenn Ihnen das Standard‑Layout genügt.* + +--- + +## Wie man EPUB in Python zu PDF konvertiert + +### Schritt 1: EPUB‑Quelle finden + +Wie bei HTML geben Sie den Pfad zur EPUB‑Datei an, die Sie umwandeln möchten. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Schritt 2: Die Konvertierung ausführen + +Die gleiche `Converter.convert`‑Methode erkennt die `.epub`‑Erweiterung und wechselt zur E‑Book‑Rendering‑Pipeline. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Besondere Fälle, die zu beachten sind + +| Situation | Empfohlene Vorgehensweise | +|----------------------------------------|---------------------------| +| Large EPUB (hundreds of chapters) | In Teilen konvertieren, indem `PdfSaveOptions.start_page` und `end_page` verwendet werden, um den Speicherverbrauch zu begrenzen. | +| Missing fonts in the EPUB | `PdfSaveOptions.embed_standard_fonts = True` setzen, um auf Systemschriftarten zurückzugreifen. | +| Password‑protected EPUB | `PdfLoadOptions` verwenden, um das Passwort vor der Konvertierung anzugeben (hier nicht gezeigt). | + +--- + +## Vollständiges, ausführbares Beispiel + +Unten finden Sie ein einzelnes Skript, das alle oben genannten Schritte kombiniert. Speichern Sie es als `convert_demo.py` und führen Sie es über die Befehlszeile aus. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Skript ausführen: + +```bash +python convert_demo.py +``` + +Sie sollten drei Bestätigungsnachrichten und drei PDF‑Dateien in `YOUR_DIRECTORY` sehen. + +--- + +## Häufige Fallstricke und wie man sie vermeidet + +* **Fehlende Lizenz** – Ohne eine gültige Aspose.HTML‑Lizenz fügt die Bibliothek jedem Blatt ein Wasserzeichen hinzu. Registrieren Sie Ihre Lizenz früh im Skript: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relative Pfade auf verschiedenen Betriebssystemen** – Verwenden Sie `os.path.join` und `os.path.abspath`, um plattformunabhängige Pfade zu erstellen. + +* **Großes HTML mit externen Ressourcen** – Stellen Sie sicher, dass alle CSS‑Dateien, Bilder und Schriftarten im Dateisystem erreichbar sind oder betten Sie sie mittels Data‑URIs ein. Andernfalls kann das PDF leere Platzhalter rendern. + +* **Thread‑Sicherheit** – `Converter.convert` ist thread‑sicher, aber das gleichzeitige Erstellen vieler Converter kann erheblichen Speicher verbrauchen. Verwenden Sie eine einzelne Converter‑Instanz wieder, wenn Sie Hunderte von Dateien parallel verarbeiten. + +--- + +## Fazit + +Sie haben nun einen vollständigen, produktionsbereiten Ansatz, um **HTML in PDF** zu konvertieren und **wie man EPUB**‑Dateien in Python mit dem **Aspose HTML Converter** zu PDF konvertiert. Das Tutorial behandelte: + +* Import des richtigen Moduls. +* Validierung der Eingabedateien. +* Durchführung einer grundlegenden Konvertierung. +* Anpassen der PDF‑Ausgabe mit `PdfSaveOptions`. +* Umgang mit großen oder passwortgeschützten EPUBs. + +Ab hier können Sie die Lösung erweitern, um Ordner stapelweise zu verarbeiten, den Code in einen Flask‑ oder FastAPI‑Endpunkt zu integrieren oder mit zusätzlichen Ausgabeformaten wie DOCX oder PNG zu experimentieren (Aspose.HTML unterstützt diese ebenfalls). + +### Nächste Schritte + +* Erkunden Sie **PDF aus HTML erzeugen** mit JavaScript‑gesteuerten Seiten, indem Sie `Converter.convert` mit einer headless‑Browser‑Sitzung aktivieren. +* Kombinieren Sie diesen Workflow mit **Aspose.PDF** für Nachbearbeitungsaufgaben wie das Zusammenführen mehrerer PDFs oder das Hinzufügen digitaler Signaturen. +* Schauen Sie sich die erweiterten Optionen von **aspose-html-converter** an, wie `PdfSaveOptions.jpeg_quality` für bildintensive Dokumente. + +Viel Spaß beim Programmieren und genießen Sie die Zuverlässigkeit von Aspose.HTML für all Ihre Dokumentkonvertierungs‑Bedürfnisse! + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Code‑Beispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, zusätzliche API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [HTML mit Aspose.HTML in PDF konvertieren – Vollständiger Manipulations‑Leitfaden](/html/english/) +- [EPUB in .NET mit Aspose.HTML zu PDF konvertieren](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/german/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..79db9efc9 --- /dev/null +++ b/html/german/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Lade HTML schnell aus einer Datei in Python. Erfahre, wie man eine HTML-Datei + mit Python liest, HTML von einer URL lädt und ein HTML‑Dokument aus einem String + erstellt – alles in einem einzigen Tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: de +lastmod: 2026-08-12 +og_description: Laden Sie HTML aus einer Datei in Python mit der HTMLDocument‑Klasse. + Folgen Sie dieser Anleitung, um eine HTML‑Datei mit Python zu lesen, HTML von einer + URL zu laden und ein HTMLDocument aus einem String zu erstellen, für eine robuste + Web‑Content‑Verarbeitung. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: HTML aus Datei in Python laden – kurzer Programmierleitfaden +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: HTML aus Datei in Python laden – Schritt‑für‑Schritt‑Anleitung +url: /de/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML aus Datei in Python laden – Schritt‑für‑Schritt‑Anleitung + +Wenn Sie **HTML aus Datei in Python laden** müssen, zeigt Ihnen dieser Leitfaden genau, wie das geht. Sie lernen außerdem, wie man **HTML‑Datei mit Python liest**, HTML von einer URL lädt und **htmldocument aus Zeichenkette erstellt**, sodass Sie jede Quelle von HTML‑Inhalt verarbeiten können. + +Die Beispiele verwenden die Klasse `HTMLDocument` aus dem Paket `html_document`, das eine einheitliche API für lokale Dateien, entfernte URLs und rohe HTML‑Zeichenketten bereitstellt. Der Ansatz funktioniert mit Python 3.8+ und lässt sich sauber in Standardbibliotheken wie `pathlib` und `requests` integrieren. + +![Load html from file in Python code screenshot](image.png) + +## HTML aus Datei in Python laden – einfaches Beispiel + +Das Laden einer HTML‑Datei vom lokalen Dateisystem ist der häufigste erste Schritt bei der Verarbeitung statischer Seiten. Der Konstruktor `HTMLDocument` akzeptiert einen Dateipfad, erkennt automatisch die Kodierung der Datei und parsed das Markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Warum das funktioniert:** +* `Path` abstrahiert betriebssystemspezifische Pfadtrennzeichen, wodurch der Code auf Windows, macOS und Linux portabel ist. +* `HTMLDocument` liest die Datei im Binärmodus, erkennt UTF‑8‑ oder UTF‑16‑BOM und greift bei Bedarf auf die standardmäßige Systemkodierung zurück. + +**Erwartete Ausgabe (angenommen, das HTML enthält `Example`):** + +``` +Title: Example +``` + +### Häufige Fallstricke beim Laden einer Datei + +* **FileNotFoundError** – Stellen Sie sicher, dass der Pfad korrekt ist und die Datei existiert. Verwenden Sie `file_path.is_file()` für eine Vorprüfung. +* **Encoding errors** – Wenn die Seite einen nicht‑UTF‑8‑Zeichensatz verwendet, übergeben Sie `encoding="iso-8859-1"` an den Konstruktor: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## HTML‑Datei mit Python lesen – detaillierte Erklärung + +Der Ausdruck **read html file using python** taucht häufig auf, wenn Entwickler Daten aus gespeicherten Webseiten extrahieren müssen. Während `HTMLDocument` die meiste Arbeit abstrahiert, können Sie auch Rohtext laden und ihn manuell an den Parser übergeben. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Warum Sie diesen Weg wählen könnten:** +* Sie müssen das HTML vor dem Parsen vorverarbeiten (z. B. Skripte entfernen). +* Sie möchten das rohe Markup für spätere Wiederverwendung zwischenspeichern, ohne die Datei erneut zu lesen. + +## HTML von URL laden – Abrufen entfernter Seiten + +HTML direkt von einer Webadresse zu laden erweitert den Arbeitsablauf auf Live‑Inhalte. Der Schritt **load html from url** nutzt die Bibliothek `requests` für die HTTP‑Verarbeitung und übergibt anschließend den Antworttext an `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Warum das funktioniert:** +* `requests.get` folgt Weiterleitungen und behandelt HTTPS standardmäßig. +* `response.raise_for_status()` stellt sicher, dass nur erfolgreiche Antworten geparst werden, wodurch stille Fehler vermieden werden. + +**Randfälle:** +* **Langsames Netzwerk** – Passen Sie den Parameter `timeout` an oder verwenden Sie `requests.Session` für Connection‑Pooling. +* **Nicht‑HTML‑Inhalt** – Überprüfen Sie den Header `Content-Type` (`response.headers["Content-Type"]`), bevor Sie parsen. + +## htmldocument aus Zeichenkette erstellen – Arbeiten mit rohem HTML + +Manchmal erzeugen Sie HTML dynamisch (z. B. aus einer Template‑Engine) und müssen es als Dokument behandeln, ohne es auf die Festplatte zu schreiben. Der Vorgang **create htmldocument from string** ist unkompliziert. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Warum das nützlich ist:** +* Es eliminiert die Notwendigkeit temporärer Dateien, was die Leistung in serverlosen Umgebungen verbessert. +* Es ermöglicht Ihnen, das erzeugte Markup zu validieren, bevor Sie es an einen Client senden oder speichern. + +**Tipps zum Umgang mit Zeichenketten:** +* Verwenden Sie dreifach‑gequotete Strings, um das Markup lesbar zu halten. +* Wenn das HTML Unicode‑Zeichen enthält, stellen Sie sicher, dass die Quelldatei mit UTF‑8 kodiert gespeichert ist. + +## Vollständiges End‑zu‑End‑Beispiel + +Das Zusammenführen aller vier Ladestrategien zeigt eine flexible Pipeline, die zwischen lokalen, entfernten und im Speicher befindlichen Quellen wechseln kann. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Was dieser Code veranschaulicht:** + +* Eine einzelne `HTMLDocument`‑Klasse verarbeitet alle Eingabetypen und reduziert die API‑Oberfläche. +* Hilfsfunktionen kapseln die Fehlerbehandlung und machen den Aufrufcode kompakt. +* Das Muster skaliert für Batch‑Verarbeitung: Durchlaufen Sie eine Liste von Dateipfaden oder URLs und übergeben Sie jedes Dokument an einen Scraper oder Transformer. + +## Fazit + +Sie wissen jetzt, wie man **HTML aus Datei in Python lädt** mit der `HTMLDocument`‑Klasse, wie man **HTML‑Datei mit + +## Was sollten Sie als Nächstes lernen? + +Die folgenden Tutorials behandeln eng verwandte Themen, die auf den in diesem Leitfaden gezeigten Techniken aufbauen. Jede Ressource enthält vollständige, funktionierende Code‑Beispiele mit Schritt‑für‑Schritt‑Erklärungen, um Ihnen zu helfen, weitere API‑Funktionen zu meistern und alternative Implementierungsansätze in Ihren eigenen Projekten zu erkunden. + +- [HTML‑Dokumente von URL laden in Aspose.HTML für Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [HTML‑Dokumente aus Stream laden mit Aspose.HTML für Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [HTML‑Dokument in Datei speichern in Aspose.HTML für Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/greek/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..59d04808d --- /dev/null +++ b/html/greek/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,256 @@ +--- +category: general +date: 2026-08-12 +description: Μετατρέψτε HTML σε Markdown χρησιμοποιώντας Python. Μάθετε μια ροή εργασίας + στη γραμμή εντολών για να μετατρέψετε μια ιστοσελίδα σε Markdown και να αυτοματοποιήσετε + την τεκμηρίωση. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: el +lastmod: 2026-08-12 +og_description: Μετατρέψτε HTML σε Markdown χρησιμοποιώντας Python. Αυτό το σεμινάριο + σας δείχνει μια λύση γραμμής εντολών για τη γρήγορη και αξιόπιστη μετατροπή ιστοσελίδας + σε Markdown. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Μετατροπή HTML σε Markdown με Python – οδηγός βήμα‑βήμα +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Μετατροπή HTML σε Markdown με Python – πλήρης οδηγός προγραμματισμού +url: /el/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μετατροπή HTML σε Markdown με Python – πλήρης οδηγός προγραμματισμού + +Αν χρειάζεστε **convert HTML to Markdown**, αυτός ο οδηγός σας παρουσιάζει μια έτοιμη προς εκτέλεση λύση. Θα δείτε πώς ένα σύντομο script Python μετατρέπει οποιοδήποτε αρχείο HTML σε καθαρό, Git‑flavored Markdown, και πώς μπορείτε να καλέσετε την ίδια λογική από τη γραμμή εντολών. + +Η μετατροπή ιστοσελίδων σε Markdown είναι ένα κοινό βήμα όταν δημιουργείτε στατικές ιστοσελίδες τεκμηρίωσης ή προετοιμάζετε περιεχόμενο για αποθετήρια ελεγχόμενα με εκδόσεις. Στο τέλος αυτού του tutorial θα έχετε ένα επαναχρησιμοποιήσιμο εργαλείο γραμμής εντολών που διαχειρίζεται την κωδικοποίηση HTML, διατηρεί τους συνδέσμους και σέβεται τις προδιαγραφές του Git‑flavored Markdown. + +## Προαπαιτούμενα + +Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε: + +* Python 3.9 ή νεότερη εγκατεστημένη στο σύστημά σας. +* Το πακέτο Python `groupdocs-conversion` (ή οποιαδήποτε βιβλιοθήκη που παρέχει `HTMLDocument`, `MarkdownSaveOptions` και `Converter`). Εγκαταστήστε το με: + +```bash +pip install groupdocs-conversion +``` + +* Έναν φάκελο που περιέχει το πηγαίο αρχείο `input.html` που θέλετε να επεξεργαστείτε. + +Οι παρακάτω ενότητες περνούν από κάθε βήμα, εξηγούν γιατί είναι σημαντικό, και σας παρέχουν τον ακριβή κώδικα που χρειάζεστε. + +## Βήμα 1: Ρύθμιση του περιβάλλοντος + +Η δημιουργία ενός απομονωμένου εικονικού περιβάλλοντος αποτρέπει συγκρούσεις εξαρτήσεων και κάνει το εργαλείο γραμμής εντολών φορητό. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Γιατί αυτό το βήμα;* +Ένα εικονικό περιβάλλον απομονώνει το πακέτο `groupdocs-conversion` από άλλα έργα, διασφαλίζοντας ότι το εργαλείο `convert html to markdown command line` εκτελείται με τις ακριβείς εκδόσεις που δοκιμάσατε. + +## Βήμα 2: Γράψτε το script μετατροπής + +Δημιουργήστε ένα αρχείο με όνομα `html_to_md.py` και επικολλήστε τον παρακάτω κώδικα. Το script δέχεται τρία ορίσματα: τη διαδρομή του εισερχόμενου HTML, τη διαδρομή εξόδου Markdown, και μια προαιρετική σημαία για την επιλογή του Git‑flavored formatter. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Εξήγηση του script + +| Τμήμα | Σκοπός | +|---------|---------| +| **Argument parsing** | Ενεργοποιεί το πρότυπο χρήσης **convert html to markdown command line**. | +| **HTMLDocument** | Φορτώνει το πηγαίο αρχείο· η βιβλιοθήκη αφαιρεί την κωδικοποίηση χαρακτήρων και την ανάλυση DOM. | +| **MarkdownSaveOptions** | Σας επιτρέπει να εναλλάσσετε μεταξύ απλού και Git‑flavored Markdown (`--git` flag). | +| **Converter.convert_html** | Εκτελεί το βαριά έργο – διασχίζει το δέντρο HTML, μεταφράζει τις ετικέτες και γράφει το αρχείο εξόδου. | +| **Error handling** | Παρέχει σαφές μήνυμα επιτυχίας/αποτυχίας, το οποίο είναι ουσιώδες για CI pipelines. | + +## Βήμα 3: Εκτέλεση της μετατροπής από τη γραμμή εντολών + +Με το script αποθηκευμένο, μπορείτε να μετατρέψετε οποιοδήποτε αρχείο HTML με μία μόνο εντολή: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Αναμενόμενη έξοδος** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Ανοίξτε το `output.md` σε έναν επεξεργαστή κειμένου· θα δείτε κεφαλίδες, λίστες και συνδέσμους να εμφανίζονται σε καθαρή σύνταξη Markdown. Επειδή χρησιμοποιήσαμε τον Git formatter, οι πίνακες εμφανίζονται με διαχωριστικά pipe (`|`), και οι λίστες εργασιών χρησιμοποιούν σύνταξη `- [ ]`, την οποία το GitHub και το GitLab αποδίδουν εγγενώς. + +## Βήμα 4: Ενσωμάτωση του εργαλείου σε αυτοματοποιημένες pipelines + +Αν διατηρείτε τεκμηρίωση σε αποθετήριο, μπορείτε να προσθέσετε το βήμα μετατροπής σε μια CI ροή εργασίας. Παρακάτω είναι ένα παράδειγμα για μια εργασία GitHub Actions που εκτελείται σε κάθε push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Γιατί είναι σημαντικό* – Η αυτοματοποίηση του βήματος **convert web page to markdown** εγγυάται ότι η τεκμηρίωσή σας παραμένει συγχρονισμένη με τα πηγαία αρχεία HTML χωρίς χειροκίνητη προσπάθεια. + +## Περιπτώσεις άκρων και συμβουλές βέλτιστων πρακτικών + +* **Encoding problems** – Εάν το HTML σας περιέχει χαρακτήρες που δεν είναι UTF‑8, περάστε μια ρητή κωδικοποίηση κατά τη δημιουργία του `HTMLDocument` (π.χ., `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – Για αρχεία HTML μεγαλύτερα από 50 MB, σκεφτείτε τη ροή (streaming) της μετατροπής για να αποφύγετε αυξήσεις μνήμης. Η βιβλιοθήκη παρέχει τη μέθοδο `convert_html_stream` για αυτό το σενάριο. +* **Custom CSS handling** – Ο μετατροπέας αφαιρεί τα χαρακτηριστικά style από προεπιλογή. Εάν χρειάζεται να διατηρήσετε συγκεκριμένη μορφοποίηση, ενεργοποιήστε `md_opts.preserveFormatting = True`. +* **Command‑line shortcut** – Δημιουργήστε ένα μικρό wrapper script (`html2md`) που προωθεί τα ορίσματα στο `html_to_md.py`. Τοποθετήστε το στο `$HOME/.local/bin` και προσθέστε το στο `PATH` σας για μια ακόμη πιο σύντομη εμπειρία **convert html to markdown command line**. + +## Συχνές ερωτήσεις + +**Λειτουργεί αυτό σε Windows, macOS και Linux;** +Ναι. Το script εξαρτάται μόνο από το cross‑platform πακέτο `groupdocs-conversion` και τις τυπικές βιβλιοθήκες Python, έτσι εκτελείται αμετάβλητο σε όλα τα τρία λειτουργικά συστήματα. + +**Μπορώ να μετατρέψω απευθείας μια απομακρυσμένη ιστοσελίδα;** +Μπορείτε να κατεβάσετε τη σελίδα με `requests` και να περάσετε το string HTML στο `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Τι γίνεται αν χρειάζομαι μόνο HTML → GitHub‑flavored Markdown;** +Απλώς πάντα περάστε τη σημαία `--git`; ο formatter παράγει έξοδο συμβατή με GitHub, GitLab και Bitbucket. + +## Συμπέρασμα + +Τώρα έχετε μια ισχυρή λύση **convert HTML to Markdown** που λειτουργεί από ένα script Python και από τη γραμμή εντολών. Το tutorial κάλυψε τη ρύθμιση του περιβάλλοντος, τον πλήρη κώδικα, τη χρήση της γραμμής εντολών, την ενσωμάτωση CI, και την πρακτική διαχείριση περιπτώσεων άκρων. + +Στη συνέχεια, μπορείτε να εξερευνήσετε το **convert markdown to HTML**, να πειραματιστείτε με το Pandoc για προχωρημένες επιλογές μετατροπής, ή να προσθέσετε έναν δημιουργό front‑matter για ενσωμάτωση μεταδεδομένων απευθείας στα αρχεία Markdown. Κάθε μία από αυτές τις επεκτάσεις βασίζεται στις βασικές έννοιες που μόλις κατακτήσατε. + +Καλή μετατροπή! + +## Τι Θα Πρέπει Να Μάθετε Στη Σύντομη Μελλοντική; + +Τα παρακάτω tutorials καλύπτουν στενά σχετιζόμενα θέματα που βασίζονται στις τεχνικές που παρουσιάστηκαν σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσει να κατακτήσετε πρόσθετες δυνατότητες API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Μετατροπή HTML σε Markdown με Aspose.HTML για Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Μετατροπή HTML σε Markdown σε .NET με Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/greek/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..c538dc2d5 --- /dev/null +++ b/html/greek/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Μετατρέψτε HTML σε PDF με Python χρησιμοποιώντας το GroupDocs.Viewer. + Μάθετε πώς να αποθηκεύετε HTML ως PDF με ευέλικτες επιλογές HTML‑σε‑PDF για ακριβή + έλεγχο. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: el +lastmod: 2026-08-12 +og_description: Μετατρέψτε HTML σε PDF με το GroupDocs.Viewer. Αυτός ο οδηγός σας + δείχνει πώς να αποθηκεύσετε HTML ως PDF, να διαμορφώσετε τις επιλογές μετατροπής + HTML σε PDF και να διαχειριστείτε αξιόπιστα μεγάλα έγγραφα. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Μετατροπή HTML σε PDF – βήμα-βήμα οδηγός Python +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Μετατροπή HTML σε PDF με Python – πλήρης οδηγός προγραμματισμού +url: /el/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μετατροπή HTML σε PDF με Python – πλήρης προγραμματιστικός οδηγός + +Αν χρειάζεστε **convert HTML to PDF** σε ένα έργο Python, αυτός ο οδηγός σας δείχνει μια έτοιμη προς εκτέλεση λύση. Θα περάσουμε από την εγκατάσταση της βιβλιοθήκης viewer, τη διαμόρφωση των **html to pdf options**, και τελικά το **save HTML as PDF** με λίγες μόνο γραμμές κώδικα. + +Η μετατροπή εγγράφων HTML συχνά περιλαμβάνει τη διαχείριση συνδεδεμένων πόρων όπως εικόνες, CSS ή JavaScript. Στο τέλος αυτού του οδηγού θα καταλάβετε πώς να περιορίσετε την εσωτερική εμφύτευση πόρων, να αποφύγετε τις αυξήσεις μνήμης και να παραγάγετε ένα καθαρό αρχείο PDF που ταιριάζει με την αρχική διάταξη της σελίδας. + +## Προαπαιτούμενα + +- Python 3.8 ή νεότερο +- `pip` (εγκαταστάτης πακέτων Python) +- Πρόσβαση στο αρχείο HTML που θέλετε να μετατρέψετε (π.χ., `large_page.html`) + +Δεν απαιτούνται πρόσθετες βιβλιοθήκες συστήματος επειδή το GroupDocs.Viewer περιλαμβάνει όλες τις απαραίτητες μηχανές απόδοσης. + +## Βήμα 1: Εγκατάσταση GroupDocs.Viewer για Python + +Το GroupDocs.Viewer παρέχει υψηλής πιστότητας μετατροπή από πολλές μορφές, συμπεριλαμβανομένου του HTML, σε PDF. Εγκαταστήστε το με: + +```bash +pip install groupdocs-viewer +``` + +> **Συμβουλή επαγγελματία:** Χρησιμοποιήστε ένα εικονικό περιβάλλον (`python -m venv .venv`) για να διατηρήσετε τις εξαρτήσεις απομονωμένες από άλλα έργα. + +## Βήμα 2: Διαμόρφωση **html to pdf options** – περιορισμός βάθους εμφύτευσης πόρων + +Οι μεγάλες σελίδες HTML μπορούν να περιέχουν βαθειά εμφυτευμένους πόρους (iframes, εισαγωγές CSS κ.λπ.). Ο καθορισμός μέγιστου βάθους επεξεργασίας αποτρέπει τον μετατροπέα από ατέρμονη επανάληψη και διατηρεί τη χρήση μνήμης προβλέψιμη. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Η ιδιότητα `max_handling_depth` λέει στο viewer πόσα επίπεδα συνδεδεμένων πόρων πρέπει να ακολουθήσει. Ένα βάθος `3` λειτουργεί καλά για τις περισσότερες ιστοσελίδες ενώ διατηρεί τις απαραίτητες εικόνες και στυλ. + +## Βήμα 3: Φόρτωση του εγγράφου HTML που θέλετε να **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` αφαιρεί την ανίχνευση μορφής αρχείου, έτσι δεν χρειάζεται να δημιουργήσετε χειροκίνητα το `HtmlDocument`. Αυτό το βήμα προετοιμάζει την εσωτερική αναπαράσταση με την οποία θα δουλέψει ο μετατροπέας. + +## Βήμα 4: **Save HTML as PDF** χρησιμοποιώντας τις διαμορφωμένες **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Το αντικείμενο `PdfSaveOptions` συγκεντρώνει όλες τις ρυθμίσεις ειδικές για PDF, συμπεριλαμβανομένων των `resource_handling_options` που ορίσαμε νωρίτερα. Όταν εκτελείται το `viewer.save`, η σελίδα HTML αποδίδεται, οι πόροι επεξεργάζονται μέχρι το επιτρεπόμενο βάθος, και το τελικό PDF γράφεται στο `output_path`. + +### Αναμενόμενο αποτέλεσμα + +Μετά την ολοκλήρωση του script, το `output.pdf` περιέχει μια πιστή αναπαράσταση του `large_page.html`. Ανοίξτε το PDF με οποιονδήποτε viewer (Adobe Reader, Chrome κ.λπ.) και ελέγξτε ότι: + +- Οι εικόνες, οι πίνακες και τα βασικά στυλ CSS εμφανίζονται σωστά. +- Δεν υπάρχουν απροσδόκητες κενές σελίδες που προκλήθηκαν από βαθιά επανάληψη πόρων. + +## Διαχείριση ειδικών περιπτώσεων και κοινών παραλλαγών + +| Κατάσταση | Συνιστώμενη προσαρμογή | +|-----------|------------------------| +| **HTML contains external fonts** | Προσθέστε `pdf_options.embed_all_fonts = True` για να εξασφαλίσετε ότι οι γραμματοσειρές ενσωματώνονται στο PDF. | +| **You need a specific page size** | Ορίστε `pdf_options.page_width` και `pdf_options.page_height` (π.χ., A4: `595, 842`). | +| **Large files cause out‑of‑memory errors** | Μειώστε το `resource_options.max_handling_depth` ή χωρίστε το HTML σε μικρότερα τμήματα και μετατρέψτε τα ξεχωριστά. | +| **You want to password‑protect the PDF** | Χρησιμοποιήστε `pdf_options.password = "YourSecret"` πριν καλέσετε το `save`. | + +Αυτές οι προσαρμογές δείχνουν την ευελιξία των **html to pdf options** και δείχνουν πώς μπορείτε να προσαρμόσετε τη μετατροπή στις ακριβείς απαιτήσεις σας. + +## Πλήρες script που μπορείτε να αντιγράψετε‑επικολλήσετε + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Τρέξτε το script: + +```bash +python convert_html_to_pdf.py +``` + +Θα πρέπει να δείτε το μήνυμα επιβεβαίωσης και να βρείτε το `output.pdf` στον καθορισμένο φάκελο. + +## Συχνές ερωτήσεις + +**Q: Λειτουργεί αυτό με απομακρυσμένα URLs αντί για τοπικά αρχεία;** +A: Ναι. Περνάτε το string του URL στο `Viewer` (π.χ., `Viewer("https://example.com/page.html")`). Το viewer θα κατεβάσει τη σελίδα πριν εφαρμόσει τις **html to pdf options**. + +**Q: Μπορώ να μετατρέψω πολλαπλά αρχεία HTML σε batch;** +A: Τυλίξτε τον κώδικα μετατροπής σε βρόχο που επαναλαμβάνει μια λίστα διαδρομών αρχείων. Επαναχρησιμοποιήστε τα ίδια αντικείμενα `resource_options` και `pdf_options` για αποδοτικότητα. + +**Q: Τι γίνεται αν το HTML χρησιμοποιεί JavaScript για να τροποποιήσει το DOM;** +A: Το GroupDocs.Viewer αποδίδει το στατικό HTML· δεν **εκτελεί** JavaScript. Για δυναμικές σελίδες, αποδώστε τη σελίδα σε έναν headless browser (π.χ., Selenium) πρώτα, και στη συνέχεια δώστε το προκύπτον στατικό HTML στον μετατροπέα. + +## Συμπέρασμα + +Τώρα έχετε μια πλήρη, έτοιμη για παραγωγή μέθοδο να **convert HTML to PDF** σε Python. Με τη διαμόρφωση του **resource handling** ελέγχετε πόσο βαθιά θα επεξεργαστούν οι συνδεδεμένοι πόροι, και το `PdfSaveOptions` σας επιτρέπει να **save HTML as PDF** με λεπτομερείς **html to pdf options**. Πειραματιστείτε με τις προαιρετικές ρυθμίσεις—όπως η ενσωμάτωση γραμματοσειρών ή το μέγεθος σελίδας—για να ταιριάζουν ακριβώς στις ανάγκες της εφαρμογής σας. + +--- +*Επόμενα βήματα*: εξερευνήστε το **save HTML document pdf** με προστασία κωδικού, ή ενσωματώστε αυτή τη μετατροπή σε ένα web API χρησιμοποιώντας Flask ή FastAPI για δημιουργία PDF κατόπιν ζήτησης. + +## Τι Θα Πρέπει Να Μάθετε Στη Σειρά; + +Τα παρακάτω tutorials καλύπτουν στενά σχετικό θέματα που βασίζονται στις τεχνικές που παρουσιάζονται σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσουν να κυριαρχήσετε σε πρόσθετα χαρακτηριστικά του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/greek/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..0683df048 --- /dev/null +++ b/html/greek/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,343 @@ +--- +category: general +date: 2026-08-12 +description: Μετατρέψτε HTML σε PDF σε Python με το Aspose HTML Converter. Μάθετε + πώς να δημιουργείτε PDF από HTML και πώς να μετατρέπετε EPUB σε PDF με λίγες μόνο + γραμμές κώδικα. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: el +lastmod: 2026-08-12 +og_description: Μετατρέψτε HTML σε PDF σε Python χρησιμοποιώντας το Aspose HTML Converter. + Αυτό το σεμινάριο δείχνει πώς να δημιουργήσετε PDF από HTML και πώς να μετατρέψετε + EPUB σε PDF με σαφή, εκτελέσιμο κώδικα. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Μετατροπή HTML σε PDF με Python και Aspose HTML Converter – γρήγορος οδηγός +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Μετατροπή HTML σε PDF σε Python χρησιμοποιώντας το Aspose HTML Converter +url: /el/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Μετατροπή HTML σε PDF σε Python χρησιμοποιώντας το Aspose HTML Converter + +Αν χρειάζεστε να **μετατρέψετε HTML σε PDF** γρήγορα, αυτός ο οδηγός σας δείχνει ακριβώς πώς να το κάνετε με τη βιβλιοθήκη Aspose.HTML για Python. Είτε δημιουργείτε μια web‑service που μετατρέπει σελίδες που υποβάλλονται από χρήστες σε εκτυπώσιμα PDF είτε αυτοματοποιείτε τη δημιουργία αναφορών, τα παρακάτω βήματα σας παρέχουν μια πλήρη, έτοιμη προς εκτέλεση λύση. + +Εκτός από HTML, το Aspose.HTML υποστηρίζει επίσης μορφές e‑book, έτσι θα δείτε **πώς να μετατρέψετε αρχεία EPUB** σε PDF χωρίς να φύγετε από την Python. Στο τέλος αυτού του tutorial θα μπορείτε να **δημιουργήσετε PDF από HTML** και να δημιουργήσετε εκδόσεις PDF των e‑book EPUB με λίγες μόνο γραμμές κώδικα. + +## Προαπαιτούμενα + +* Εγκατεστημένη Python 3.8 ή νεότερη. +* Ένα ενεργό άδεια Aspose.HTML για Python (η δωρεάν δοκιμή λειτουργεί για αξιολόγηση). +* `pip` πρόσβαση για την εγκατάσταση του πακέτου `aspose-html`. +* Δείγμα αρχείων HTML ή EPUB που θέλετε να μετατρέψετε. + +```bash +pip install aspose-html +``` + +> **Συμβουλή:** Εγκαταστήστε το πακέτο μέσα σε ένα εικονικό περιβάλλον για να διατηρήσετε τις εξαρτήσεις απομονωμένες. + +## Επισκόπηση της διαδικασίας μετατροπής + +Το Aspose.HTML παρέχει μια μοναδική κλάση `Converter` που αφαιρεί τις λεπτομέρειες της απόδοσης HTML, CSS και περιεχομένου e‑book σε PDF. Η ροή εργασίας είναι: + +1. Εισάγετε την κλάση `Converter`. +2. Καλέστε `Converter.convert(source_path, target_path)`. +3. (Προαιρετικά) Ρυθμίστε τις ρυθμίσεις μετατροπής όπως το μέγεθος σελίδας ή την ενσωμάτωση γραμματοσειρών. + +Η βιβλιοθήκη ανιχνεύει αυτόματα τη μορφή πηγής βάσει της επέκτασης του αρχείου, έτσι η ίδια μέθοδος λειτουργεί τόσο για αρχεία HTML όσο και EPUB. + +--- + +## Μετατροπή HTML σε PDF με το Aspose HTML Converter + +### Βήμα 1: Εισαγωγή του μονάδας μετατροπής Aspose HTML + +Η κλάση `Converter` βρίσκεται στο namespace `aspose.html`. Εισάγετε την στην αρχή του script σας. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Βήμα 2: Προετοιμασία διαδρομών εισόδου και εξόδου + +Χρησιμοποιήστε απόλυτες ή σχετικές διαδρομές που το script σας μπορεί να διαβάσει/γράψει. Είναι καλή πρακτική να ελέγχετε ότι το αρχείο πηγής υπάρχει πριν προσπαθήσετε τη μετατροπή. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Βήμα 3: Εκτέλεση της μετατροπής + +Η κλήση `Converter.convert` εκτελεί όλη τη βαριά δουλειά: αποδίδει το HTML, εφαρμόζει το CSS και γράφει ένα αρχείο PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Γιατί λειτουργεί αυτό + +* **Αυτόματη μηχανή διάταξης** – Το Aspose.HTML χρησιμοποιεί μια μηχανή απόδοσης βασισμένη στο Chromium, εξασφαλίζοντας ότι το σύγχρονο CSS, SVG και JavaScript επεξεργάζονται σωστά. +* **Χωρίς ενδιάμεσα αρχεία** – Η μετατροπή γίνεται στη μνήμη, μειώνοντας το φόρτο I/O και επιταχύνοντας την επεξεργασία σε παρτίδες. + +### Αναμενόμενο αποτέλεσμα + +Μετά την εκτέλεση του script, το `output.pdf` θα περιέχει μια ακριβή αναπαράσταση του `input.html`. Ανοίξτε το με οποιονδήποτε προβολέα PDF για να επαληθεύσετε ότι οι γραμματοσειρές, οι εικόνες και οι αλλαγές σελίδας ταιριάζουν με την αρχική ιστοσελίδα. + +![Διάγραμμα μετατροπής](https://example.com/conversion-diagram.png "Διάγραμμα που δείχνει τη μετατροπή αρχείων HTML και EPUB σε PDF χρησιμοποιώντας το Aspose HTML Converter") + +*(Κείμενο alt εικόνας: Διάγραμμα που δείχνει τη μετατροπή αρχείων HTML και EPUB σε PDF χρησιμοποιώντας το Aspose HTML Converter)* + +--- + +## Δημιουργία PDF από HTML με προσαρμοσμένες ρυθμίσεις + +Μερικές φορές χρειάζεται να ελέγξετε το μέγεθος σελίδας, τα περιθώρια ή να ενσωματώσετε συγκεκριμένες γραμματοσειρές. Το Aspose.HTML εκθέτει μια κλάση `PdfSaveOptions` για αυτό το σκοπό. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Το αντικείμενο `options` είναι προαιρετικό· παραλείψτε το αν είστε ικανοποιημένοι με την προεπιλεγμένη διάταξη.* + +--- + +## Πώς να μετατρέψετε EPUB σε PDF σε Python + +### Βήμα 1: Εντοπισμός της πηγής EPUB + +Όπως και με το HTML, δώστε τη διαδρομή του αρχείου EPUB που θέλετε να μετατρέψετε. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Βήμα 2: Εκτέλεση της μετατροπής + +Η ίδια μέθοδος `Converter.convert` ανιχνεύει την επέκταση `.epub` και μεταβαίνει στην αλυσίδα απόδοσης e‑book. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Περιπτώσεις άκρων που πρέπει να ληφθούν υπόψη + +| Κατάσταση | Συνιστώμενη αντιμετώπιση | +|----------------------------------------|---------------------------| +| Μεγάλο EPUB (εκατοντάδες κεφάλαια) | Μετατροπή σε τμήματα χρησιμοποιώντας `PdfSaveOptions.start_page` και `end_page` για περιορισμό της χρήσης μνήμης. | +| Απουσία γραμματοσειρών στο EPUB | Ορίστε `PdfSaveOptions.embed_standard_fonts = True` για να επιστρέψετε στις προεπιλεγμένες γραμματοσειρές του συστήματος. | +| EPUB με προστασία κωδικού | Χρησιμοποιήστε `PdfLoadOptions` για να παρέχετε τον κωδικό πριν τη μετατροπή (δεν εμφανίζεται εδώ). | + +--- + +## Πλήρες, εκτελέσιμο παράδειγμα + +Παρακάτω υπάρχει ένα ενιαίο script που συνδυάζει όλα τα παραπάνω βήματα. Αποθηκεύστε το ως `convert_demo.py` και τρέξτε το από τη γραμμή εντολών. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Τρέξτε το script: + +```bash +python convert_demo.py +``` + +Θα πρέπει να δείτε τρία μηνύματα επιβεβαίωσης και τρία αρχεία PDF στο `YOUR_DIRECTORY`. + +--- + +## Συνηθισμένα προβλήματα και πώς να τα αποφύγετε + +* **Απουσία άδειας** – Χωρίς έγκυρη άδεια Aspose.HTML, η βιβλιοθήκη προσθέτει υδατογράφημα σε κάθε σελίδα. Καταχωρίστε την άδειά σας νωρίς στο script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Σχετικές διαδρομές σε διαφορετικά λειτουργικά συστήματα** – Χρησιμοποιήστε `os.path.join` και `os.path.abspath` για να δημιουργήσετε διαδρομές ανεξάρτητες από την πλατφόρμα. + +* **Μεγάλο HTML με εξωτερικούς πόρους** – Βεβαιωθείτε ότι όλα τα CSS, οι εικόνες και οι γραμματοσειρές είναι προσβάσιμα από το σύστημα αρχείων ή ενσωματώστε τα χρησιμοποιώντας data URIs. Διαφορετικά το PDF μπορεί να εμφανίσει κενά placeholders. + +* **Ασφάλεια νήματος** – Το `Converter.convert` είναι thread‑safe, αλλά η δημιουργία πολλών converters ταυτόχρονα μπορεί να καταναλώσει σημαντική μνήμη. Επαναχρησιμοποιήστε μια ενιαία παρουσία converter αν επεξεργάζεστε εκατοντάδες αρχεία παράλληλα. + +--- + +## Συμπέρασμα + +Τώρα έχετε μια πλήρη, έτοιμη για παραγωγή προσέγγιση για **μετατροπή HTML σε PDF** και **πώς να μετατρέψετε αρχεία EPUB** σε PDF σε Python χρησιμοποιώντας το **Aspose HTML Converter**. Το tutorial κάλυψε: + +* Εισαγωγή του σωστού module. +* Επικύρωση αρχείων εισόδου. +* Εκτέλεση βασικής μετατροπής. +* Προσαρμογή εξόδου PDF με `PdfSaveOptions`. +* Διαχείριση μεγάλων ή προστατευμένων με κωδικό EPUB. + +Από εδώ μπορείτε να επεκτείνετε τη λύση για επεξεργασία φακέλων σε παρτίδες, να ενσωματώσετε τον κώδικα σε ένα endpoint Flask ή FastAPI, ή να πειραματιστείτε με επιπλέον μορφές εξόδου όπως DOCX ή PNG (το Aspose.HTML υποστηρίζει και αυτές). + +--- + +### Επόμενα βήματα + +* Εξερευνήστε **δημιουργία PDF από HTML** με σελίδες που τρέχουν JavaScript ενεργοποιώντας το `Converter.convert` με συνεδρία headless browser. +* Συνδυάστε αυτή τη ροή εργασίας με το **Aspose.PDF** για εργασίες post‑processing όπως συγχώνευση πολλαπλών PDF ή προσθήκη ψηφιακών υπογραφών. +* Δείτε τις προχωρημένες επιλογές του **aspose-html-converter** όπως `PdfSaveOptions.jpeg_quality` για έγγραφα με πολλές εικόνες. + +Καλό κώδικα, και απολαύστε την αξιοπιστία του Aspose.HTML για όλες τις ανάγκες μετατροπής εγγράφων! + +## Τι Θα Πρέπει Να Μάθετε Στη Σύντομη Μελλοντική; + +Τα παρακάτω tutorials καλύπτουν στενά σχετικές θεματικές που επεκτείνουν τις τεχνικές που παρουσιάζονται σε αυτόν τον οδηγό. Κάθε πόρος περιλαμβάνει πλήρη παραδείγματα κώδικα με βήμα‑βήμα εξηγήσεις για να σας βοηθήσουν να κατακτήσετε πρόσθετες δυνατότητες του API και να εξερευνήσετε εναλλακτικές προσεγγίσεις υλοποίησης στα δικά σας έργα. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/greek/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..7ce6756c6 --- /dev/null +++ b/html/greek/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Φορτώστε HTML από αρχείο στην Python γρήγορα. Μάθετε πώς να διαβάζετε + αρχείο HTML χρησιμοποιώντας Python, να φορτώνετε HTML από URL και να δημιουργείτε + htmldocument από συμβολοσειρά σε ένα ενιαίο σεμινάριο. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: el +lastmod: 2026-08-12 +og_description: Φορτώστε HTML από αρχείο στην Python χρησιμοποιώντας την κλάση HTMLDocument. + Ακολουθήστε αυτόν τον οδηγό για να διαβάσετε αρχείο HTML με Python, να φορτώσετε + HTML από URL και να δημιουργήσετε HTMLDocument από συμβολοσειρά για αξιόπιστη διαχείριση + περιεχομένου ιστού. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Φόρτωση html από αρχείο σε Python – γρήγορος οδηγός προγραμματισμού +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Φόρτωση html από αρχείο σε Python – οδηγός βήμα‑προς‑βήμα +url: /el/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Φόρτωση html από αρχείο σε Python – βήμα‑βήμα οδηγός + +Αν χρειάζεστε να **φορτώσετε html από αρχείο σε Python**, αυτός ο οδηγός σας δείχνει ακριβώς πώς. Θα μάθετε επίσης πώς να **διαβάσετε html αρχείο χρησιμοποιώντας python**, να φορτώσετε html από url, και **να δημιουργήσετε htmldocument από string** ώστε να μπορείτε να διαχειριστείτε οποιαδήποτε πηγή περιεχομένου HTML. + +Τα παραδείγματα χρησιμοποιούν την κλάση `HTMLDocument` από το πακέτο `html_document`, το οποίο παρέχει ένα ενοποιημένο API για τοπικά αρχεία, απομακρυσμένα URLs και ακατέργαστες συμβολοσειρές HTML. Η προσέγγιση λειτουργεί με Python 3.8+ και ενσωματώνεται ομαλά με τις τυπικές βιβλιοθήκες όπως `pathlib` και `requests`. + +![Στιγμιότυπο κώδικα Φόρτωση html από αρχείο σε Python](image.png) + +## Φόρτωση html από αρχείο σε Python – βασικό παράδειγμα + +Η φόρτωση ενός αρχείου HTML από το τοπικό σύστημα αρχείων είναι το πιο κοινό πρώτο βήμα κατά την επεξεργασία στατικών σελίδων. Ο κατασκευαστής `HTMLDocument` δέχεται μια διαδρομή αρχείου, ανιχνεύει αυτόματα την κωδικοποίηση του αρχείου και αναλύει τη σήμανση. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Γιατί αυτό λειτουργεί:** +* Το `Path` αφαιρεί τις εξειδικευμένες διαχωριστικές διαδρομές του λειτουργικού συστήματος, καθιστώντας τον κώδικα φορητό μεταξύ Windows, macOS και Linux. +* Το `HTMLDocument` διαβάζει το αρχείο σε δυαδική λειτουργία, ανιχνεύει UTF‑8 ή UTF‑16 BOM, και επιστρέφει στην προεπιλεγμένη κωδικοποίηση του συστήματος όταν είναι απαραίτητο. + +**Αναμενόμενη έξοδος (υπόθεση ότι το HTML περιέχει `Example`):** + +``` +Title: Example +``` + +### Συνηθισμένα προβλήματα κατά τη φόρτωση ενός αρχείου + +* **FileNotFoundError** – Βεβαιωθείτε ότι η διαδρομή είναι σωστή και το αρχείο υπάρχει. Χρησιμοποιήστε `file_path.is_file()` για προ‑έλεγχο. +* **Σφάλματα κωδικοποίησης** – Εάν η σελίδα χρησιμοποιεί charset διαφορετικό από UTF‑8, περάστε `encoding="iso-8859-1"` στον κατασκευαστή: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Ανάγνωση html αρχείου χρησιμοποιώντας python – λεπτομερής εξήγηση + +Η φράση **read html file using python** εμφανίζεται συχνά όταν οι προγραμματιστές χρειάζονται να εξάγουν δεδομένα από αποθηκευμένες ιστοσελίδες. Ενώ το `HTMLDocument` αφαιρεί το μεγαλύτερο μέρος της εργασίας, μπορείτε επίσης να φορτώσετε ακατέργαστο κείμενο και να το περάσετε στον αναλυτή χειροκίνητα. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Γιατί μπορεί να επιλέξετε αυτή τη διαδρομή:** +* Χρειάζεστε προεπεξεργασία του HTML (π.χ., αφαίρεση scripts) πριν την ανάλυση. +* Θέλετε να αποθηκεύσετε στην cache τη ακατέργαστη σήμανση για μελλοντική χρήση χωρίς επαναδιάβασμα του αρχείου. + +## Φόρτωση html από url – λήψη απομακρυσμένων σελίδων + +Η φόρτωση HTML απευθείας από μια διεύθυνση ιστού επεκτείνει τη ροή εργασίας σε ζωντανό περιεχόμενο. Το βήμα **load html from url** βασίζεται στη βιβλιοθήκη `requests` για διαχείριση HTTP και στη συνέχεια περνά το κείμενο της απόκρισης στο `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Γιατί αυτό λειτουργεί:** +* Το `requests.get` ακολουθεί ανακατευθύνσεις και διαχειρίζεται HTTPS αυτόματα. +* Το `response.raise_for_status()` εγγυάται ότι μόνο επιτυχείς αποκρίσεις αναλύονται, αποτρέποντας σιωπηλές αποτυχίες. + +**Ακραίες περιπτώσεις:** +* **Αργό δίκτυο** – Ρυθμίστε την παράμετρο `timeout` ή χρησιμοποιήστε `requests.Session` για ομαδοποίηση συνδέσεων. +* **Μη‑HTML περιεχόμενο** – Επαληθεύστε την κεφαλίδα `Content-Type` (`response.headers["Content-Type"]`) πριν την ανάλυση. + +## Δημιουργία htmldocument από string – εργασία με ακατέργαστο HTML + +Μερικές φορές δημιουργείτε HTML δυναμικά (π.χ., από μηχανή προτύπων) και χρειάζεται να το αντιμετωπίσετε ως έγγραφο χωρίς να το γράψετε στο δίσκο. Η λειτουργία **create htmldocument from string** είναι απλή. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Γιατί αυτό είναι χρήσιμο:** +* Απομακρύνει την ανάγκη για προσωρινά αρχεία, βελτιώνοντας την απόδοση σε περιβάλλοντα serverless. +* Σας επιτρέπει να επικυρώσετε τη δημιουργημένη σήμανση πριν την αποστείλετε σε πελάτη ή την αποθηκεύσετε. + +**Συμβουλές για διαχείριση συμβολοσειρών:** +* Χρησιμοποιήστε τριπλά εισαγωγικά strings για να διατηρήσετε τη σήμανση αναγνώσιμη. +* Εάν το HTML περιλαμβάνει χαρακτήρες Unicode, βεβαιωθείτε ότι το αρχείο πηγής είναι αποθηκευμένο με κωδικοποίηση UTF‑8. + +## Πλήρες παράδειγμα end‑to‑end + +Η συνένωση των τεσσάρων στρατηγικών φόρτωσης δείχνει μια ευέλικτη αλυσίδα που μπορεί να εναλλάσσεται μεταξύ τοπικών, απομακρυσμένων και μνήμης πηγών. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Τι επιδεικνύει αυτός ο κώδικας:** + +* Μία μόνο κλάση `HTMLDocument` διαχειρίζεται όλους τους τύπους εισόδου, μειώνοντας την έκταση του API. +* Οι βοηθητικές συναρτήσεις ενσωματώνουν τη διαχείριση σφαλμάτων και κάνουν τον κώδικα κλήσης σύντομο. +* Το πρότυπο κλιμακώνεται σε επεξεργασία παρτίδας: επαναλάβετε πάνω σε λίστα διαδρομών αρχείων ή URLs και περάστε κάθε έγγραφο σε scraper ή transformer. + +## Συμπέρασμα + +You now know how to **load html from file in Python** using the `HTMLDocument` class, how to **read html file using + +## Τι Πρέπει Να Μάθετε Στη Σειρά; + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/hindi/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..cb16292c2 --- /dev/null +++ b/html/hindi/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-08-12 +description: Python का उपयोग करके HTML को Markdown में बदलें। वेब पेज को Markdown + में परिवर्तित करने और दस्तावेज़ीकरण को स्वचालित करने के लिए कमांड‑लाइन वर्कफ़्लो + सीखें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: hi +lastmod: 2026-08-12 +og_description: Python का उपयोग करके HTML को Markdown में बदलें। यह ट्यूटोरियल आपको + कमांड‑लाइन समाधान दिखाता है जिससे आप वेब पेज को जल्दी और भरोसेमंद तरीके से Markdown + में बदल सकते हैं। +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Python के साथ HTML को Markdown में बदलें – चरण-दर-चरण गाइड +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Python के साथ HTML को Markdown में बदलें – पूर्ण प्रोग्रामिंग गाइड +url: /hi/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML को Markdown में Python के साथ बदलें – पूर्ण प्रोग्रामिंग गाइड + +यदि आपको **HTML को Markdown में बदलना** है, तो यह गाइड आपको एक तैयार‑से‑चलाने वाला समाधान दिखाता है। आप देखेंगे कि एक छोटा Python स्क्रिप्ट किसी भी HTML फ़ाइल को साफ़, Git‑flavored Markdown में कैसे बदलता है, और आप कमांड लाइन से उसी लॉजिक को कैसे बुला सकते हैं। + +वेब पेजों को Markdown में बदलना स्थैतिक दस्तावेज़ीकरण साइटें बनाने या संस्करण‑नियंत्रित रिपॉज़िटरीज़ के लिए सामग्री तैयार करने के समय एक सामान्य कदम है। इस ट्यूटोरियल के अंत तक आपके पास एक पुन: उपयोग योग्य कमांड‑लाइन टूल होगा जो HTML एन्कोडिंग को संभालता है, लिंक को संरक्षित रखता है, और Git‑flavored Markdown नियमों का सम्मान करता है। + +## आवश्यकताएँ + +* Python 3.9 या उससे नया आपके सिस्टम पर स्थापित हो। +* `groupdocs-conversion` Python पैकेज (या कोई भी लाइब्रेरी जो `HTMLDocument`, `MarkdownSaveOptions`, और `Converter` प्रदान करती हो)। इसे इस प्रकार स्थापित करें: + +```bash +pip install groupdocs-conversion +``` + +* एक फ़ोल्डर जिसमें वह स्रोत `input.html` फ़ाइल हो जिसे आप प्रोसेस करना चाहते हैं। + +निम्नलिखित सेक्शन प्रत्येक चरण को विस्तार से दिखाते हैं, यह बताते हैं कि यह क्यों महत्वपूर्ण है, और आपको ठीक‑ठीक वह कोड देते हैं जिसकी आपको आवश्यकता है। + +## चरण 1: पर्यावरण सेट अप करें + +एक अलग वर्चुअल एनवायरनमेंट बनाना डिपेंडेंसी टकराव को रोकता है और कमांड‑लाइन टूल को पोर्टेबल बनाता है। + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*इस चरण का कारण?* +एक वर्चुअल एनवायरनमेंट `groupdocs-conversion` पैकेज को अन्य प्रोजेक्ट्स से अलग करता है, जिससे `convert html to markdown command line` यूटिलिटी वही सटीक संस्करणों के साथ चलती है जिन्हें आपने परीक्षण किया था। + +## चरण 2: रूपांतरण स्क्रिप्ट लिखें + +`html_to_md.py` नाम की फ़ाइल बनाएं और नीचे दिया गया कोड पेस्ट करें। स्क्रिप्ट तीन आर्ग्यूमेंट लेती है: इनपुट HTML पाथ, आउटपुट Markdown पाथ, और एक वैकल्पिक फ़्लैग जो Git‑flavored फ़ॉर्मेटर चुनता है। + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### स्क्रिप्ट की व्याख्या + +| सेक्शन | उद्देश्य | +|---------|---------| +| **Argument parsing** | **convert html to markdown command line** उपयोग पैटर्न को सक्षम करता है। | +| **HTMLDocument** | स्रोत फ़ाइल को लोड करता है; लाइब्रेरी कैरेक्टर एन्कोडिंग और DOM पार्सिंग को एब्स्ट्रैक्ट करती है। | +| **MarkdownSaveOptions** | आपको साधारण और Git‑flavored Markdown (`--git` फ़्लैग) के बीच स्विच करने देता है। | +| **Converter.convert_html** | मुख्य कार्य करता है – यह HTML ट्री को ट्रैवर्स करता है, टैग्स को ट्रांसलेट करता है, और आउटपुट फ़ाइल लिखता है। | +| **Error handling** | एक स्पष्ट सफलता/विफलता संदेश प्रदान करता है, जो CI पाइपलाइन्स के लिए आवश्यक है। | + +## चरण 3: कमांड लाइन से रूपांतरण चलाएँ + +स्क्रिप्ट सहेजने के बाद, आप किसी भी HTML फ़ाइल को एक ही कमांड से बदल सकते हैं: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**अपेक्षित आउटपुट** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +`output.md` को एक टेक्स्ट एडिटर में खोलें; आपको हेडिंग्स, लिस्ट्स और लिंक साफ़ Markdown सिंटैक्स में दिखेंगे। क्योंकि हमने Git फ़ॉर्मेटर का उपयोग किया है, टेबल्स पाइप (`|`) डिलिमिटर के साथ प्रदर्शित होते हैं, और टास्क लिस्ट्स `- [ ]` सिंटैक्स का उपयोग करती हैं, जिसे GitHub और GitLab मूल रूप से रेंडर करते हैं। + +## चरण 4: टूल को ऑटोमेशन पाइपलाइन्स में एकीकृत करें + +यदि आप रिपॉज़िटरी में दस्तावेज़ीकरण बनाए रखते हैं, तो आप रूपांतरण चरण को CI वर्कफ़्लो में जोड़ सकते हैं। नीचे एक GitHub Actions जॉब का उदाहरण है जो हर पुश पर चलता है: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*इसका महत्व* – **convert web page to markdown** चरण को स्वचालित करने से आपका दस्तावेज़ स्रोत HTML फ़ाइलों के साथ सिंक में रहता है बिना मैन्युअल प्रयास के। + +## किनारे के मामले और सर्वोत्तम‑प्रैक्टिस टिप्स + +* **Encoding problems** – यदि आपका HTML non‑UTF‑8 कैरेक्टर्स रखता है, तो `HTMLDocument` बनाते समय स्पष्ट एन्कोडिंग पास करें (उदाहरण: `HTMLDocument(input_path, encoding='utf-8')`)। +* **Large files** – 50 MB से बड़ी HTML फ़ाइलों के लिए मेमोरी स्पाइक्स से बचने हेतु स्ट्रीमिंग रूपांतरण पर विचार करें। लाइब्रेरी इस परिदृश्य के लिए `convert_html_stream` मेथड प्रदान करती है। +* **Custom CSS handling** – डिफ़ॉल्ट रूप से कन्वर्टर स्टाइल एट्रिब्यूट्स को हटा देता है। यदि आपको विशिष्ट फ़ॉर्मेटिंग संरक्षित रखनी है, तो `md_opts.preserveFormatting = True` सक्षम करें। +* **Command‑line shortcut** – एक छोटा रैपर स्क्रिप्ट (`html2md`) बनाएं जो आर्ग्यूमेंट्स को `html_to_md.py` को फॉरवर्ड करता है। इसे `$HOME/.local/bin` में रखें और अपने `PATH` में जोड़ें ताकि **convert html to markdown command line** अनुभव और भी छोटा हो सके। + +## अक्सर पूछे जाने वाले प्रश्न + +**क्या यह Windows, macOS, और Linux पर काम करता है?** +हाँ। स्क्रिप्ट केवल क्रॉस‑प्लेटफ़ॉर्म `groupdocs-conversion` पैकेज और मानक Python लाइब्रेरीज़ पर निर्भर करती है, इसलिए यह सभी तीन OS पर बिना बदलाव के चलती है। + +**क्या मैं सीधे रिमोट वेब पेज को बदल सकता हूँ?** +आप `requests` से पेज फ़ेच कर सकते हैं और HTML स्ट्रिंग को `HTMLDocument` को दे सकते हैं: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**यदि मुझे केवल HTML → GitHub‑flavored Markdown चाहिए तो?** +सिर्फ `--git` फ़्लैग हमेशा पास करें; फ़ॉर्मेटर ऐसा आउटपुट देता है जो GitHub, GitLab, और Bitbucket के साथ संगत है। + +## निष्कर्ष + +अब आपके पास एक मजबूत **convert HTML to Markdown** समाधान है जो Python स्क्रिप्ट और कमांड लाइन दोनों से काम करता है। ट्यूटोरियल ने पर्यावरण सेटअप, पूर्ण स्रोत कोड, कमांड‑लाइन उपयोग, CI इंटीग्रेशन, और व्यावहारिक किनारे‑के‑मामले को कवर किया। + +अगला, आप **convert markdown to HTML** का अन्वेषण कर सकते हैं, उन्नत रूपांतरण विकल्पों के लिए Pandoc के साथ प्रयोग कर सकते हैं, या फ्रंट‑मेटर जनरेटर जोड़ सकते हैं ताकि मेटाडेटा सीधे Markdown फ़ाइलों में एम्बेड हो सके। इन सभी एक्सटेंशन का आधार वही कोर कॉन्सेप्ट्स हैं जो आपने अभी मास्टर किए हैं। + +परिवर्तन की शुभकामनाएँ! + +## आपको आगे क्या सीखना चाहिए? + +निम्नलिखित ट्यूटोरियल्स उन विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जो आपको अतिरिक्त API फीचर्स में महारत हासिल करने और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन एप्रोचेज़ को एक्सप्लोर करने में मदद करेंगे। + +- [Convert HTML to Markdown in Aspose.HTML for Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Convert HTML to Markdown in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/hindi/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..b251624e1 --- /dev/null +++ b/html/hindi/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: GroupDocs.Viewer का उपयोग करके Python में HTML को PDF में बदलें। सटीक + नियंत्रण के लिए लचीले HTML‑से‑PDF विकल्पों के साथ HTML को PDF के रूप में सहेजना + सीखें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: hi +lastmod: 2026-08-12 +og_description: GroupDocs.Viewer के साथ HTML को PDF में बदलें। यह गाइड आपको दिखाता + है कि HTML को PDF के रूप में कैसे सहेजें, HTML‑से‑PDF विकल्पों को कैसे कॉन्फ़िगर + करें, और बड़े दस्तावेज़ों को विश्वसनीय रूप से कैसे संभालें। +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTML को PDF में बदलें – चरण-दर-चरण Python ट्यूटोरियल +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Python में HTML को PDF में बदलें – पूर्ण प्रोग्रामिंग गाइड +url: /hi/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python में HTML को PDF में बदलें – पूर्ण प्रोग्रामिंग गाइड + +यदि आपको Python प्रोजेक्ट में **HTML को PDF में बदलना** है, तो यह गाइड आपको तैयार‑से‑चलाने वाला समाधान दिखाता है। हम व्यूअर लाइब्रेरी को इंस्टॉल करने, **html to pdf options** को कॉन्फ़िगर करने, और अंत में केवल कुछ लाइनों के कोड से **HTML को PDF के रूप में सहेजना** दिखाएंगे। + +HTML दस्तावेज़ों को बदलते समय अक्सर इमेज, CSS, या JavaScript जैसी लिंक्ड रिसोर्सेज़ को संभालना पड़ता है। इस ट्यूटोरियल के अंत तक आप समझेंगे कि रिसोर्स नेस्टिंग को कैसे सीमित करें, मेमोरी स्पाइक से बचें, और मूल पेज लेआउट से मेल खाने वाली साफ़ PDF फ़ाइल कैसे बनाएं। + +## आवश्यकताएँ + +- Python 3.8 या उससे नया +- `pip` (Python पैकेज इंस्टॉलर) +- वह HTML फ़ाइल जिसका आप रूपांतरण करना चाहते हैं, तक पहुँच (उदाहरण के लिए `large_page.html`) + +कोई अतिरिक्त सिस्टम लाइब्रेरी आवश्यक नहीं है क्योंकि GroupDocs.Viewer सभी आवश्यक रेंडरिंग इंजन को बंडल करता है। + +## चरण 1: Python के लिए GroupDocs.Viewer स्थापित करें + +GroupDocs.Viewer कई फ़ॉर्मैट्स, जिसमें HTML भी शामिल है, से PDF में उच्च‑गुणवत्ता वाला रूपांतरण प्रदान करता है। इसे इस तरह स्थापित करें: + +```bash +pip install groupdocs-viewer +``` + +> **प्रो टिप:** निर्भरताओं को अन्य प्रोजेक्ट्स से अलग रखने के लिए एक वर्चुअल एनवायरनमेंट (`python -m venv .venv`) का उपयोग करें। + +## चरण 2: **html to pdf options** कॉन्फ़िगर करें – रिसोर्स नेस्टिंग गहराई सीमित करें + +बड़ी HTML पेजों में गहराई से नेस्टेड रिसोर्सेज़ (iframes, CSS इम्पोर्ट आदि) हो सकते हैं। अधिकतम हैंडलिंग डेप्थ सेट करने से कनवर्टर अनिश्चितकाल तक रिकर्सन नहीं करता और मेमोरी उपयोग पूर्वानुमानित रहता है। + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth` प्रॉपर्टी व्यूअर को बताती है कि वह लिंक्ड रिसोर्सेज़ के कितने स्तरों तक जाए। अधिकांश वेब पेजों के लिए `3` की गहराई अच्छी रहती है, जबकि आवश्यक इमेज और स्टाइल्स को संरक्षित रखती है। + +## चरण 3: वह HTML दस्तावेज़ लोड करें जिसे आप **HTML को PDF में बदलना** चाहते हैं + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` फ़ाइल फ़ॉर्मैट डिटेक्शन को एब्स्ट्रैक्ट करता है, इसलिए आपको मैन्युअली `HtmlDocument` इंस्टैंशिएट करने की ज़रूरत नहीं है। यह चरण वह आंतरिक प्रतिनिधित्व तैयार करता है जिसके साथ कनवर्टर काम करेगा। + +## चरण 4: कॉन्फ़िगर किए गए **html to pdf options** का उपयोग करके **HTML को PDF के रूप में सहेजें** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions` ऑब्जेक्ट सभी PDF‑विशिष्ट सेटिंग्स को बंडल करता है, जिसमें हमने पहले परिभाषित `resource_handling_options` भी शामिल है। जब `viewer.save` चलता है, तो HTML पेज रेंडर होता है, रिसोर्सेज़ को अनुमत गहराई तक प्रोसेस किया जाता है, और अंतिम PDF `output_path` पर लिखा जाता है। + +### अपेक्षित परिणाम + +स्क्रिप्ट समाप्त होने के बाद, `output.pdf` में `large_page.html` का सटीक प्रतिनिधित्व होता है। किसी भी व्यूअर (Adobe Reader, Chrome, आदि) से PDF खोलें और सत्यापित करें कि: + +- इमेज, टेबल, और बेसिक CSS स्टाइल्स सही ढंग से दिखें। +- गहरी रिसोर्स रिकर्सन के कारण कोई अनपेक्षित खाली पेज न हो। + +## किनारे के मामलों और सामान्य विविधताओं को संभालना + +| Situation | Recommended tweak | +|-----------|-------------------| +| **HTML में बाहरी फ़ॉन्ट्स हैं** | फ़ॉन्ट्स को PDF में एम्बेड करने के लिए `pdf_options.embed_all_fonts = True` जोड़ें। | +| **आपको एक विशिष्ट पेज आकार चाहिए** | `pdf_options.page_width` और `pdf_options.page_height` सेट करें (उदाहरण के लिए A4: `595, 842`)। | +| **बड़ी फ़ाइलें मेमोरी‑अधिकता त्रुटियों का कारण बनती हैं** | `resource_options.max_handling_depth` को घटाएँ या HTML को छोटे हिस्सों में विभाजित करके प्रत्येक को अलग‑अलग कनवर्ट करें। | +| **आप PDF को पासवर्ड‑प्रोटेक्ट करना चाहते हैं** | `save` कॉल करने से पहले `pdf_options.password = "YourSecret"` उपयोग करें। | + +ये समायोजन **html to pdf options** की लचीलापन को दर्शाते हैं और दिखाते हैं कि आप रूपांतरण को अपनी सटीक आवश्यकताओं के अनुसार कैसे अनुकूलित कर सकते हैं। + +## पूर्ण स्क्रिप्ट जिसे आप कॉपी‑पेस्ट कर सकते हैं + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +स्क्रिप्ट चलाएँ: + +```bash +python convert_html_to_pdf.py +``` + +आपको पुष्टि संदेश दिखना चाहिए और निर्दिष्ट डायरेक्टरी में `output.pdf` मिलना चाहिए। + +## अक्सर पूछे जाने वाले प्रश्न + +**Q: क्या यह स्थानीय फ़ाइलों के बजाय रिमोट URLs के साथ काम करता है?** +A: हाँ। URL स्ट्रिंग को `Viewer` को पास करें (उदाहरण के लिए `Viewer("https://example.com/page.html")`)। व्यूअर पेज को डाउनलोड करेगा और फिर **html to pdf options** लागू करेगा। + +**Q: क्या मैं एक बैच में कई HTML फ़ाइलें कनवर्ट कर सकता हूँ?** +A: कनवर्ज़न कोड को एक लूप में रखें जो फ़ाइल पाथ की सूची पर इटररेट करे। दक्षता के लिए वही `resource_options` और `pdf_options` ऑब्जेक्ट्स पुनः उपयोग करें। + +**Q: यदि HTML DOM को संशोधित करने के लिए JavaScript का उपयोग करता है तो क्या होगा?** +A: GroupDocs.Viewer स्थैतिक HTML को रेंडर करता है; यह JavaScript **नहीं** चलाता। डायनामिक पेजों के लिए, पहले पेज को हेडलेस ब्राउज़र (जैसे Selenium) में रेंडर करें, फिर प्राप्त स्थैतिक HTML को कनवर्टर को दें। + +## निष्कर्ष + +अब आपके पास Python में **HTML को PDF में बदलने** के लिए एक पूर्ण, प्रोडक्शन‑रेडी विधि है। **resource handling** को कॉन्फ़िगर करके आप नियंत्रित करते हैं कि लिंक्ड रिसोर्सेज़ कितनी गहराई तक प्रोसेस हों, और `PdfSaveOptions` आपको **HTML को PDF के रूप में सहेजने** की अनुमति देता है, साथ ही सूक्ष्म **html to pdf options** प्रदान करता है। वैकल्पिक सेटिंग्स—जैसे फ़ॉन्ट एम्बेडिंग या पेज साइजिंग—के साथ प्रयोग करें ताकि आपके एप्लिकेशन की सटीक जरूरतों को पूरा किया जा सके। + +--- + +*अगले कदम*: पासवर्ड प्रोटेक्शन के साथ **save HTML document pdf** का अन्वेषण करें, या इस रूपांतरण को Flask या FastAPI का उपयोग करके वेब API में एकीकृत करें ताकि ऑन‑डिमांड PDF जेनरेशन हो सके। + +## अब आप आगे क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन निकट संबंधित विषयों को कवर करते हैं जो इस गाइड में प्रदर्शित तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जो आपको अतिरिक्त API फीचर्स में निपुण बनने और अपने प्रोजेक्ट्स में वैकल्पिक कार्यान्वयन तरीकों का अन्वेषण करने में मदद करेंगे। + +- [HTML को PDF में बदलने का तरीका Java – Aspose.HTML for Java का उपयोग करके](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [HTML को PDF में बदलने का तरीका Java – Aspose.HTML में पर्यावरण कॉन्फ़िगर करना](/html/english/java/configuring-environment/) +- [HTML को PDF में बदलने का तरीका – Aspose.HTML for Java में वेब अनुरोध निष्पादन](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/hindi/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..e74a4c52a --- /dev/null +++ b/html/hindi/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,343 @@ +--- +category: general +date: 2026-08-12 +description: Aspose HTML Converter के साथ Python में HTML को PDF में बदलें। सीखें + कि कैसे HTML से PDF उत्पन्न करें और केवल कुछ कोड लाइनों में EPUB को PDF में परिवर्तित + करें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: hi +lastmod: 2026-08-12 +og_description: Aspose HTML Converter का उपयोग करके Python में HTML को PDF में बदलें। + यह ट्यूटोरियल दिखाता है कि HTML से PDF कैसे जनरेट करें और स्पष्ट, चलाने योग्य कोड + के साथ EPUB को PDF में कैसे बदलें। +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Aspose HTML कनवर्टर के साथ Python में HTML को PDF में बदलें – त्वरित गाइड +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Aspose HTML कन्वर्टर का उपयोग करके Python में HTML को PDF में बदलें +url: /hi/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python में Aspose HTML Converter का उपयोग करके HTML को PDF में बदलें + +यदि आपको **HTML को PDF में जल्दी बदलना** है, तो यह गाइड आपको Aspose.HTML Python लाइब्रेरी के साथ इसे कैसे करना है, ठीक-ठीक दिखाता है। चाहे आप एक वेब‑सेवा बना रहे हों जो उपयोगकर्ता‑द्वारा जमा किए गए पृष्ठों को प्रिंटेबल PDF में बदलती हो या रिपोर्ट जनरेशन को स्वचालित कर रहे हों, नीचे दिए गए चरण आपको एक पूर्ण, तुरंत चलाने योग्य समाधान प्रदान करते हैं। + +HTML के अलावा, Aspose.HTML ई‑बुक फ़ॉर्मेट भी संभालता है, इसलिए आप देखेंगे **कैसे EPUB** फ़ाइलों को Python से बाहर निकले बिना PDF में बदलें। इस ट्यूटोरियल के अंत तक आप **HTML से PDF उत्पन्न** कर सकेंगे और कुछ ही कोड लाइनों में EPUB ईबुक के PDF संस्करण बना सकेंगे। + +## आवश्यकताएँ + +* Python 3.8 या उससे नया स्थापित हो। +* Aspose.HTML for Python का सक्रिय लाइसेंस (मुफ़्त ट्रायल मूल्यांकन के लिए काम करता है)। +* `pip` की पहुँच ताकि `aspose-html` पैकेज स्थापित किया जा सके। +* नमूना HTML या EPUB फ़ाइलें जिन्हें आप बदलना चाहते हैं। + +```bash +pip install aspose-html +``` + +> **Pro tip:** निर्भरताओं को अलग रखने के लिए पैकेज को एक वर्चुअल एनवायरनमेंट के अंदर स्थापित करें। + +## रूपांतरण प्रक्रिया का अवलोकन + +Aspose.HTML एक एकल `Converter` क्लास प्रदान करता है जो HTML, CSS, और e‑book सामग्री को PDF में रेंडर करने के विवरण को सारांशित करता है। कार्यप्रवाह इस प्रकार है: + +1. `Converter` क्लास को इम्पोर्ट करें। +2. `Converter.convert(source_path, target_path)` को कॉल करें। +3. (वैकल्पिक) पेज आकार या फ़ॉन्ट एम्बेडिंग जैसे रूपांतरण सेटिंग्स को समायोजित करें। + +लाइब्रेरी फ़ाइल एक्सटेंशन के आधार पर स्रोत फ़ॉर्मेट को स्वचालित रूप से पहचान लेती है, इसलिए वही मेथड HTML और EPUB दोनों फ़ाइलों के लिए काम करता है। + +--- + +## Aspose HTML Converter के साथ HTML को PDF में बदलें + +### चरण 1: Aspose HTML रूपांतरण मॉड्यूल को इम्पोर्ट करें + +`Converter` क्लास `aspose.html` नेमस्पेस में स्थित है। इसे अपने स्क्रिप्ट के शीर्ष पर इम्पोर्ट करें। + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### चरण 2: इनपुट और आउटपुट पाथ तैयार करें + +ऐसे एब्सोल्यूट या रिलेटिव पाथ का उपयोग करें जिन्हें आपका स्क्रिप्ट पढ़/लिख सके। रूपांतरण करने से पहले यह सत्यापित करना अच्छा अभ्यास है कि स्रोत फ़ाइल मौजूद है। + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### चरण 3: रूपांतरण निष्पादित करें + +`Converter.convert` को कॉल करने से सभी भारी कार्य हो जाते हैं: HTML को रेंडर करना, CSS लागू करना, और PDF फ़ाइल लिखना। + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### यह क्यों काम करता है + +* **Automatic layout engine** – Aspose.HTML एक Chromium‑आधारित रेंडरिंग इंजन का उपयोग करता है, जिससे आधुनिक CSS, SVG, और JavaScript सही ढंग से संभाले जाते हैं। +* **No intermediate files** – रूपांतरण मेमोरी में होता है, जिससे I/O ओवरहेड कम होता है और बैच प्रोसेसिंग तेज़ होती है। + +### अपेक्षित आउटपुट + +स्क्रिप्ट चलाने के बाद, `output.pdf` में `input.html` का सटीक प्रतिनिधित्व होगा। किसी भी PDF व्यूअर से इसे खोलें और सत्यापित करें कि फ़ॉन्ट, इमेज, और पेज ब्रेक मूल वेब पेज से मेल खाते हैं। + +![रूपांतरण आरेख](https://example.com/conversion-diagram.png "Aspose HTML Converter का उपयोग करके HTML और EPUB फ़ाइलों को PDF में बदलने का आरेख") + +*(छवि वैकल्पिक पाठ: Aspose HTML Converter का उपयोग करके HTML और EPUB फ़ाइलों को PDF में बदलने का आरेख)* + +--- + +## कस्टम सेटिंग्स के साथ HTML से PDF उत्पन्न करें + +कभी-कभी आपको पेज आकार, मार्जिन, या विशिष्ट फ़ॉन्ट एम्बेड करने की आवश्यकता होती है। इस उद्देश्य के लिए Aspose.HTML एक `PdfSaveOptions` क्लास प्रदान करता है। + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*`options` ऑब्जेक्ट वैकल्पिक है; यदि आप डिफ़ॉल्ट लेआउट से संतुष्ट हैं तो इसे छोड़ दें।* + +--- + +## Python में EPUB को PDF में कैसे बदलें + +### चरण 1: EPUB स्रोत का पता लगाएँ + +HTML की तरह, उस EPUB फ़ाइल का पाथ दें जिसे आप बदलना चाहते हैं। + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### चरण 2: रूपांतरण चलाएँ + +वही `Converter.convert` मेथड `.epub` एक्सटेंशन को पहचानता है और e‑book रेंडरिंग पाइपलाइन पर स्विच करता है। + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### विचार करने योग्य किनारे के मामले + +| स्थिति | सिफ़ारिशित समाधान | +|----------------------------------------|----------------------| +| बड़ा EPUB (सैकड़ों अध्याय) | मेमोरी उपयोग को सीमित करने के लिए `PdfSaveOptions.start_page` और `end_page` का उपयोग करके हिस्सों में बदलें। | +| EPUB में फ़ॉन्ट गायब हैं | `PdfSaveOptions.embed_standard_fonts = True` सेट करें ताकि सिस्टम फ़ॉन्ट पर वापस जाएँ। | +| पासवर्ड‑सुरक्षित EPUB | रूपांतरण से पहले पासवर्ड प्रदान करने के लिए `PdfLoadOptions` का उपयोग करें (यहाँ नहीं दिखाया गया)। | + +--- + +## पूर्ण, चलाने योग्य उदाहरण + +नीचे एक एकल स्क्रिप्ट है जो ऊपर के सभी चरणों को मिलाती है। इसे `convert_demo.py` के रूप में सहेजें और कमांड लाइन से चलाएँ। + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +स्क्रिप्ट चलाएँ: + +```bash +python convert_demo.py +``` + +आपको `YOUR_DIRECTORY` में तीन पुष्टि संदेश और तीन PDF फ़ाइलें दिखनी चाहिए। + +--- + +## सामान्य जाल और उन्हें कैसे टालें + +* **Missing license** – बिना वैध Aspose.HTML लाइसेंस के, लाइब्रेरी हर पेज पर वॉटरमार्क जोड़ देती है। स्क्रिप्ट में जल्दी लाइसेंस रजिस्टर करें: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relative paths on different OSes** – विभिन्न OS पर रिलेटिव पाथ के लिए `os.path.join` और `os.path.abspath` का उपयोग करके प्लेटफ़ॉर्म‑स्वतंत्र पाथ बनाएं। + +* **Large HTML with external resources** – सुनिश्चित करें कि सभी CSS, इमेज, और फ़ॉन्ट फ़ाइल सिस्टम से पहुँच योग्य हों या उन्हें डेटा URI के माध्यम से एम्बेड करें। अन्यथा PDF में खाली प्लेसहोल्डर रेंडर हो सकते हैं। + +* **Thread safety** – `Converter.convert` थ्रेड‑सेफ़ है, लेकिन एक साथ कई कनवर्टर्स बनाना काफी मेमोरी खपत कर सकता है। यदि आप समानांतर में सैकड़ों फ़ाइलें प्रोसेस कर रहे हैं तो एक ही कनवर्टर इंस्टेंस का पुन: उपयोग करें। + +--- + +## निष्कर्ष + +अब आपके पास **HTML को PDF में बदलने** और **Python में Aspose HTML Converter का उपयोग करके EPUB फ़ाइलों को PDF में बदलने** के लिए एक पूर्ण, प्रोडक्शन‑रेडी तरीका है। ट्यूटोरियल ने निम्नलिखित को कवर किया: + +* सही मॉड्यूल को इम्पोर्ट करना। +* इनपुट फ़ाइलों को वैध करना। +* एक बुनियादी रूपांतरण करना। +* `PdfSaveOptions` के साथ PDF आउटपुट को कस्टमाइज़ करना। +* बड़े या पासवर्ड‑सुरक्षित EPUB को संभालना। + +अब आप इस समाधान को फ़ोल्डर बैच‑प्रोसेस करने, कोड को Flask या FastAPI एन्डपॉइंट में इंटीग्रेट करने, या अतिरिक्त आउटपुट फ़ॉर्मेट जैसे DOCX या PNG (Aspose.HTML इन्हें भी सपोर्ट करता है) के साथ प्रयोग करने के लिए विस्तारित कर सकते हैं। + +--- + +### अगले कदम + +* **generate PDF from HTML** को JavaScript‑ड्रिवेन पेजों के साथ खोजें, `Converter.convert` को हेडलेस ब्राउज़र सत्र के साथ सक्षम करके। +* इस वर्कफ़्लो को **Aspose.PDF** के साथ मिलाएँ ताकि कई PDF को मर्ज करने या डिजिटल सिग्नेचर जोड़ने जैसे पोस्ट‑प्रोसेसिंग कार्य किए जा सकें। +* **aspose-html-converter** के उन्नत विकल्प देखें जैसे `PdfSaveOptions.jpeg_quality` इमेज‑हेवी दस्तावेज़ों के लिए। + +कोडिंग का आनंद लें, और सभी दस्तावेज़‑रूपांतरण आवश्यकताओं के लिए Aspose.HTML की विश्वसनीयता का आनंद लें! + +## अब आप आगे क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन निकट-संबंधित विषयों को कवर करते हैं जो इस गाइड में दिखाए गए तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑दर‑चरण व्याख्याएँ शामिल हैं, जो आपको अतिरिक्त API फीचर्स में महारत हासिल करने और अपने प्रोजेक्ट्स में वैकल्पिक कार्यान्वयन दृष्टिकोणों की खोज करने में मदद करती हैं। + +- [Aspose.HTML के साथ HTML को PDF में बदलें – पूर्ण मैनिपुलेशन गाइड](/html/english/) +- [Aspose.HTML के साथ .NET में EPUB को PDF में बदलें](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/hindi/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..fd46dc811 --- /dev/null +++ b/html/hindi/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Python में फ़ाइल से HTML जल्दी लोड करें। Python का उपयोग करके HTML फ़ाइल + पढ़ना, URL से HTML लोड करना, और स्ट्रिंग से htmldocument बनाना एक ही ट्यूटोरियल + में सीखें। +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: hi +lastmod: 2026-08-12 +og_description: HTMLDocument क्लास का उपयोग करके Python में फ़ाइल से HTML लोड करें। + इस गाइड का पालन करके Python से HTML फ़ाइल पढ़ें, URL से HTML लोड करें, और स्ट्रिंग + से htmldocument बनाएं ताकि वेब सामग्री को मजबूत तरीके से संभाला जा सके। +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Python में फ़ाइल से HTML लोड करें – त्वरित प्रोग्रामिंग गाइड +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Python में फ़ाइल से HTML लोड करें – चरण‑दर‑चरण मार्गदर्शिका +url: /hi/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python में फ़ाइल से HTML लोड करें – चरण‑द्वारा‑चरण गाइड + +यदि आपको **load html from file in Python** की आवश्यकता है, तो यह गाइड आपको बिल्कुल बताता है कि कैसे करना है। आप यह भी सीखेंगे कि **read html file using python** कैसे किया जाता है, URL से HTML लोड करना, और **create htmldocument from string** ताकि आप HTML सामग्री के किसी भी स्रोत को संभाल सकें। + +उदाहरण `html_document` पैकेज की `HTMLDocument` क्लास का उपयोग करते हैं, जो स्थानीय फ़ाइलों, रिमोट URL और कच्चे HTML स्ट्रिंग्स के लिए एकीकृत API प्रदान करती है। यह तरीका Python 3.8+ के साथ काम करता है और `pathlib` तथा `requests` जैसी मानक लाइब्रेरीज़ के साथ सहजता से एकीकृत होता है। + +![Load html from file in Python code screenshot](image.png) + +## Python में फ़ाइल से HTML लोड करना – बुनियादी उदाहरण + +स्थानीय फ़ाइल प्रणाली से HTML फ़ाइल लोड करना स्थैतिक पृष्ठों को प्रोसेस करने का सबसे सामान्य पहला कदम है। `HTMLDocument` कंस्ट्रक्टर एक फ़ाइल पाथ स्वीकार करता है, स्वचालित रूप से फ़ाइल की एन्कोडिंग का पता लगाता है, और मार्कअप को पार्स करता है। + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Why this works:** +* `Path` OS‑विशिष्ट पाथ सेपरेटर को एब्स्ट्रैक्ट करता है, जिससे कोड Windows, macOS, और Linux पर पोर्टेबल बनता है। +* `HTMLDocument` फ़ाइल को बाइनरी मोड में पढ़ता है, UTF‑8 या UTF‑16 BOM का पता लगाता है, और आवश्यक होने पर सिस्टम की डिफ़ॉल्ट एन्कोडिंग पर फॉल्स बैक करता है। + +**Expected output (assuming the HTML contains `Example`):** + +``` +Title: Example +``` + +### फ़ाइल लोड करते समय सामान्य जाल + +* **FileNotFoundError** – सुनिश्चित करें कि पाथ सही है और फ़ाइल मौजूद है। प्री‑चेक के लिए `file_path.is_file()` का उपयोग करें। +* **Encoding errors** – यदि पृष्ठ गैर‑UTF‑8 कैरेक्टर सेट उपयोग करता है, तो कंस्ट्रक्टर में `encoding="iso-8859-1"` पास करें: `HTMLDocument(file_path, encoding="iso-8859-1")`। + +## Python का उपयोग करके HTML फ़ाइल पढ़ना – विस्तृत व्याख्या + +वाक्यांश **read html file using python** अक्सर तब आता है जब डेवलपर्स को सहेजे गए वेब पेजों से डेटा निकालना होता है। जबकि `HTMLDocument` अधिकांश काम को एब्स्ट्रैक्ट करता है, आप कच्चा टेक्स्ट लोड करके उसे मैन्युअली पार्सर को भी दे सकते हैं। + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Why you might choose this route:** +* पार्स करने से पहले आपको HTML को प्री‑प्रोसेस करना पड़ता है (जैसे, स्क्रिप्ट्स हटाना)। +* आप कच्चे मार्कअप को बाद में पुनः उपयोग के लिए कैश करना चाहते हैं बिना फ़ाइल को फिर से पढ़े। + +## URL से HTML लोड करना – रिमोट पेजेज़ को फ़ेच करना + +वेब एड्रेस से सीधे HTML लोड करने से वर्कफ़्लो लाइव कंटेंट तक विस्तारित हो जाता है। **load html from url** चरण `requests` लाइब्रेरी पर HTTP हैंडलिंग के लिए निर्भर करता है और फिर प्रतिक्रिया टेक्स्ट को `HTMLDocument` को देता है। + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Why this works:** +* `requests.get` रीडायरेक्ट्स को फॉलो करता है और HTTPS को बॉक्स से बाहर बिना अतिरिक्त सेटिंग के हैंडल करता है। +* `response.raise_for_status()` यह सुनिश्चित करता है कि केवल सफल प्रतिक्रियाओं को ही पार्स किया जाए, जिससे साइलेंट फेल्योर से बचा जा सके। + +**Edge cases:** +* **Slow network** – `timeout` पैरामीटर को समायोजित करें या कनेक्शन पूलिंग के लिए `requests.Session` का उपयोग करें। +* **Non‑HTML content** – पार्स करने से पहले `Content-Type` हेडर (`response.headers["Content-Type"]`) की जाँच करें। + +## स्ट्रिंग से htmldocument बनाना – कच्चे HTML के साथ काम करना + +कभी-कभी आप HTML को डायनामिक रूप से जनरेट करते हैं (जैसे, टेम्पलेट इंजन से) और इसे डिस्क पर लिखे बिना एक दस्तावेज़ के रूप में उपयोग करना चाहते हैं। **create htmldocument from string** ऑपरेशन सीधा-सादा है। + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Why this is useful:** +* अस्थायी फ़ाइलों की आवश्यकता को समाप्त करता है, जिससे सर्वरलेस वातावरण में प्रदर्शन बेहतर होता है। +* क्लाइंट को भेजने या स्टोर करने से पहले जनरेटेड मार्कअप को वैलिडेट करने की सुविधा देता है। + +**Tips for string handling:** +* मार्कअप को पठनीय रखने के लिए ट्रिपल‑कोटेड स्ट्रिंग्स का उपयोग करें। +* यदि HTML में यूनिकोड कैरेक्टर्स हैं, तो सुनिश्चित करें कि स्रोत फ़ाइल UTF‑8 एन्कोडिंग के साथ सेव की गई हो। + +## पूर्ण अंत‑से‑अंत उदाहरण + +चारों लोडिंग रणनीतियों को मिलाकर एक लचीला पाइपलाइन प्रदर्शित किया गया है जो स्थानीय, रिमोट और इन‑मेमोरी स्रोतों के बीच स्विच कर सकता है। + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**What this code illustrates:** + +* एक ही `HTMLDocument` क्लास सभी इनपुट प्रकारों को संभालता है, जिससे API सतह क्षेत्र घटता है। +* हेल्पर फ़ंक्शन एरर हैंडलिंग को एन्कैप्सुलेट करते हैं और कॉलिंग कोड को संक्षिप्त बनाते हैं। +* यह पैटर्न बैच प्रोसेसिंग के लिए स्केलेबल है: फ़ाइल पाथ या URL की सूची पर इटरेट करें और प्रत्येक दस्तावेज़ को स्क्रैपर या ट्रांसफ़ॉर्मर में फीड करें। + +## निष्कर्ष + +अब आप जानते हैं कि `HTMLDocument` क्लास का उपयोग करके **load html from file in Python** कैसे किया जाता है, और **read html file using** कैसे किया जाता है। + +## आगे आप क्या सीखें? + +निम्नलिखित ट्यूटोरियल्स उन निकट-संबंधित विषयों को कवर करते हैं जो इस गाइड में प्रदर्शित तकनीकों पर आधारित हैं। प्रत्येक संसाधन में पूर्ण कार्यशील कोड उदाहरण और चरण‑द्वारा‑चरण व्याख्याएँ शामिल हैं, जो आपको अतिरिक्त API फीचर्स में महारत हासिल करने और अपने प्रोजेक्ट्स में वैकल्पिक इम्प्लीमेंटेशन अप्रोचेज़ का अन्वेषण करने में मदद करती हैं। + +- [Aspose.HTML for Java में URL से HTML दस्तावेज़ लोड करना](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Aspose.HTML for Java के साथ स्ट्रीम से HTML दस्तावेज़ लोड करना](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Aspose.HTML for Java में HTML दस्तावेज़ को फ़ाइल में सहेजना](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/hongkong/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..559309a9c --- /dev/null +++ b/html/hongkong/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,252 @@ +--- +category: general +date: 2026-08-12 +description: 使用 Python 將 HTML 轉換為 Markdown。學習命令列工作流程,將網頁轉換為 Markdown 並自動化文件。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: zh-hant +lastmod: 2026-08-12 +og_description: 使用 Python 將 HTML 轉換為 Markdown。本教學示範一個命令列解決方案,快速且可靠地將網頁轉換為 Markdown。 +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: 使用 Python 將 HTML 轉換為 Markdown – 逐步指南 +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: 使用 Python 將 HTML 轉換為 Markdown — 完整程式設計指南 +url: /zh-hant/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Python 將 HTML 轉換為 Markdown – 完整程式指南 + +如果你需要 **將 HTML 轉換為 Markdown**,本指南提供一個可直接執行的解決方案。你將看到一段簡短的 Python 程式如何將任意 HTML 檔案轉換為乾淨、符合 Git 風格的 Markdown,並說明如何在命令列中呼叫相同的邏輯。 + +將網頁轉換為 Markdown 是建置靜態文件站點或為版本控制的資料庫準備內容時常見的步驟。完成本教學後,你將擁有一個可重複使用的命令列工具,能處理 HTML 編碼、保留連結,並遵守 Git 風格的 Markdown 規範。 + +## 前置條件 + +開始之前,請確保你已具備: + +* 系統上已安裝 **Python 3.9** 或更新版本。 +* `groupdocs-conversion` Python 套件(或任何提供 `HTMLDocument`、`MarkdownSaveOptions`、`Converter` 的函式庫)。使用以下指令安裝: + +```bash +pip install groupdocs-conversion +``` + +* 一個資料夾,內含你想處理的來源 `input.html` 檔案。 + +以下章節將逐步說明每個步驟、解釋其重要性,並提供完整程式碼。 + +## 第一步:設定環境 + +建立獨立的虛擬環境可避免相依衝突,讓命令列工具更具可移植性。 + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*為什麼需要這一步?* +虛擬環境會將 `groupdocs-conversion` 套件與其他專案隔離,確保 **convert html to markdown command line** 工具以你測試過的確切版本執行。 + +## 第二步:撰寫轉換腳本 + +建立名為 `html_to_md.py` 的檔案,貼上以下程式碼。此腳本接受三個參數:輸入的 HTML 路徑、輸出的 Markdown 路徑,以及一個可選的旗標,用來選擇 Git 風格的格式化器。 + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### 程式說明 + +| 章節 | 目的 | +|------|------| +| **Argument parsing** | 啟用 **convert html to markdown command line** 的使用模式。 | +| **HTMLDocument** | 載入來源檔案;函式庫會抽象化字元編碼與 DOM 解析。 | +| **MarkdownSaveOptions** | 讓你在普通與 Git 風格的 Markdown(`--git` 旗標)之間切換。 | +| **Converter.convert_html** | 執行核心轉換 – 走訪 HTML 樹、翻譯標籤,並寫入輸出檔案。 | +| **Error handling** | 提供清晰的成功/失敗訊息,對 CI 流程至關重要。 | + +## 第三步:從命令列執行轉換 + +腳本儲存後,只需一個指令即可轉換任意 HTML 檔案: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**預期輸出** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +在文字編輯器中開啟 `output.md`;你會看到標題、清單與連結以乾淨的 Markdown 語法呈現。因為使用了 Git 格式化器,表格會以管道符號 (`|`) 分隔,任務清單則使用 `- [ ]` 語法,GitHub 與 GitLab 皆能原生渲染。 + +## 第四步:將工具整合至自動化流程 + +若你在資料庫中維護文件,可將轉換步驟加入 CI 工作流程。以下是一個在每次 push 時執行的 GitHub Actions 工作範例: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*為什麼這很重要* – 自動化 **convert web page to markdown** 步驟可確保文件與來源 HTML 同步,免除手動操作。 + +## 邊緣案例與最佳實踐提示 + +* **編碼問題** – 若 HTML 含有非 UTF‑8 字元,建立 `HTMLDocument` 時請明確指定編碼(例如 `HTMLDocument(input_path, encoding='utf-8')`)。 +* **大型檔案** – 對於超過 50 MB 的 HTML 檔案,建議使用串流轉換以避免記憶體激增。函式庫提供 `convert_html_stream` 方法可因應此情境。 +* **自訂 CSS 處理** – 轉換器預設會移除 style 屬性。如需保留特定格式,可啟用 `md_opts.preserveFormatting = True`。 +* **命令列快捷方式** – 建立小型封裝腳本 (`html2md`) 轉發參數至 `html_to_md.py`。將其放置於 `$HOME/.local/bin` 並加入 `PATH`,即可獲得更簡潔的 **convert html to markdown command line** 體驗。 + +## 常見問題 + +**此腳本能在 Windows、macOS 與 Linux 上執行嗎?** +可以。腳本僅依賴跨平台的 `groupdocs-conversion` 套件與標準 Python 函式庫,於三種作業系統皆可不變地執行。 + +**能直接轉換遠端網頁嗎?** +可以使用 `requests` 取得頁面,並將 HTML 字串傳給 `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**如果只需要 HTML → GitHub‑flavored Markdown 呢?** +只要始終傳入 `--git` 旗標即可;格式化器會產生相容於 GitHub、GitLab 與 Bitbucket 的輸出。 + +## 結論 + +你現在擁有一套穩健的 **convert HTML to Markdown** 解決方案,既可透過 Python 程式執行,也可在命令列直接使用。本教學涵蓋環境設定、完整原始碼、命令列用法、CI 整合以及實務的邊緣案例處理。 + +接下來,你可以探索 **convert markdown to HTML**、嘗試 Pandoc 以取得進階轉換選項,或加入 front‑matter 產生器,直接在 Markdown 檔案中嵌入中繼資料。這些延伸功能皆建立在你剛掌握的核心概念之上。 + +祝轉換順利! + +## 接下來該學什麼? + +以下教學涵蓋與本指南密切相關的主題,並在此基礎上延伸技巧。每個資源皆提供完整可執行的程式碼範例與逐步說明,協助你精通更多 API 功能,並在自己的專案中探索替代實作方式。 + +- [將 HTML 轉換為 Markdown(Aspose.HTML for Java)](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [將 HTML 轉換為 Markdown(.NET with Aspose.HTML)](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/hongkong/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..5d4df3f4f --- /dev/null +++ b/html/hongkong/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: 使用 GroupDocs.Viewer 在 Python 中將 HTML 轉換為 PDF。了解如何使用靈活的 HTML 轉 PDF 選項將 + HTML 儲存為 PDF,以實現精準控制。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: zh-hant +lastmod: 2026-08-12 +og_description: 使用 GroupDocs.Viewer 將 HTML 轉換為 PDF。本指南將教您如何將 HTML 儲存為 PDF、設定 HTML + 轉 PDF 的選項,以及可靠地處理大型文件。 +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: 將 HTML 轉換為 PDF – 步驟式 Python 教學 +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: 在 Python 中將 HTML 轉換為 PDF — 完整程式設計指南 +url: /zh-hant/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 Python 中將 HTML 轉換為 PDF – 完整程式指南 + +如果你需要在 Python 專案中 **convert HTML to PDF**,本指南會提供一個即用即跑的解決方案。我們將逐步說明如何安裝 Viewer 函式庫、設定 **html to pdf options**,以及最終只需幾行程式碼即可 **save HTML as PDF**。 + +將 HTML 文件轉換為 PDF 時,通常需要處理如圖片、CSS 或 JavaScript 等連結資源。完成本教學後,你將了解如何限制資源巢狀深度、避免記憶體激增,並產生與原始頁面版面相符的乾淨 PDF 檔案。 + +## 前置條件 + +- Python 3.8 或更新版本 +- `pip`(Python 套件安裝程式) +- 取得欲轉換的 HTML 檔案(例如 `large_page.html`) + +不需要額外的系統函式庫,因為 GroupDocs.Viewer 已內建所有必要的渲染引擎。 + +## 步驟 1:安裝 GroupDocs.Viewer for Python + +GroupDocs.Viewer 提供高保真度的多種格式(含 HTML)轉換為 PDF 功能。使用以下指令安裝: + +```bash +pip install groupdocs-viewer +``` + +> **專業提示:** 使用虛擬環境(`python -m venv .venv`)可將相依套件與其他專案隔離。 + +## 步驟 2:設定 **html to pdf options** – 限制資源巢狀深度 + +大型 HTML 頁面可能包含深度巢狀的資源(iframe、CSS 匯入等)。設定最大處理深度可防止轉換器無止盡遞迴,並讓記憶體使用保持可預測。 + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth` 屬性告訴 Viewer 應追蹤多少層級的連結資源。對大多數網頁而言,深度 `3` 能兼顧保留必要的圖片與樣式。 + +## 步驟 3:載入欲 **convert HTML to PDF** 的 HTML 文件 + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` 抽象化了檔案格式偵測,無需手動建立 `HtmlDocument`。此步驟會準備轉換器所需的內部表示。 + +## 步驟 4:使用已設定的 **html to pdf options** **Save HTML as PDF** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions` 物件彙集所有 PDF 專屬設定,包含先前定義的 `resource_handling_options`。當呼叫 `viewer.save` 時,HTML 頁面會被渲染,資源會依允許的深度處理,最終 PDF 會寫入 `output_path`。 + +### 預期結果 + +腳本執行完畢後,`output.pdf` 會完整呈現 `large_page.html` 的內容。使用任意 PDF 閱讀器(Adobe Reader、Chrome 等)開啟,確認: + +- 圖片、表格與基本 CSS 樣式正確顯示。 +- 不會因資源遞迴過深而產生意外的空白頁。 + +## 處理邊緣案例與常見變化 + +| Situation | Recommended tweak | +|-----------|-------------------| +| **HTML 包含外部字型** | 加入 `pdf_options.embed_all_fonts = True` 以確保字型嵌入 PDF 中。 | +| **需要特定頁面尺寸** | 設定 `pdf_options.page_width` 與 `pdf_options.page_height`(例如 A4:`595, 842`)。 | +| **大型檔案導致記憶體不足錯誤** | 降低 `resource_options.max_handling_depth`,或將 HTML 拆分為較小片段分別轉換。 | +| **想要為 PDF 設定密碼保護** | 在呼叫 `save` 前使用 `pdf_options.password = "YourSecret"`。 | + +這些調整說明了 **html to pdf options** 的彈性,並展示如何依據具體需求客製化轉換。 + +## 完整腳本,直接複製貼上 + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +執行腳本: + +```bash +python convert_html_to_pdf.py +``` + +你應該會看到確認訊息,且在指定目錄中找到 `output.pdf`。 + +## 常見問題 + +**Q: 這能使用遠端 URL 而非本機檔案嗎?** +A: 可以。將 URL 字串傳給 `Viewer`(例如 `Viewer("https://example.com/page.html")`),Viewer 會先下載該頁面再套用 **html to pdf options**。 + +**Q: 我可以一次批次轉換多個 HTML 檔案嗎?** +A: 將轉換程式碼包在迴圈中,遍歷檔案路徑清單。為提升效能,可重複使用相同的 `resource_options` 與 `pdf_options` 物件。 + +**Q: 若 HTML 使用 JavaScript 變更 DOM,該怎麼辦?** +A: GroupDocs.Viewer 只渲染靜態 HTML,**不會**執行 JavaScript。對於動態頁面,請先在無頭瀏覽器(如 Selenium)中渲染,取得靜態 HTML 後再交給轉換器。 + +## 結論 + +現在你已掌握在 Python 中 **convert HTML to PDF** 的完整、可投入生產的方法。透過設定 **resource handling**,你可以控制連結資源的處理深度,而 `PdfSaveOptions` 讓你以細緻的 **html to pdf options** **save HTML as PDF**。可嘗試可選設定,如字型嵌入或頁面尺寸,以符合應用程式的精確需求。 + +--- + +*下一步*:探索具密碼保護的 **save HTML document pdf**,或將此轉換整合至使用 Flask 或 FastAPI 的即時 PDF 產生 Web API 中。 + +## 接下來該學什麼? + +以下教學涵蓋與本指南技術密切相關的主題,並以完整可執行的程式碼範例與逐步說明,協助你精通更多 API 功能,並在專案中探索其他實作方式。 + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/hongkong/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..383d5443f --- /dev/null +++ b/html/hongkong/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,343 @@ +--- +category: general +date: 2026-08-12 +description: 使用 Aspose HTML Converter 在 Python 中將 HTML 轉換為 PDF。了解如何僅用幾行程式碼即可從 HTML + 產生 PDF 以及將 EPUB 轉換為 PDF。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: zh-hant +lastmod: 2026-08-12 +og_description: 使用 Aspose HTML 轉換器在 Python 中將 HTML 轉換為 PDF。本教學示範如何從 HTML 產生 PDF,以及如何將 + EPUB 轉換為 PDF,提供清晰且可直接執行的程式碼。 +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: 使用 Aspose HTML Converter 在 Python 中將 HTML 轉換為 PDF – 快速指南 +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: 使用 Aspose HTML 轉換器在 Python 中將 HTML 轉換為 PDF +url: /zh-hant/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 使用 Aspose HTML Converter 在 Python 中將 HTML 轉換為 PDF + +如果您需要快速 **將 HTML 轉換為 PDF**,本指南將向您展示如何使用 Aspose.HTML Python 函式庫完成此操作。無論您是要建立將使用者提交的頁面轉換為可列印 PDF 的 Web 服務,或是自動化報告產生,以下步驟都提供完整、可直接執行的解決方案。 + +除了 HTML,Aspose.HTML 亦支援電子書格式,您將看到 **如何將 EPUB** 檔案轉換為 PDF,且全程不離開 Python。完成本教學後,您將能夠 **從 HTML 產生 PDF**,以及僅用幾行程式碼就將 EPUB 電子書轉換為 PDF 版本。 + +## 前置條件 + +在開始之前,請確保您已具備: + +* 已安裝 Python 3.8 或更新版本。 +* 有效的 Aspose.HTML for Python 授權(免費試用版可用於評估)。 +* `pip` 可用於安裝 `aspose-html` 套件。 +* 您想要轉換的範例 HTML 或 EPUB 檔案。 + +```bash +pip install aspose-html +``` + +> **小技巧:** 在虛擬環境中安裝套件,以保持相依性隔離。 + +## 轉換流程概觀 + +Aspose.HTML 提供單一的 `Converter` 類別,將 HTML、CSS 以及電子書內容渲染成 PDF 的細節抽象化。工作流程如下: + +1. 匯入 `Converter` 類別。 +2. 呼叫 `Converter.convert(source_path, target_path)`。 +3. (可選)調整轉換設定,例如頁面大小或字型嵌入。 + +函式庫會根據檔案副檔名自動偵測來源格式,因此相同的方法同時適用於 HTML 與 EPUB 檔案。 + +--- + +## 使用 Aspose HTML Converter 轉換 HTML 為 PDF + +### 步驟 1:匯入 Aspose HTML 轉換模組 + +`Converter` 類別位於 `aspose.html` 命名空間。請在腳本開頭匯入它。 + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### 步驟 2:準備輸入與輸出路徑 + +使用腳本可讀寫的絕對或相對路徑。最佳做法是在執行轉換前驗證來源檔案是否存在。 + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### 步驟 3:執行轉換 + +呼叫 `Converter.convert` 會完成所有繁重工作:渲染 HTML、套用 CSS,並寫入 PDF 檔案。 + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### 為何此方法可行 + +* **自動版面引擎** – Aspose.HTML 使用基於 Chromium 的渲染引擎,確保能正確處理現代 CSS、SVG 與 JavaScript。 +* **無中間檔案** – 轉換在記憶體中完成,減少 I/O 負擔並加速批次處理。 + +### 預期輸出 + +執行腳本後,`output.pdf` 會完整呈現 `input.html` 的內容。使用任何 PDF 檢視器開啟,確認字型、圖片與分頁與原始網頁相符。 + +![轉換圖示](https://example.com/conversion-diagram.png "顯示使用 Aspose HTML Converter 將 HTML 與 EPUB 檔案轉換為 PDF 的圖示") + +*(圖片替代文字:顯示使用 Aspose HTML Converter 將 HTML 與 EPUB 檔案轉換為 PDF 的圖示)* + +--- + +## 使用自訂設定從 HTML 產生 PDF + +有時您需要控制頁面尺寸、邊距,或嵌入特定字型。Aspose.HTML 提供 `PdfSaveOptions` 類別以滿足此需求。 + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*`options` 物件為可選;若您對預設版面滿意,可省略此參數。* + +--- + +## 如何在 Python 中將 EPUB 轉換為 PDF + +### 步驟 1:定位 EPUB 來源 + +與 HTML 相同,提供您欲轉換的 EPUB 檔案路徑。 + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### 步驟 2:執行轉換 + +相同的 `Converter.convert` 方法會偵測 `.epub` 副檔名,並切換至電子書渲染流程。 + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### 需留意的邊緣情況 + +| 情況 | 建議處理方式 | +|--------------------------------------|------------------------------------------------------------------------------| +| 大型 EPUB(數百章) | 使用 `PdfSaveOptions.start_page` 與 `end_page` 分段轉換,以限制記憶體使用量。 | +| EPUB 中缺少字型 | 設定 `PdfSaveOptions.embed_standard_fonts = True` 以回退使用系統字型。 | +| 受密碼保護的 EPUB | 在轉換前使用 `PdfLoadOptions` 提供密碼(此處未示範)。 | + +--- + +## 完整、可執行範例 + +以下是一個結合上述所有步驟的單一腳本。將其儲存為 `convert_demo.py`,並在命令列執行。 + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +執行腳本: + +```bash +python convert_demo.py +``` + +您應會看到三條確認訊息,且在 `YOUR_DIRECTORY` 中產生三個 PDF 檔案。 + +--- + +## 常見陷阱與避免方法 + +* **缺少授權** – 若未持有有效的 Aspose.HTML 授權,函式庫會在每頁加上浮水印。請在腳本開頭盡早註冊授權: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **跨作業系統的相對路徑** – 使用 `os.path.join` 與 `os.path.abspath` 建立平台無關的路徑。 + +* **含外部資源的大型 HTML** – 確保所有 CSS、圖片與字型皆可從檔案系統取得,或使用 data URI 內嵌。否則 PDF 可能出現空白佔位。 + +* **執行緒安全** – `Converter.convert` 為執行緒安全,但同時建立多個轉換器會佔用大量記憶體。若平行處理數百個檔案,請重複使用單一轉換器實例。 + +--- + +## 結論 + +您現在已掌握使用 **Aspose HTML Converter** 在 Python 中 **將 HTML 轉換為 PDF** 以及 **將 EPUB 檔案轉換為 PDF** 的完整、可投入生產的方案。本教學涵蓋: + +* 匯入正確的模組。 +* 驗證輸入檔案。 +* 執行基本轉換。 +* 使用 `PdfSaveOptions` 自訂 PDF 輸出。 +* 處理大型或受密碼保護的 EPUB。 + +從此您可以將此解決方案擴展為批次處理資料夾、整合至 Flask 或 FastAPI 端點,或嘗試其他輸出格式,如 DOCX 或 PNG(Aspose.HTML 亦支援)。 + +--- + +### 後續步驟 + +* 探索使用 **generate PDF from HTML** 於以 JavaScript 驅動的頁面,透過啟用 headless 瀏覽器會話的 `Converter.convert`。 +* 將此工作流程與 **Aspose.PDF** 結合,用於合併多個 PDF 或加入數位簽章等後處理工作。 +* 查看 **aspose-html-converter** 的進階選項,如 `PdfSaveOptions.jpeg_quality`,以優化圖像密集的文件。 + +祝開發順利,盡情體驗 Aspose.HTML 在所有文件轉換需求上的可靠性! + +## 接下來該學什麼? + +以下教學涵蓋與本指南緊密相關的主題,並以此為基礎。每個資源皆提供完整可執行的程式碼範例與逐步說明,協助您精通更多 API 功能,並在自己的專案中探索替代實作方式。 + +- [使用 Aspose.HTML 轉換 HTML 為 PDF – 完整操作指南](/html/english/) +- [.NET 使用 Aspose.HTML 轉換 EPUB 為 PDF](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/hongkong/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..7786d493f --- /dev/null +++ b/html/hongkong/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-08-12 +description: 快速在 Python 中載入 HTML 檔案。學習如何使用 Python 讀取 HTML 檔案、從 URL 載入 HTML,以及在單一教學中從字串建立 + HTMLDocument。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: zh-hant +lastmod: 2026-08-12 +og_description: 使用 HTMLDocument 類別在 Python 中從檔案載入 HTML。依照本指南,使用 Python 讀取 HTML 檔案、從 + URL 載入 HTML,並從字串建立 HTMLDocument,以實現穩健的網頁內容處理。 +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: 在 Python 中從檔案載入 HTML – 快速程式設計指南 +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: 在 Python 中從檔案載入 HTML – 步驟指南 +url: /zh-hant/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# 在 Python 中從檔案載入 HTML – 步驟說明指南 + +如果您需要 **在 Python 中從檔案載入 HTML**,本指南會一步一步說明。您也會學會如何 **使用 python 讀取 html 檔案**、從 URL 載入 HTML,以及 **從字串建立 htmldocument**,以便處理任何來源的 HTML 內容。 + +範例使用 `html_document` 套件中的 `HTMLDocument` 類別,提供本機檔案、遠端 URL 與原始 HTML 字串的統一 API。此方法相容於 Python 3.8+,且可順利結合 `pathlib`、`requests` 等標準函式庫。 + +![Load html from file in Python code screenshot](image.png) + +## 在 Python 中從檔案載入 HTML – 基本範例 + +從本機檔案系統載入 HTML 檔案是處理靜態頁面的最常見第一步。`HTMLDocument` 建構子接受檔案路徑,會自動偵測檔案編碼並解析標記。 + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**為什麼這樣可行:** +* `Path` 抽象化作業系統特定的路徑分隔符,使程式碼在 Windows、macOS 與 Linux 上皆可移植。 +* `HTMLDocument` 以二進位模式讀取檔案,偵測 UTF‑8 或 UTF‑16 BOM,必要時會回退至系統預設編碼。 + +**預期輸出(假設 HTML 內含 `Example`):** + +``` +Title: Example +``` + +### 載入檔案時的常見陷阱 + +* **FileNotFoundError** – 確認路徑正確且檔案確實存在。可使用 `file_path.is_file()` 先行檢查。 +* **編碼錯誤** – 若頁面使用非 UTF‑8 編碼,請在建構子中傳入 `encoding="iso-8859-1"`:`HTMLDocument(file_path, encoding="iso-8859-1")`。 + +## 使用 python 讀取 html 檔案 – 詳細說明 + +當開發者需要從已儲存的網頁中擷取資料時,常會搜尋 **read html file using python**。雖然 `HTMLDocument` 已幫您抽象大部分工作,您仍可自行載入原始文字並手動交給解析器。 + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**為什麼會選擇這種方式:** +* 您需要在解析前先對 HTML 進行前處理(例如移除 script)。 +* 您想將原始標記快取起來,以便日後重複使用而不必再次讀取檔案。 + +## 從 URL 載入 HTML – 取得遠端頁面 + +直接從網路位址載入 HTML 可讓工作流程延伸至即時內容。**load html from url** 步驟依賴 `requests` 函式庫處理 HTTP,然後將回應文字交給 `HTMLDocument`。 + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**為什麼這樣可行:** +* `requests.get` 會自動跟隨重新導向,且內建支援 HTTPS。 +* `response.raise_for_status()` 確保只有成功的回應會被解析,避免靜默失敗。 + +**邊緣情況:** +* **網路緩慢** – 調整 `timeout` 參數或使用 `requests.Session` 以取得連線池。 +* **非 HTML 內容** – 解析前先檢查 `Content-Type` 標頭 (`response.headers["Content-Type"]`)。 + +## 從字串建立 htmldocument – 處理原始 HTML + +有時您會動態產生 HTML(例如透過模板引擎),且想在不寫入磁碟的情況下將其視為文件。**create htmldocument from string** 操作相當直接。 + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**此方式的好處:** +* 省去暫存檔案的需求,提升無伺服器環境的效能。 +* 在將產生的標記傳送給客戶端或儲存之前,先行驗證其正確性。 + +**字串處理小技巧:** +* 使用三引號字串以保持標記的可讀性。 +* 若 HTML 含有 Unicode 字元,請確保來源檔案以 UTF‑8 編碼儲存。 + +## 完整端對端範例 + +將上述四種載入策略結合,可示範一條彈性的管線,能在本機、遠端與記憶體來源之間自由切換。 + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**此程式碼說明了:** + +* 單一的 `HTMLDocument` 類別即可處理所有輸入類型,減少 API 表面積。 +* 輔助函式封裝錯誤處理,使呼叫端程式碼更簡潔。 +* 此模式可擴展至批次處理:遍歷檔案路徑或 URL 清單,將每個文件餵入爬蟲或轉換器。 + +## 結論 + +現在您已掌握如何使用 `HTMLDocument` 類別 **在 Python 中從檔案載入 HTML**,以及如何 **使用 python 讀取 html 檔案**、從 URL 載入以及從字串建立文件的技巧。 + +## 接下來該學什麼? + +以下教學涵蓋與本指南密切相關的主題,進一步延伸本章所示技術。每篇資源皆提供完整可執行的程式碼範例與逐步說明,協助您熟悉更多 API 功能,並在自己的專案中探索替代實作方式。 + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/hungarian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..0fd239d1f --- /dev/null +++ b/html/hungarian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,258 @@ +--- +category: general +date: 2026-08-12 +description: HTML-t konvertálj Markdown formátumba Python használatával. Tanulj meg + egy parancssori munkafolyamatot, amely a weboldalt Markdown-re alakítja és automatizálja + a dokumentációt. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: hu +lastmod: 2026-08-12 +og_description: HTML konvertálása Markdown-re Python segítségével. Ez az útmutató + egy parancssori megoldást mutat be, amely gyorsan és megbízhatóan konvertálja a + weboldalt Markdown formátumba. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: HTML átalakítása Markdown formátumba Python segítségével – lépésről‑lépésre + útmutató +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: HTML átalakítása Markdown-re Python segítségével – teljes programozási útmutató +url: /hu/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML konvertálása Markdown-re Python‑nal – teljes programozási útmutató + +Ha **HTML‑t szeretnél Markdown‑re konvertálni**, ez az útmutató egy azonnal futtatható megoldást mutat be. Látni fogod, hogyan egy rövid Python‑szkript bármely HTML‑fájlt tiszta, Git‑flavort Markdown‑re alakít, és hogyan hívhatod meg ugyanezt a logikát a parancssorból. + +A weboldalak Markdown‑re konvertálása gyakori lépés statikus dokumentációs oldalak építésekor vagy verzió‑kezelő tárolókba való tartalom előkészítésekor. A tutorial végére egy újrahasználható parancssori eszközt kapsz, amely kezeli a HTML kódolást, megőrzi a hivatkozásokat, és betartja a Git‑flavort Markdown konvenciókat. + +## Előfeltételek + +Mielőtt elkezdenéd, győződj meg róla, hogy: + +* Python 3.9 vagy újabb telepítve van a rendszereden. +* A `groupdocs-conversion` Python csomag (vagy bármely könyvtár, amely biztosítja a `HTMLDocument`, `MarkdownSaveOptions` és `Converter` osztályokat). Telepítsd a következővel: + +```bash +pip install groupdocs-conversion +``` + +* Egy mappa, amely tartalmazza a forrás `input.html` fájlt, amelyet feldolgozni szeretnél. + +Az alábbi szakaszok lépésről‑lépésre végigvezetnek, elmagyarázzák, miért fontosak, és megadják a pontos kódot, amire szükséged van. + +## 1. lépés: A környezet beállítása + +Egy izolált virtuális környezet létrehozása megakadályozza a függőségi ütközéseket, és hordozhatóvá teszi a parancssori eszközt. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Miért ez a lépés?* +A virtuális környezet elkülöníti a `groupdocs-conversion` csomagot a többi projekttől, biztosítva, hogy a **convert html to markdown command line** segédprogram a pontosan tesztelt verziókkal fusson. + +## 2. lépés: Írd meg a konverziós szkriptet + +Hozz létre egy `html_to_md.py` nevű fájlt, és illeszd be a következő kódot. A szkript három argumentumot fogad: a bemeneti HTML útvonalát, a kimeneti Markdown útvonalát, és egy opcionális kapcsolót a Git‑flavort formázó kiválasztásához. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### A szkript magyarázata + +| Szakasz | Cél | +|---------|-----| +| **Argumentum‑feldolgozás** | Lehetővé teszi a **convert html to markdown command line** használati mintát. | +| **HTMLDocument** | Betölti a forrásfájlt; a könyvtár elrejti a karakterkódolást és a DOM‑elemzést. | +| **MarkdownSaveOptions** | Lehetővé teszi a sima és a Git‑flavort Markdown (`--git` kapcsoló) közti váltást. | +| **Converter.convert_html** | Elvégzi a nehéz munkát – bejárja a HTML‑fát, lefordítja a tageket, és kiírja a kimeneti fájlt. | +| **Hibakezelés** | Egyértelmű siker/hiba üzenetet ad, ami elengedhetetlen CI pipeline‑okhoz. | + +## 3. lépés: A konverzió futtatása a parancssorból + +Miután elmented a szkriptet, egyetlen paranccsal konvertálhatsz bármely HTML‑fájlt: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Várható kimenet** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Nyisd meg az `output.md` fájlt egy szövegszerkesztőben; láthatod a címsorokat, listákat és hivatkozásokat tiszta Markdown szintaxissal. Mivel a Git formázót használtuk, a táblázatok `|` elválasztóval jelennek meg, a feladatlisták pedig `- [ ]` szintaxist használnak, amit a GitHub és a GitLab natívan renderel. + +## 4. lépés: Az eszköz integrálása automatizációs pipeline‑okba + +Ha dokumentációt tartasz egy tárolóban, hozzáadhatod a konverziós lépést egy CI munkafolyamathoz. Az alábbi példa egy GitHub Actions feladatot mutat, amely minden push‑nál lefut: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Miért fontos?* – A **convert web page to markdown** lépés automatizálása garantálja, hogy a dokumentációod szinkronban marad a forrás HTML‑fájlokkal anélkül, hogy kézi beavatkozásra lenne szükség. + +## Széljegyek és legjobb gyakorlatok + +* **Kódolási problémák** – Ha a HTML‑ed nem‑UTF‑8 karaktereket tartalmaz, adj meg egy explicit kódolást a `HTMLDocument` létrehozásakor (pl. `HTMLDocument(input_path, encoding='utf-8')`). +* **Nagy fájlok** – 50 MB‑nál nagyobb HTML‑fájlok esetén fontold meg a konverzió streaming‑elését, hogy elkerüld a memória‑csúcsokat. A könyvtár biztosít egy `convert_html_stream` metódust erre a forgatókönyvre. +* **Egyedi CSS kezelés** – Alapértelmezés szerint a konverter eltávolítja a style attribútumokat. Ha bizonyos formázásokat meg kell őrizned, állítsd be a `md_opts.preserveFormatting = True` értéket. +* **Parancssori gyorsbillentyű** – Hozz létre egy kis wrapper szkriptet (`html2md`), amely továbbítja az argumentumokat a `html_to_md.py`‑nek. Helyezd el a `$HOME/.local/bin` könyvtárban, és add hozzá a `PATH`‑hez, hogy még rövidebb legyen a **convert html to markdown command line** élmény. + +## Gyakran ismételt kérdések + +**Működik ez Windows, macOS és Linux rendszereken?** +Igen. A szkript csak a platform‑független `groupdocs-conversion` csomagra és a standard Python könyvtárakra támaszkodik, így változtatás nélkül fut mindhárom operációs rendszeren. + +**Közvetlenül konvertálhatok távoli weboldalt?** +A lapot le tudod kérni a `requests`‑szal, és az HTML‑stringet átadhatod a `HTMLDocument`‑nek: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Mi van, ha csak HTML → GitHub‑flavort Markdown‑re van szükségem?** +Egyszerűen mindig add meg a `--git` kapcsolót; a formázó olyan kimenetet generál, amely kompatibilis a GitHub‑dal, a GitLab‑bal és a Bitbucket‑tel. + +## Összegzés + +Most már egy robusztus **convert HTML to Markdown** megoldással rendelkezel, amely Python‑szkriptből és a parancssorból egyaránt működik. A tutorial lefedte a környezet beállítását, a teljes forráskódot, a parancssori használatot, a CI integrációt és a gyakorlati széljegyek kezelését. + +Ezután érdemes lehet **convert markdown to HTML**‑t felfedezni, Pandoc‑ot kipróbálni a haladó konverziós opciókhoz, vagy front‑matter generátort hozzáadni, hogy metaadatokat ágyazz közvetlenül a Markdown‑fájlokba. Mindegyik kiterjesztés a most elsajátított alapfogalmakra épül. + +Boldog konvertálást! + + +## Mit érdemes még tanulni? + +A következő tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljesen működő kódrészleteket tartalmaz lépés‑ről‑lépésre magyarázatokkal, hogy segítsenek további API‑funkciók elsajátításában és alternatív megvalósítási megközelítések felfedezésében saját projektjeidben. + +- [Convert HTML to Markdown in Aspose.HTML for Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Convert HTML to Markdown in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/hungarian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..e61f8aabb --- /dev/null +++ b/html/hungarian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: HTML konvertálása PDF-re Pythonban a GroupDocs.Viewer segítségével. Tanulja + meg, hogyan menthet HTML-t PDF-ként rugalmas HTML‑PDF opciókkal a pontos vezérlés + érdekében. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: hu +lastmod: 2026-08-12 +og_description: HTML konvertálása PDF-be a GroupDocs.Viewer segítségével. Ez az útmutató + bemutatja, hogyan mentheted el az HTML-t PDF-ként, hogyan állíthatod be a HTML‑PDF + beállításokat, és hogyan kezelheted megbízhatóan a nagy dokumentumokat. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTML konvertálása PDF-be – lépésről lépésre Python bemutató +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: HTML konvertálása PDF-re Pythonban – teljes programozási útmutató +url: /hu/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML PDF‑vé konvertálása Pythonban – teljes programozási útmutató + +Ha **HTML‑t PDF‑vé kell konvertálni** egy Python projektben, ez az útmutató egy azonnal futtatható megoldást mutat be. Végigvezetünk a viewer könyvtár telepítésén, a **html to pdf options** konfigurálásán, és végül a **save HTML as PDF** műveleten néhány kódsor segítségével. + +A HTML dokumentumok konvertálása gyakran magában foglalja a kapcsolódó erőforrások (képek, CSS, JavaScript) kezelését. A tutorial végére megérted, hogyan korlátozhatod az erőforrások beágyazási mélységét, elkerülheted a memória‑spike‑eket, és hogyan hozhatsz létre egy tiszta PDF‑fájlt, amely megegyezik az eredeti oldal elrendezésével. + +## Előfeltételek + +- Python 3.8 vagy újabb +- `pip` (Python csomagkezelő) +- Hozzáférés a konvertálni kívánt HTML fájlhoz (pl. `large_page.html`) + +További rendszerkönyvtárak nem szükségesek, mivel a GroupDocs.Viewer minden szükséges renderelő motort magában foglal. + +## 1. lépés: A GroupDocs.Viewer telepítése Pythonhoz + +A GroupDocs.Viewer magas hűségű konvertálást biztosít számos formátum, köztük a HTML, PDF‑vé alakításához. Telepítsd a következővel: + +```bash +pip install groupdocs-viewer +``` + +> **Pro tipp:** Használj virtuális környezetet (`python -m venv .venv`), hogy a függőségek elkülönüljenek a többi projekttől. + +## 2. lépés: **html to pdf options** konfigurálása – erőforrás‑beágyazási mélység korlátozása + +Nagy HTML oldalak mélyen beágyazott erőforrásokat (iframe‑ek, CSS importok stb.) tartalmazhatnak. A maximális kezelési mélység beállítása megakadályozza, hogy a konvertáló végtelenül rekurzáljon, és előre látható memóriahasználatot biztosít. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +A `max_handling_depth` tulajdonság azt határozza meg, hogy a viewer hány szint mélységben kövesse a kapcsolódó erőforrásokat. A `3` mélység a legtöbb weboldalhoz megfelelő, miközben megőrzi a szükséges képeket és stílusokat. + +## 3. lépés: Töltsd be a HTML dokumentumot, amelyet **convert HTML to PDF**-re szeretnél használni + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +A `Viewer` elvégzi a fájlformátum felismerését, így nem kell manuálisan példányosítanod egy `HtmlDocument`‑et. Ez a lépés előkészíti a belső reprezentációt, amellyel a konvertáló dolgozik majd. + +## 4. lépés: **Save HTML as PDF** a konfigurált **html to pdf options** segítségével + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +A `PdfSaveOptions` objektum összegyűjti az összes PDF‑specifikus beállítást, beleértve a korábban definiált `resource_handling_options`‑t is. Amikor a `viewer.save` lefut, a HTML oldal renderelődik, az erőforrások a megengedett mélységig feldolgozásra kerülnek, és a végső PDF a `output_path`‑ba kerül. + +### Várható eredmény + +A script befejezése után az `output.pdf` hűen tükrözi a `large_page.html` tartalmát. Nyisd meg a PDF‑et bármely viewer‑rel (Adobe Reader, Chrome stb.) és ellenőrizd, hogy: + +- A képek, táblázatok és az alapvető CSS‑stílusok helyesen jelennek meg. +- Nem jelentkeznek váratlan üres oldalak a mély erőforrás‑rekurzió miatt. + +## Szélhelyzetek és gyakori variációk kezelése + +| Situation | Recommended tweak | +|-----------|-------------------| +| **HTML contains external fonts** | Add `pdf_options.embed_all_fonts = True` to ensure fonts are embedded in the PDF. | +| **You need a specific page size** | Set `pdf_options.page_width` and `pdf_options.page_height` (e.g., A4: `595, 842`). | +| **Large files cause out‑of‑memory errors** | Decrease `resource_options.max_handling_depth` or split the HTML into smaller fragments and convert each separately. | +| **You want to password‑protect the PDF** | Use `pdf_options.password = "YourSecret"` before calling `save`. | + +Ezek a módosítások szemléltetik a **html to pdf options** rugalmasságát, és megmutatják, hogyan szabhatod testre a konvertálást a saját igényeid szerint. + +## Teljes script, amelyet egyszerűen másolhatsz‑beilleszthetsz + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +A script futtatása: + +```bash +python convert_html_to_pdf.py +``` + +A konzolon megjelenik a megerősítő üzenet, és a megadott könyvtárban megtalálod az `output.pdf`‑t. + +## Gyakran ismételt kérdések + +**Q: Működik ez távoli URL‑ekkel is a helyi fájlok helyett?** +A: Igen. Add át az URL‑t a `Viewer`‑nek (pl. `Viewer("https://example.com/page.html")`). A viewer letölti az oldalt, mielőtt alkalmazná a **html to pdf options**‑t. + +**Q: Tudok egyszerre több HTML fájlt batch‑ben konvertálni?** +A: Csomagold a konvertáló kódot egy ciklusba, amely egy fájlútvonal‑listán iterál. Az `resource_options` és `pdf_options` objektumokat újrahasználhatod a hatékonyság növelése érdekében. + +**Q: Mi van, ha a HTML JavaScript‑et használ a DOM módosításához?** +A: A GroupDocs.Viewer a statikus HTML‑t rendereli; **nem** hajt végre JavaScript‑et. Dinamikus oldalak esetén először rendereld az oldalt egy headless böngészőben (pl. Selenium), majd a kapott statikus HTML‑t add a konvertálónak. + +## Összegzés + +Most már rendelkezel egy teljes, production‑kész módszerrel a **convert HTML to PDF** feladatra Pythonban. A **resource handling** konfigurálásával szabályozhatod, hogy a kapcsolódó erőforrások milyen mélységben legyenek feldolgozva, a `PdfSaveOptions` pedig lehetővé teszi a **save HTML as PDF** finomhangolt **html to pdf options**‑al. Kísérletezz a opcionális beállításokkal – például betűtípus‑beágyazás vagy oldalméretezés – hogy pontosan megfeleljenek az alkalmazásod igényeinek. + +--- + +*Next steps*: explore **save HTML document pdf** with password protection, or integrate this conversion into a web API using Flask or FastAPI for on‑demand PDF generation. + +## Mit érdemes még tanulni? + +Az alábbi tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás komplett, működő kódrészleteket tartalmaz lépésről‑lépésre magyarázatokkal, hogy könnyedén elsajátíthasd az API további funkcióit, és alternatív megvalósítási megközelítéseket is felfedezhess saját projektjeidben. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/hungarian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..d9c21c6ac --- /dev/null +++ b/html/hungarian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,341 @@ +--- +category: general +date: 2026-08-12 +description: HTML konvertálása PDF-re Pythonban az Aspose HTML Converterrel. Tanulja + meg, hogyan generálhat PDF-et HTML‑ből, és hogyan konvertálhat EPUB‑ot PDF‑re néhány + sor kóddal. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: hu +lastmod: 2026-08-12 +og_description: HTML konvertálása PDF-re Pythonban az Aspose HTML Converterrel. Ez + az útmutató bemutatja, hogyan lehet PDF-et generálni HTML-ből, és hogyan lehet EPUB-ot + PDF-re konvertálni világos, futtatható kóddal. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: HTML konvertálása PDF-re Pythonban az Aspose HTML Converterrel – gyors útmutató +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: HTML konvertálása PDF-re Pythonban az Aspose HTML Converter használatával +url: /hu/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML PDF-re konvertálása Pythonban az Aspose HTML Converter segítségével + +Ha gyorsan **HTML‑t PDF‑re szeretnél konvertálni**, ez az útmutató pontosan megmutatja, hogyan teheted ezt meg az Aspose.HTML Python könyvtárral. Akár egy web‑szolgáltatást építesz, amely a felhasználók által beküldött oldalakat nyomtatható PDF‑ekké alakítja, akár jelentéskészítést automatizálsz, az alábbi lépések egy teljes, azonnal futtatható megoldást nyújtanak. + +Az HTML mellett az Aspose.HTML e‑könyv formátumokat is kezel, így megmutatjuk, **hogyan konvertálhatók EPUB** fájlok PDF‑re anélkül, hogy elhagynád a Pythont. A tutorial végére képes leszel **PDF‑et generálni HTML‑ből**, és néhány sor kóddal PDF‑verziókat létrehozni EPUB e‑könyvekből. + +## Előfeltételek + +* Python 3.8 vagy újabb telepítve. +* Aktív Aspose.HTML for Python licenc (az ingyenes próba verzió értékelésre használható). +* `pip` hozzáférés a `aspose-html` csomag telepítéséhez. +* Minta HTML vagy EPUB fájlok, amelyeket konvertálni szeretnél. + +```bash +pip install aspose-html +``` + +> **Pro tipp:** Telepítsd a csomagot egy virtuális környezetben, hogy a függőségek elkülönüljenek. + +## A konverziós folyamat áttekintése + +Aspose.HTML egyetlen `Converter` osztályt biztosít, amely elrejti a HTML, CSS és e‑könyv tartalom PDF‑re renderelésének részleteit. A munkafolyamat a következő: + +1. Importáld a `Converter` osztályt. +2. Hívd meg a `Converter.convert(source_path, target_path)` metódust. +3. (Opcionális) Állítsd be a konverziós beállításokat, például az oldal méretét vagy a betűtípus beágyazását. + +A könyvtár automatikusan felismeri a forrásformátumot a fájl kiterjesztése alapján, így ugyanaz a metódus működik mind HTML, mind EPUB fájlok esetén. + +--- + +## HTML PDF-re konvertálása az Aspose HTML Converter segítségével + +### 1. lépés: Az Aspose HTML konverziós modul importálása + +A `Converter` osztály az `aspose.html` névtérben található. Importáld a szkript elején. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### 2. lépés: Bemeneti és kimeneti útvonalak előkészítése + +Használj abszolút vagy relatív útvonalakat, amelyeket a szkript olvasni/írni tud. Jó gyakorlat ellenőrizni, hogy a forrásfájl létezik-e, mielőtt a konverziót megkísérelnéd. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### 3. lépés: A konverzió végrehajtása + +A `Converter.convert` meghívása elvégzi a nehéz munkát: a HTML renderelése, a CSS alkalmazása és egy PDF fájl írása. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Miért működik ez + +* **Automatikus elrendező motor** – Az Aspose.HTML egy Chromium‑alapú renderelő motort használ, biztosítva, hogy a modern CSS, SVG és JavaScript helyesen legyen kezelve. +* **Nincs köztes fájl** – A konverzió memóriában történik, ami csökkenti az I/O terhelést és felgyorsítja a kötegelt feldolgozást. + +### Várt kimenet + +A szkript futtatása után az `output.pdf` hűséges ábrázolást tartalmaz majd az `input.html`‑ről. Nyisd meg bármely PDF‑nézővel, hogy ellenőrizd, a betűtípusok, képek és oldaltörések megegyeznek-e az eredeti weboldallal. + +![Konverziós diagram](https://example.com/conversion-diagram.png "Diagram, amely bemutatja a HTML és EPUB fájlok PDF‑re konvertálását az Aspose HTML Converter használatával") + +*(Kép alternatív szövege: Diagram, amely bemutatja a HTML és EPUB fájlok PDF‑re konvertálását az Aspose HTML Converter használatával)* + +--- + +## PDF generálása HTML‑ből egyedi beállításokkal + +Néha szükség van az oldal méretének, margóinak vagy bizonyos betűtípusok beágyazásának szabályozására. Az Aspose.HTML egy `PdfSaveOptions` osztályt biztosít erre a célra. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*A `options` objektum opcionális; hagyd el, ha elégedett vagy az alapértelmezett elrendezéssel.* + +--- + +## Hogyan konvertáljunk EPUB‑ot PDF‑re Pythonban + +### 1. lépés: Az EPUB forrás megtalálása + +A HTML‑hez hasonlóan add meg az EPUB fájl elérési útját, amelyet átalakítani szeretnél. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### 2. lépés: A konverzió futtatása + +Ugyanaz a `Converter.convert` metódus felismeri a `.epub` kiterjesztést, és az e‑könyv renderelési csővezetékhez vált. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Figyelembe veendő szélhelyzetek + +| Helyzet | Ajánlott kezelés | +|-------------------------------------|------------------| +| Nagy EPUB (százszáz fejezet) | Konvertáld darabokban a `PdfSaveOptions.start_page` és `end_page` használatával a memóriahasználat korlátozása érdekében. | +| Hiányzó betűtípusok az EPUB‑ban | Állítsd be a `PdfSaveOptions.embed_standard_fonts = True` értéket, hogy a rendszer betűtípusaira térj vissza. | +| Jelszóval védett EPUB | Használd a `PdfLoadOptions`‑t a jelszó megadásához a konverzió előtt (itt nem látható). | + +--- + +## Teljes, futtatható példa + +Az alábbi egyetlen szkript, amely egyesíti a fenti lépéseket. Mentsd el `convert_demo.py` néven, és futtasd a parancssorból. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +A szkript futtatása: + +```bash +python convert_demo.py +``` + +Három megerősítő üzenetet és három PDF fájlt kell látnod a `YOUR_DIRECTORY` könyvtárban. + +--- + +## Gyakori buktatók és elkerülésük módja + +* **Hiányzó licenc** – Érvényes Aspose.HTML licenc nélkül a könyvtár minden oldalra vízjelet helyez. Regisztráld a licencet a szkript elején: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relatív útvonalak különböző operációs rendszereken** – Használd az `os.path.join` és `os.path.abspath` függvényeket platform‑független útvonalak építéséhez. + +* **Nagy HTML külső erőforrásokkal** – Győződj meg róla, hogy minden CSS, kép és betűtípus elérhető a fájlrendszerről, vagy ágyazd be őket data URI‑k segítségével. Ellenkező esetben a PDF üres helyőrzőket jeleníthet meg. + +* **Szálbiztonság** – A `Converter.convert` szálbiztos, de sok konverter egyidejű létrehozása jelentős memóriát fogyaszthat. Használj egyetlen konverter példányt, ha több száz fájlt dolgozol fel párhuzamosan. + +--- + +## Következtetés + +Most már egy teljes, éles környezetben használható megközelítést rendelkezel a **HTML‑t PDF‑re konvertálásához** és a **EPUB** fájlok Pythonban történő **PDF‑re konvertálásához** az **Aspose HTML Converter** segítségével. A tutorial lefedte: + +* A megfelelő modul importálása. +* Bemeneti fájlok ellenőrzése. +* Alap konverzió végrehajtása. +* PDF kimenet testreszabása a `PdfSaveOptions` segítségével. +* Nagy vagy jelszóval védett EPUB‑ok kezelése. + +Innen továbbfejlesztheted a megoldást mappák kötegelt feldolgozására, beépítheted a kódot Flask vagy FastAPI végpontra, vagy kísérletezhetsz további kimeneti formátumokkal, mint a DOCX vagy PNG (az Aspose.HTML ezeket is támogatja). + +### Következő lépések + +* Fedezd fel a **PDF generálását HTML‑ből** JavaScript‑vezérelt oldalakkal a `Converter.convert` headless böngésző munkamenettel történő engedélyezésével. +* Kombináld ezt a munkafolyamatot az **Aspose.PDF**‑vel utófeldolgozási feladatokhoz, mint több PDF egyesítése vagy digitális aláírások hozzáadása. +* Tekintsd meg az **aspose-html-converter** haladó beállításait, például a `PdfSaveOptions.jpeg_quality` opciót képesúlyú dokumentumokhoz. + +Boldog kódolást, és élvezd az Aspose.HTML megbízhatóságát minden dokumentum‑konverziós igényedhez! + +## Mit érdemes legközelebb megtanulni? + +Az alábbi tutorialok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket tartalmaz lépésről‑lépésre magyarázatokkal, hogy segítsenek elsajátítani további API funkciókat és alternatív megvalósítási megközelítéseket a saját projektjeidben. + +- [HTML PDF-re konvertálása Aspose.HTML‑el – Teljes manipulációs útmutató](/html/english/) +- [EPUB PDF-re konvertálása .NET‑ben az Aspose.HTML‑el](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/hungarian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..9768a1694 --- /dev/null +++ b/html/hungarian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: HTML betöltése fájlból Pythonban gyorsan. Tanulja meg, hogyan olvasson + HTML fájlt Python segítségével, hogyan töltsön be HTML-t URL-ről, és hogyan hozzon + létre htmldocument-et karakterláncból egyetlen útmutatóban. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: hu +lastmod: 2026-08-12 +og_description: HTML betöltése fájlból Pythonban a HTMLDocument osztály segítségével. + Kövesd ezt az útmutatót, hogy HTML-fájlt olvass be Pythonban, HTML-t tölts be URL-ről, + és karakterláncból hozz létre HTMLDocument-et a robusztus webtartalom-kezeléshez. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: HTML betöltése fájlból Pythonban – gyors programozási útmutató +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: HTML betöltése fájlból Pythonban – lépésről lépésre útmutató +url: /hu/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML betöltése fájlból Pythonban – lépésről‑lépésre útmutató + +Ha **load html from file in Python**-ra van szükséged, ez az útmutató pontosan megmutatja, hogyan. Emellett megtanulod, hogyan **read html file using python**, HTML betöltése URL-ről, és **create htmldocument from string**, hogy bármilyen HTML tartalom forrást kezelhess. + +A példák a `HTMLDocument` osztályt használják a `html_document` csomagból, amely egységes API-t biztosít a helyi fájlokhoz, távoli URL-ekhez és nyers HTML karakterláncokhoz. A megközelítés a Python 3.8+ verziókkal működik, és tisztán integrálódik a szabványos könyvtárakkal, például a `pathlib` és a `requests` modulokkal. + +![Load html from file in Python code screenshot](image.png) + +## HTML betöltése fájlból Pythonban – alap példa + +Az HTML fájl betöltése a helyi fájlrendszerből a leggyakoribb első lépés a statikus oldalak feldolgozásakor. A `HTMLDocument` konstruktor egy fájl elérési utat fogad, automatikusan felismeri a fájl kódolását, és elemzi a markupot. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Miért működik ez:** +* `Path` elrejti az operációs rendszer‑specifikus útvonalelválasztókat, így a kód hordozható Windows, macOS és Linux rendszerek között. +* `HTMLDocument` bináris módban olvassa a fájlt, felismeri az UTF‑8 vagy UTF‑16 BOM-ot, és szükség esetén a rendszer alapértelmezett kódolására tér vissza. + +**Várható kimenet (feltételezve, hogy a HTML tartalmazza a `Example` elemet):** + +``` +Title: Example +``` + +### Gyakori buktatók fájl betöltésekor + +* **FileNotFoundError** – Győződj meg róla, hogy az útvonal helyes és a fájl létezik. Használd a `file_path.is_file()` metódust az előzetes ellenőrzéshez. +* **Encoding errors** – Ha az oldal nem UTF‑8 karakterkészletet használ, add meg az `encoding="iso-8859-1"` paramétert a konstruktorban: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## HTML fájl olvasása Pythonban – részletes magyarázat + +Az **read html file using python** kifejezés gyakran előfordul, amikor a fejlesztőknek el kell menteniük a weboldalakat. Bár a `HTMLDocument` nagy részét elvégzi, nyers szöveget is betölthetsz, és kézzel átadhatod a parsernek. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Miért választhatod ezt az útvonalat:** +* Szükséged van az HTML előfeldolgozására (pl. szkriptek eltávolítása) a parse előtt. +* Szeretnéd a nyers markupot gyorsítótárba tenni későbbi újrahasználatra anélkül, hogy újra beolvasnád a fájlt. + +## HTML betöltése URL-ről – távoli oldalak lekérése + +Az HTML közvetlenül egy webcímről történő betöltése kiterjeszti a munkafolyamatot élő tartalomra. A **load html from url** lépés a `requests` könyvtárra támaszkodik a HTTP kezeléshez, majd a válasz szövegét átadja a `HTMLDocument`-nek. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Miért működik ez:** +* `requests.get` követi az átirányításokat és alapból kezeli a HTTPS-t. +* `response.raise_for_status()` biztosítja, hogy csak sikeres válaszok legyenek feldolgozva, elkerülve a csendes hibákat. + +**Szélsőséges esetek:** +* **Lassú hálózat** – Állítsd be a `timeout` paramétert, vagy használj `requests.Session`-t a kapcsolatkezeléshez. +* **Nem‑HTML tartalom** – Ellenőrizd a `Content-Type` fejlécet (`response.headers["Content-Type"]`) a parse előtt. + +## HTMLDocument létrehozása karakterláncból – nyers HTML kezelése + +Néha dinamikusan generálsz HTML-t (pl. sablonmotorból), és úgy kell kezelned, mint egy dokumentumot, anélkül, hogy leírnád a lemezre. A **create htmldocument from string** művelet egyszerű. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Miért hasznos ez:** +* Eltávolítja az ideiglenes fájlok szükségességét, ami javítja a teljesítményt serverless környezetekben. +* Lehetővé teszi a generált markup validálását, mielőtt elküldenéd a kliensnek vagy tárolnád. + +**Tippek karakterlánc kezeléséhez:** +* Használj háromidézős (`'''` vagy `"""`) karakterláncokat a markup olvashatóságának megőrzéséhez. +* Ha a HTML Unicode karaktereket tartalmaz, győződj meg arról, hogy a forrásfájl UTF‑8 kódolással van mentve. + +## Teljes vég‑től‑végig példa + +A négy betöltési stratégia egyesítése rugalmas csővezetéket mutat be, amely képes váltani a helyi, távoli és memóriában lévő források között. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Mit szemléltet ez a kód:** + +* Egyetlen `HTMLDocument` osztály kezeli az összes bemeneti típust, csökkentve az API felületét. +* Segédfüggvények kapszulázzák a hibakezelést, és tömörebbé teszik a hívó kódot. +* A minta skálázható kötegelt feldolgozáshoz: iterálj egy fájlútvonalak vagy URL-ek listáján, és add át minden dokumentumot egy scrapernek vagy transzformátornak. + +## Következtetés + +Most már tudod, hogyan **load html from file in Python** a `HTMLDocument` osztály segítségével, hogyan **read html file using + +## Mit érdemes következőként megtanulni? + +A következő oktatóanyagok szorosan kapcsolódó témákat fednek le, amelyek a jelen útmutatóban bemutatott technikákra épülnek. Minden forrás teljes, működő kódrészleteket tartalmaz lépésről‑lépésre magyarázatokkal, hogy segítsenek elsajátítani további API funkciókat és alternatív megvalósítási megközelítéseket a saját projektjeidben. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/indonesian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..16be1d8f6 --- /dev/null +++ b/html/indonesian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-08-12 +description: Konversi HTML ke Markdown menggunakan Python. Pelajari alur kerja baris + perintah untuk mengonversi halaman web ke Markdown dan mengotomatiskan dokumentasi. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: id +lastmod: 2026-08-12 +og_description: Konversi HTML ke Markdown menggunakan Python. Tutorial ini menunjukkan + solusi baris perintah untuk mengonversi halaman web ke Markdown dengan cepat dan + andal. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Konversi HTML ke Markdown dengan Python – panduan langkah demi langkah +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Konversi HTML ke Markdown dengan Python – panduan pemrograman lengkap +url: /id/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mengonversi HTML ke Markdown dengan Python – panduan pemrograman lengkap + +Jika Anda perlu **mengonversi HTML ke Markdown**, panduan ini menunjukkan solusi siap‑jalankan. Anda akan melihat bagaimana skrip Python singkat mengubah file HTML apa pun menjadi Markdown bersih dengan format Git, dan bagaimana Anda dapat memanggil logika yang sama dari baris perintah. + +Mengonversi halaman web ke Markdown adalah langkah umum saat membangun situs dokumentasi statis atau menyiapkan konten untuk repositori yang dikontrol versi. Pada akhir tutorial ini Anda akan memiliki alat baris perintah yang dapat digunakan kembali yang menangani pengkodean HTML, mempertahankan tautan, dan menghormati konvensi Git‑flavored Markdown. + +## Prasyarat + +Sebelum Anda memulai, pastikan Anda memiliki: + +* Python 3.9 atau yang lebih baru terpasang di sistem Anda. +* Paket Python `groupdocs-conversion` (atau perpustakaan apa pun yang menyediakan `HTMLDocument`, `MarkdownSaveOptions`, dan `Converter`). Instal dengan: + +```bash +pip install groupdocs-conversion +``` + +* Sebuah folder yang berisi file `input.html` sumber yang ingin Anda proses. + +Bagian-bagian berikut akan menelusuri setiap langkah, menjelaskan mengapa hal itu penting, dan memberi Anda kode tepat yang Anda butuhkan. + +## Langkah 1: Siapkan lingkungan + +Membuat lingkungan virtual terisolasi mencegah konflik ketergantungan dan membuat alat baris perintah dapat dipindahkan. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Mengapa langkah ini?* +Lingkungan virtual mengisolasi paket `groupdocs-conversion` dari proyek lain, memastikan utilitas **convert html to markdown command line** berjalan dengan versi tepat yang Anda uji. + +## Langkah 2: Tulis skrip konversi + +Buat file bernama `html_to_md.py` dan tempelkan kode berikut. Skrip ini menerima tiga argumen: jalur HTML input, jalur Markdown output, dan flag opsional untuk memilih formatter Git‑flavored. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Penjelasan skrip + +| Bagian | Tujuan | +|--------|--------| +| **Argument parsing** | Memungkinkan pola penggunaan **convert html to markdown command line**. | +| **HTMLDocument** | Memuat file sumber; perpustakaan mengabstraksi pengkodean karakter dan parsing DOM. | +| **MarkdownSaveOptions** | Memungkinkan Anda beralih antara Markdown biasa dan Git‑flavored (`--git` flag). | +| **Converter.convert_html** | Melakukan pekerjaan berat – menelusuri pohon HTML, menerjemahkan tag, dan menulis file output. | +| **Error handling** | Memberikan pesan keberhasilan/kegagalan yang jelas, yang penting untuk pipeline CI. | + +## Langkah 3: Jalankan konversi dari baris perintah + +Setelah skrip disimpan, Anda dapat mengonversi file HTML apa pun dengan satu perintah: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Output yang diharapkan** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Buka `output.md` di editor teks; Anda akan melihat heading, daftar, dan tautan ditampilkan dalam sintaks Markdown yang bersih. Karena kami menggunakan formatter Git, tabel muncul dengan pemisah pipa (`|`), dan daftar tugas menggunakan sintaks `- [ ]`, yang dirender secara native oleh GitHub dan GitLab. + +## Langkah 4: Integrasikan alat ke dalam pipeline otomatisasi + +Jika Anda memelihara dokumentasi dalam repositori, Anda dapat menambahkan langkah konversi ke alur kerja CI. Berikut contoh untuk pekerjaan GitHub Actions yang dijalankan pada setiap push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Mengapa ini penting* – Mengotomatiskan langkah **convert web page to markdown** menjamin dokumentasi Anda tetap sinkron dengan file HTML sumber tanpa usaha manual. + +## Kasus tepi dan tip praktik terbaik + +* **Masalah pengkodean** – Jika HTML Anda berisi karakter non‑UTF‑8, berikan pengkodean eksplisit saat membuat `HTMLDocument` (mis., `HTMLDocument(input_path, encoding='utf-8')`). +* **File besar** – Untuk file HTML yang lebih besar dari 50 MB, pertimbangkan streaming konversi untuk menghindari lonjakan memori. Perpustakaan menyediakan metode `convert_html_stream` untuk skenario ini. +* **Penanganan CSS khusus** – Konverter menghapus atribut style secara default. Jika Anda perlu mempertahankan format tertentu, aktifkan `md_opts.preserveFormatting = True`. +* **Pintasan baris perintah** – Buat skrip pembungkus kecil (`html2md`) yang meneruskan argumen ke `html_to_md.py`. Letakkan di `$HOME/.local/bin` dan tambahkan ke `PATH` Anda untuk pengalaman **convert html to markdown command line** yang lebih singkat. + +## Pertanyaan yang sering diajukan + +**Apakah ini bekerja di Windows, macOS, dan Linux?** +Ya. Skrip ini hanya bergantung pada paket lintas‑platform `groupdocs-conversion` dan pustaka standar Python, sehingga berjalan tanpa perubahan di ketiga OS tersebut. + +**Bisakah saya mengonversi halaman web remote secara langsung?** +Anda dapat mengambil halaman dengan `requests` dan memberi string HTML ke `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Bagaimana jika saya hanya membutuhkan HTML → GitHub‑flavored Markdown?** +Cukup selalu berikan flag `--git`; formatter menghasilkan output yang kompatibel dengan GitHub, GitLab, dan Bitbucket. + +## Kesimpulan + +Anda kini memiliki solusi **convert HTML to Markdown** yang kuat yang berfungsi dari skrip Python dan dari baris perintah. Tutorial ini mencakup penyiapan lingkungan, kode sumber lengkap, penggunaan baris perintah, integrasi CI, dan penanganan kasus tepi yang praktis. + +Selanjutnya, Anda mungkin ingin menjelajahi **convert markdown to HTML**, bereksperimen dengan Pandoc untuk opsi konversi lanjutan, atau menambahkan generator front‑matter untuk menyematkan metadata langsung ke file Markdown. Setiap ekstensi ini dibangun di atas konsep inti yang baru saja Anda kuasai. + +Selamat mengonversi! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik yang sangat terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda sendiri. + +- [Mengonversi HTML ke Markdown dalam Aspose.HTML untuk Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Mengonversi HTML ke Markdown dalam .NET dengan Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/indonesian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..3fcb5fca1 --- /dev/null +++ b/html/indonesian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-12 +description: Konversi HTML ke PDF dalam Python menggunakan GroupDocs.Viewer. Pelajari + cara menyimpan HTML sebagai PDF dengan opsi HTML ke PDF yang fleksibel untuk kontrol + yang tepat. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: id +lastmod: 2026-08-12 +og_description: Konversi HTML ke PDF dengan GroupDocs.Viewer. Panduan ini menunjukkan + cara menyimpan HTML sebagai PDF, mengonfigurasi opsi HTML ke PDF, dan menangani + dokumen besar secara andal. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Konversi HTML ke PDF – tutorial Python langkah demi langkah +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Mengonversi HTML ke PDF dengan Python – panduan pemrograman lengkap +url: /id/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mengonversi HTML ke PDF dengan Python – panduan pemrograman lengkap + +Jika Anda perlu **mengonversi HTML ke PDF** dalam proyek Python, panduan ini menunjukkan solusi siap‑jalankan. Kami akan membahas cara memasang pustaka viewer, mengonfigurasi **opsi html ke pdf**, dan akhirnya **menyimpan HTML sebagai PDF** hanya dengan beberapa baris kode. + +Mengonversi dokumen HTML sering melibatkan penanganan sumber daya yang terhubung seperti gambar, CSS, atau JavaScript. Pada akhir tutorial ini Anda akan memahami cara membatasi kedalaman penelusuran sumber daya, menghindari lonjakan memori, dan menghasilkan file PDF bersih yang sesuai dengan tata letak halaman asli. + +## Prasyarat + +- Python 3.8 atau lebih baru +- `pip` (pengelola paket Python) +- Akses ke file HTML yang ingin Anda konversi (misalnya, `large_page.html`) + +Tidak ada pustaka sistem tambahan yang diperlukan karena GroupDocs.Viewer menyertakan semua mesin rendering yang diperlukan. + +## Langkah 1: Pasang GroupDocs.Viewer untuk Python + +GroupDocs.Viewer menyediakan konversi berfidelity tinggi dari banyak format, termasuk HTML, ke PDF. Pasang dengan: + +```bash +pip install groupdocs-viewer +``` + +> **Tip profesional:** Gunakan lingkungan virtual (`python -m venv .venv`) untuk menjaga dependensi tetap terisolasi dari proyek lain. + +## Langkah 2: Konfigurasikan **opsi html ke pdf** – batasi kedalaman penelusuran sumber daya + +Halaman HTML besar dapat berisi sumber daya yang sangat bersarang (iframe, impor CSS, dll.). Menetapkan kedalaman penanganan maksimum mencegah konverter melakukan rekursi tanpa batas dan menjaga penggunaan memori tetap dapat diprediksi. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Properti `max_handling_depth` memberi tahu viewer berapa tingkat sumber daya yang ditautkan harus diikuti. Kedalaman `3` biasanya bekerja baik untuk kebanyakan halaman web sekaligus tetap mempertahankan gambar dan gaya yang diperlukan. + +## Langkah 3: Muat dokumen HTML yang ingin Anda **konversi HTML ke PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` mengabstraksi deteksi format file, sehingga Anda tidak perlu secara manual menginstansiasi `HtmlDocument`. Langkah ini menyiapkan representasi internal yang akan diproses oleh konverter. + +## Langkah 4: **Simpan HTML sebagai PDF** menggunakan **opsi html ke pdf** yang telah dikonfigurasi + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Objek `PdfSaveOptions` menggabungkan semua pengaturan khusus PDF, termasuk `resource_handling_options` yang telah kita definisikan sebelumnya. Saat `viewer.save` dijalankan, halaman HTML dirender, sumber daya diproses hingga kedalaman yang diizinkan, dan PDF akhir ditulis ke `output_path`. + +### Hasil yang diharapkan + +Setelah skrip selesai, `output.pdf` berisi representasi yang setia dari `large_page.html`. Buka PDF dengan viewer apa pun (Adobe Reader, Chrome, dll.) dan pastikan bahwa: + +- Gambar, tabel, dan gaya CSS dasar muncul dengan benar. +- Tidak ada halaman kosong yang tidak terduga akibat rekursi sumber daya yang dalam. + +## Menangani kasus tepi dan variasi umum + +| Situasi | Penyesuaian yang direkomendasikan | +|-----------|-------------------| +| **HTML berisi font eksternal** | Tambahkan `pdf_options.embed_all_fonts = True` untuk memastikan font tersemat dalam PDF. | +| **Anda memerlukan ukuran halaman tertentu** | Atur `pdf_options.page_width` dan `pdf_options.page_height` (misalnya, A4: `595, 842`). | +| **File besar menyebabkan kesalahan out‑of‑memory** | Kurangi `resource_options.max_handling_depth` atau bagi HTML menjadi fragmen lebih kecil dan konversi masing‑masing secara terpisah. | +| **Anda ingin melindungi PDF dengan kata sandi** | Gunakan `pdf_options.password = "YourSecret"` sebelum memanggil `save`. | + +Penyesuaian ini menunjukkan fleksibilitas **opsi html ke pdf** dan memperlihatkan cara menyesuaikan konversi sesuai kebutuhan spesifik Anda. + +## Skrip lengkap yang dapat Anda salin‑tempel + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Jalankan skrip: + +```bash +python convert_html_to_pdf.py +``` + +Anda akan melihat pesan konfirmasi dan menemukan `output.pdf` di direktori yang ditentukan. + +## Pertanyaan yang sering diajukan + +**T: Apakah ini bekerja dengan URL remote alih‑alih file lokal?** +J: Ya. Berikan string URL ke `Viewer` (misalnya, `Viewer("https://example.com/page.html")`). Viewer akan mengunduh halaman sebelum menerapkan **opsi html ke pdf**. + +**T: Bisakah saya mengonversi beberapa file HTML secara batch?** +J: Bungkus kode konversi dalam loop yang mengiterasi daftar jalur file. Gunakan kembali objek `resource_options` dan `pdf_options` yang sama untuk efisiensi. + +**T: Bagaimana jika HTML menggunakan JavaScript untuk memodifikasi DOM?** +J: GroupDocs.Viewer merender HTML statis; ia **tidak** mengeksekusi JavaScript. Untuk halaman dinamis, render halaman terlebih dahulu di browser tanpa kepala (misalnya, Selenium), lalu berikan HTML statis hasil render ke konverter. + +## Kesimpulan + +Anda kini memiliki metode lengkap dan siap produksi untuk **mengonversi HTML ke PDF** dengan Python. Dengan mengonfigurasi **penanganan sumber daya** Anda mengontrol seberapa dalam sumber daya yang ditautkan diproses, dan `PdfSaveOptions` memungkinkan Anda **menyimpan HTML sebagai PDF** dengan **opsi html ke pdf** yang sangat detail. Bereksperimenlah dengan pengaturan opsional—seperti penyematan font atau pengaturan ukuran halaman—untuk menyesuaikan kebutuhan aplikasi Anda secara tepat. + +--- + +*Langkah selanjutnya*: jelajahi **menyimpan dokumen HTML sebagai pdf** dengan perlindungan kata sandi, atau integrasikan konversi ini ke dalam API web menggunakan Flask atau FastAPI untuk pembuatan PDF on‑demand. + +## Apa yang Harus Anda Pelajari Selanjutnya? + + +Tutorial berikut mencakup topik terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap dengan penjelasan langkah‑demi‑langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [Cara Mengonversi HTML ke PDF Java – Menggunakan Aspose.HTML untuk Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Mengonversi HTML ke PDF Java – Mengonfigurasi Lingkungan di Aspose.HTML](/html/english/java/configuring-environment/) +- [Mengonversi HTML ke PDF – Eksekusi Permintaan Web di Aspose.HTML untuk Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/indonesian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..a7ebe6769 --- /dev/null +++ b/html/indonesian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,346 @@ +--- +category: general +date: 2026-08-12 +description: Konversi HTML ke PDF di Python dengan Aspose HTML Converter. Pelajari + cara menghasilkan PDF dari HTML dan cara mengonversi EPUB ke PDF hanya dengan beberapa + baris kode. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: id +lastmod: 2026-08-12 +og_description: Konversi HTML ke PDF dalam Python menggunakan Aspose HTML Converter. + Tutorial ini menunjukkan cara menghasilkan PDF dari HTML dan cara mengonversi EPUB + ke PDF dengan kode yang jelas dan dapat dijalankan. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Mengonversi HTML ke PDF dengan Python menggunakan Aspose HTML Converter + – panduan singkat +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Konversi HTML ke PDF di Python menggunakan Aspose HTML Converter +url: /id/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Mengonversi HTML ke PDF di Python menggunakan Aspose HTML Converter + +Jika Anda perlu **mengonversi HTML ke PDF** dengan cepat, panduan ini menunjukkan cara melakukannya menggunakan pustaka Aspose.HTML untuk Python. Baik Anda sedang membangun layanan web yang mengubah halaman yang dikirim pengguna menjadi PDF yang dapat dicetak maupun mengotomatisasi pembuatan laporan, langkah‑langkah di bawah ini memberikan solusi lengkap yang siap dijalankan. + +Selain HTML, Aspose.HTML juga menangani format e‑book, sehingga Anda akan melihat **cara mengonversi file EPUB** ke PDF tanpa meninggalkan Python. Pada akhir tutorial ini Anda akan dapat **menghasilkan PDF dari HTML** dan membuat versi PDF dari e‑book EPUB hanya dengan beberapa baris kode. + +## Prasyarat + +Sebelum memulai, pastikan Anda memiliki: + +* Python 3.8 atau yang lebih baru terpasang. +* Lisensi aktif Aspose.HTML untuk Python (versi percobaan gratis dapat digunakan untuk evaluasi). +* Akses `pip` untuk menginstal paket `aspose-html`. +* File HTML atau EPUB contoh yang ingin Anda konversi. + +```bash +pip install aspose-html +``` + +> **Pro tip:** Instal paket di dalam lingkungan virtual untuk menjaga ketergantungan tetap terisolasi. + +## Gambaran umum proses konversi + +Aspose.HTML menyediakan satu kelas `Converter` yang menyederhanakan detail perenderan HTML, CSS, dan konten e‑book menjadi PDF. Alur kerja adalah: + +1. Impor kelas `Converter`. +2. Panggil `Converter.convert(source_path, target_path)`. +3. (Opsional) Sesuaikan pengaturan konversi seperti ukuran halaman atau penyematan font. + +Pustaka secara otomatis mendeteksi format sumber berdasarkan ekstensi file, sehingga metode yang sama bekerja untuk file HTML maupun EPUB. + +--- + +## Mengonversi HTML ke PDF dengan Aspose HTML Converter + +### Langkah 1: Impor modul konversi Aspose HTML + +Kelas `Converter` berada di dalam namespace `aspose.html`. Impor di bagian atas skrip Anda. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Langkah 2: Siapkan jalur input dan output + +Gunakan jalur absolut atau relatif yang dapat dibaca/ditulis oleh skrip Anda. Praktik yang baik adalah memvalidasi bahwa file sumber memang ada sebelum melakukan konversi. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Langkah 3: Lakukan konversi + +Pemanggilan `Converter.convert` menangani semua proses berat: merender HTML, menerapkan CSS, dan menulis file PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Mengapa ini berhasil + +* **Mesin tata letak otomatis** – Aspose.HTML menggunakan mesin perender berbasis Chromium, memastikan CSS modern, SVG, dan JavaScript diproses dengan benar. +* **Tanpa file perantara** – Konversi terjadi di memori, sehingga mengurangi beban I/O dan mempercepat pemrosesan batch. + +### Output yang diharapkan + +Setelah menjalankan skrip, `output.pdf` akan berisi representasi yang setia dari `input.html`. Buka dengan penampil PDF apa pun untuk memverifikasi bahwa font, gambar, dan pemisah halaman cocok dengan halaman web asli. + +![Diagram konversi](https://example.com/conversion-diagram.png "Diagram yang menunjukkan konversi file HTML dan EPUB ke PDF menggunakan Aspose HTML Converter") + +*(Teks alt gambar: Diagram yang menunjukkan konversi file HTML dan EPUB ke PDF menggunakan Aspose HTML Converter)* + +--- + +## Menghasilkan PDF dari HTML dengan pengaturan khusus + +Terkadang Anda perlu mengontrol ukuran halaman, margin, atau menyematkan font tertentu. Aspose.HTML menyediakan kelas `PdfSaveOptions` untuk tujuan tersebut. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Objek `options` bersifat opsional; hilangkan jika Anda puas dengan tata letak default.* + +--- + +## Cara mengonversi EPUB ke PDF di Python + +### Langkah 1: Temukan sumber EPUB + +Seperti pada HTML, berikan jalur ke file EPUB yang ingin Anda ubah. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Langkah 2: Jalankan konversi + +Metode `Converter.convert` yang sama mendeteksi ekstensi `.epub` dan beralih ke pipeline perenderan e‑book. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Kasus tepi yang perlu dipertimbangkan + +| Situasi | Penanganan yang disarankan | +|-----------------------------------------|----------------------------| +| EPUB besar (ratusan bab) | Konversi secara bertahap menggunakan `PdfSaveOptions.start_page` dan `end_page` untuk membatasi penggunaan memori. | +| Font yang hilang dalam EPUB | Atur `PdfSaveOptions.embed_standard_fonts = True` untuk menggunakan font sistem sebagai cadangan. | +| EPUB yang dilindungi kata sandi | Gunakan `PdfLoadOptions` untuk menyediakan kata sandi sebelum konversi (tidak ditampilkan di sini). | + +--- + +## Contoh lengkap yang dapat dijalankan + +Berikut adalah satu skrip yang menggabungkan semua langkah di atas. Simpan sebagai `convert_demo.py` dan jalankan dari baris perintah. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Jalankan skrip: + +```bash +python convert_demo.py +``` + +Anda akan melihat tiga pesan konfirmasi dan tiga file PDF di `YOUR_DIRECTORY`. + +--- + +## Kesalahan umum dan cara menghindarinya + +* **Lisensi tidak ada** – Tanpa lisensi Aspose.HTML yang valid, pustaka akan menambahkan watermark pada setiap halaman. Daftarkan lisensi di awal skrip: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Jalur relatif pada OS yang berbeda** – Gunakan `os.path.join` dan `os.path.abspath` untuk membangun jalur yang independen platform. + +* **HTML besar dengan sumber eksternal** – Pastikan semua CSS, gambar, dan font dapat diakses dari sistem file atau sematkan menggunakan data URI. Jika tidak, PDF dapat menampilkan placeholder kosong. + +* **Keamanan thread** – `Converter.convert` bersifat thread‑safe, tetapi membuat banyak konverter secara bersamaan dapat mengonsumsi memori yang signifikan. Gunakan satu instance konverter jika Anda memproses ratusan file secara paralel. + +--- + +## Kesimpulan + +Anda kini memiliki pendekatan lengkap dan siap produksi untuk **mengonversi HTML ke PDF** serta **mengonversi file EPUB** ke PDF di Python menggunakan **Aspose HTML Converter**. Tutorial ini mencakup: + +* Mengimpor modul yang tepat. +* Memvalidasi file input. +* Melakukan konversi dasar. +* Menyesuaikan output PDF dengan `PdfSaveOptions`. +* Menangani EPUB besar atau yang dilindungi kata sandi. + +Dari sini Anda dapat memperluas solusi untuk memproses batch folder, mengintegrasikan kode ke endpoint Flask atau FastAPI, atau bereksperimen dengan format output tambahan seperti DOCX atau PNG (Aspose.HTML juga mendukungnya). + +--- + +### Langkah selanjutnya + +* Jelajahi **menghasilkan PDF dari HTML** dengan halaman yang digerakkan JavaScript dengan mengaktifkan `Converter.convert` dalam sesi peramban tanpa kepala. +* Gabungkan alur kerja ini dengan **Aspose.PDF** untuk tugas pasca‑proses seperti menggabungkan beberapa PDF atau menambahkan tanda tangan digital. +* Lihat opsi lanjutan **aspose-html-converter** seperti `PdfSaveOptions.jpeg_quality` untuk dokumen yang banyak mengandung gambar. + +Selamat coding, dan nikmati keandalan Aspose.HTML untuk semua kebutuhan konversi dokumen Anda! + +## Apa yang Harus Anda Pelajari Selanjutnya? + +Tutorial berikut mencakup topik terkait yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber menyertakan contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/indonesian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..d5cbab10f --- /dev/null +++ b/html/indonesian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Muat HTML dari file di Python dengan cepat. Pelajari cara membaca file + HTML menggunakan Python, memuat HTML dari URL, dan membuat htmldocument dari string + dalam satu tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: id +lastmod: 2026-08-12 +og_description: Muat HTML dari file di Python menggunakan kelas HTMLDocument. Ikuti + panduan ini untuk membaca file HTML menggunakan Python, memuat HTML dari URL, dan + membuat HTMLDocument dari string untuk penanganan konten web yang kuat. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Muat HTML dari file di Python – panduan pemrograman cepat +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Muat HTML dari file di Python – panduan langkah demi langkah +url: /id/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Load html from file in Python – panduan langkah demi langkah + +Jika Anda perlu **load html from file in Python**, panduan ini menunjukkan secara tepat cara melakukannya. Anda juga akan belajar cara **read html file using python**, memuat html dari url, dan **create htmldocument from string** sehingga Anda dapat menangani sumber konten HTML apa pun. + +Contoh-contoh menggunakan kelas `HTMLDocument` dari paket `html_document`, yang menyediakan API terpadu untuk file lokal, URL remote, dan string HTML mentah. Pendekatan ini bekerja dengan Python 3.8+ dan terintegrasi dengan bersih dengan pustaka standar seperti `pathlib` dan `requests`. + +![Screenshot kode Load html dari file di Python](image.png) + +## Load html from file in Python – contoh dasar + +Memuat file HTML dari sistem berkas lokal adalah langkah pertama yang paling umum saat memproses halaman statis. Konstruktor `HTMLDocument` menerima jalur file, secara otomatis mendeteksi enkoding file, dan mengurai markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Mengapa ini berhasil:** +* `Path` mengabstraksi pemisah jalur yang spesifik OS, membuat kode dapat dipindahkan lintas Windows, macOS, dan Linux. +* `HTMLDocument` membaca file dalam mode biner, mendeteksi BOM UTF‑8 atau UTF‑16, dan kembali ke enkoding default sistem bila diperlukan. + +**Output yang diharapkan (asumsi HTML berisi `Example`):** + +``` +Title: Example +``` + +### Kesalahan umum saat memuat file + +* **FileNotFoundError** – Pastikan jalur sudah benar dan file ada. Gunakan `file_path.is_file()` untuk memeriksa terlebih dahulu. +* **Encoding errors** – Jika halaman menggunakan charset non‑UTF‑8, berikan `encoding="iso-8859-1"` ke konstruktor: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Read html file using python – penjelasan detail + +Frasa **read html file using python** sering muncul ketika pengembang perlu mengekstrak data dari halaman web yang disimpan. Meskipun `HTMLDocument` mengabstraksi sebagian besar pekerjaan, Anda juga dapat memuat teks mentah dan memberi ke parser secara manual. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Mengapa Anda mungkin memilih cara ini:** +* Anda perlu memproses HTML terlebih dahulu (mis., menghapus skrip) sebelum parsing. +* Anda ingin menyimpan markup mentah dalam cache untuk penggunaan kembali nanti tanpa harus membaca ulang file. + +## Load html from url – mengambil halaman remote + +Memuat HTML langsung dari alamat web memperluas alur kerja ke konten langsung. Langkah **load html from url** mengandalkan pustaka `requests` untuk penanganan HTTP dan kemudian menyerahkan teks respons ke `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Mengapa ini berhasil:** +* `requests.get` mengikuti pengalihan dan menangani HTTPS secara otomatis. +* `response.raise_for_status()` memastikan hanya respons yang berhasil yang diparsing, mencegah kegagalan diam-diam. + +**Kasus tepi:** +* **Jaringan lambat** – Sesuaikan parameter `timeout` atau gunakan `requests.Session` untuk pooling koneksi. +* **Konten bukan HTML** – Verifikasi header `Content-Type` (`response.headers["Content-Type"]`) sebelum parsing. + +## Create htmldocument from string – bekerja dengan HTML mentah + +Terkadang Anda menghasilkan HTML secara dinamis (mis., dari mesin template) dan perlu memperlakukannya sebagai dokumen tanpa menulis ke disk. Operasi **create htmldocument from string** sangat sederhana. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Mengapa ini berguna:** +* Menghilangkan kebutuhan akan file sementara, yang meningkatkan kinerja di lingkungan serverless. +* Memungkinkan Anda memvalidasi markup yang dihasilkan sebelum mengirimnya ke klien atau menyimpannya. + +**Tips untuk penanganan string:** +* Gunakan string triple‑quoted untuk menjaga markup tetap terbaca. +* Jika HTML menyertakan karakter Unicode, pastikan file sumber disimpan dengan enkoding UTF‑8. + +## Full end‑to‑end example + +Menggabungkan keempat strategi pemuatan bersama-sama menunjukkan pipeline fleksibel yang dapat beralih antara sumber lokal, remote, dan dalam memori. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Apa yang diilustrasikan kode ini:** + +* Satu kelas `HTMLDocument` menangani semua tipe input, mengurangi area permukaan API. +* Fungsi pembantu membungkus penanganan error dan membuat kode pemanggil menjadi ringkas. +* Pola ini dapat diskalakan untuk pemrosesan batch: iterasi daftar jalur file atau URL dan beri setiap dokumen ke scraper atau transformer. + +## Conclusion + +Anda sekarang tahu cara **load html from file in Python** menggunakan kelas `HTMLDocument`, cara **read html file using + +## What Should You Learn Next? + +Tutorial berikut mencakup topik terkait erat yang membangun teknik yang ditunjukkan dalam panduan ini. Setiap sumber daya mencakup contoh kode lengkap yang berfungsi dengan penjelasan langkah demi langkah untuk membantu Anda menguasai fitur API tambahan dan mengeksplorasi pendekatan implementasi alternatif dalam proyek Anda sendiri. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/italian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..0c10ced8b --- /dev/null +++ b/html/italian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-08-12 +description: Converti HTML in Markdown usando Python. Impara un flusso di lavoro da + riga di comando per convertire pagine web in Markdown e automatizzare la documentazione. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: it +lastmod: 2026-08-12 +og_description: Converti HTML in Markdown usando Python. Questo tutorial ti mostra + una soluzione da riga di comando per convertire una pagina web in Markdown rapidamente + e in modo affidabile. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Converti HTML in Markdown con Python – guida passo passo +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Converti HTML in Markdown con Python – guida completa di programmazione +url: /it/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converti HTML in Markdown con Python – guida completa di programmazione + +Se hai bisogno di **convertire HTML in Markdown**, questa guida ti mostra una soluzione pronta all'uso. Vedrai come un breve script Python trasforma qualsiasi file HTML in Markdown pulito, compatibile con Git, e come puoi invocare la stessa logica dalla riga di comando. + +Convertire pagine web in Markdown è un passaggio comune quando si costruiscono siti di documentazione statici o si prepara contenuto per repository versionate. Alla fine di questo tutorial avrai a disposizione uno strumento da riga di comando riutilizzabile che gestisce la codifica HTML, preserva i link e rispetta le convenzioni di Markdown in stile Git. + +## Prerequisiti + +Prima di iniziare, assicurati di avere: + +* Python 3.9 o versioni successive installate sul tuo sistema. +* Il pacchetto Python `groupdocs-conversion` (o qualsiasi libreria che fornisca `HTMLDocument`, `MarkdownSaveOptions` e `Converter`). Installalo con: + +```bash +pip install groupdocs-conversion +``` + +* Una cartella che contiene il file sorgente `input.html` che desideri elaborare. + +Le sezioni seguenti illustrano passo passo ogni fase, spiegano perché è importante e ti forniscono il codice esatto di cui hai bisogno. + +## Passo 1: Configura l'ambiente + +Creare un ambiente virtuale isolato previene conflitti di dipendenze e rende lo strumento da riga di comando portabile. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Perché questo passo?* +Un ambiente virtuale isola il pacchetto `groupdocs-conversion` dagli altri progetti, garantendo che l'utilità **convert html to markdown command line** venga eseguita con le versioni esatte testate. + +## Passo 2: Scrivi lo script di conversione + +Crea un file chiamato `html_to_md.py` e incolla il codice seguente. Lo script accetta tre argomenti: il percorso del file HTML di input, il percorso del file Markdown di output e un flag opzionale per scegliere il formattatore in stile Git. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Spiegazione dello script + +| Sezione | Scopo | +|---------|-------| +| **Argument parsing** | Abilita il modello di utilizzo **convert html to markdown command line**. | +| **HTMLDocument** | Carica il file sorgente; la libreria astrae la codifica dei caratteri e l'analisi del DOM. | +| **MarkdownSaveOptions** | Consente di passare da Markdown semplice a Markdown in stile Git (`--git` flag). | +| **Converter.convert_html** | Esegue il lavoro pesante – percorre l'albero HTML, traduce i tag e scrive il file di output. | +| **Error handling** | Fornisce un messaggio chiaro di successo/fallimento, fondamentale per le pipeline CI. | + +## Passo 3: Esegui la conversione dalla riga di comando + +Una volta salvato lo script, puoi convertire qualsiasi file HTML con un unico comando: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Output previsto** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Apri `output.md` in un editor di testo; vedrai intestazioni, elenchi e link renderizzati in sintassi Markdown pulita. Poiché abbiamo usato il formattatore Git, le tabelle appaiono con delimitatori a pipe (`|`) e le liste di attività usano la sintassi `- [ ]`, che GitHub e GitLab interpretano nativamente. + +## Passo 4: Integra lo strumento nei pipeline di automazione + +Se gestisci la documentazione in un repository, puoi aggiungere il passo di conversione a un workflow CI. Di seguito un esempio per un job di GitHub Actions che viene eseguito ad ogni push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Perché è importante* – Automatizzare il passo **convert web page to markdown** garantisce che la tua documentazione rimanga sincronizzata con i file HTML sorgente senza intervento manuale. + +## Casi limite e consigli di buona pratica + +* **Problemi di codifica** – Se il tuo HTML contiene caratteri non UTF‑8, passa una codifica esplicita quando crei `HTMLDocument` (ad esempio, `HTMLDocument(input_path, encoding='utf-8')`). +* **File di grandi dimensioni** – Per file HTML più grandi di 50 MB, considera lo streaming della conversione per evitare picchi di memoria. La libreria fornisce un metodo `convert_html_stream` per questo scenario. +* **Gestione CSS personalizzata** – Il convertitore rimuove gli attributi di stile per impostazione predefinita. Se devi preservare formattazioni specifiche, abilita `md_opts.preserveFormatting = True`. +* **Scorciatoia da riga di comando** – Crea un piccolo script wrapper (`html2md`) che inoltra gli argomenti a `html_to_md.py`. Posizionalo in `$HOME/.local/bin` e aggiungilo al tuo `PATH` per un'esperienza ancora più breve con **convert html to markdown command line**. + +## Domande frequenti + +**Questo funziona su Windows, macOS e Linux?** +Sì. Lo script si basa solo sul pacchetto cross‑platform `groupdocs-conversion` e sulle librerie standard di Python, quindi funziona invariato su tutti e tre i sistemi operativi. + +**Posso convertire direttamente una pagina web remota?** +Puoi recuperare la pagina con `requests` e passare la stringa HTML a `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**E se ho bisogno solo di HTML → GitHub‑flavored Markdown?** +Basta passare sempre il flag `--git`; il formattatore produce un output compatibile con GitHub, GitLab e Bitbucket. + +## Conclusione + +Ora disponi di una soluzione robusta per **convertire HTML in Markdown** che funziona sia da script Python sia da riga di comando. Il tutorial ha coperto la configurazione dell'ambiente, il codice completo, l'uso da terminale, l'integrazione CI e la gestione pratica dei casi limite. + +Successivamente, potresti esplorare **convertire markdown in HTML**, sperimentare con Pandoc per opzioni di conversione avanzate, o aggiungere un generatore di front‑matter per incorporare metadati direttamente nei file Markdown. Ognuna di queste estensioni si basa sui concetti fondamentali che hai appena appreso. + +Buona conversione! + +## Cosa dovresti imparare dopo? + +I tutorial seguenti trattano argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e spiegazioni passo passo per aiutarti a padroneggiare ulteriori funzionalità API ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Converti HTML in Markdown con Aspose.HTML per Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Converti HTML in Markdown in .NET con Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/italian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..1061a025d --- /dev/null +++ b/html/italian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Converti HTML in PDF in Python usando GroupDocs.Viewer. Scopri come salvare + HTML come PDF con opzioni flessibili di conversione da HTML a PDF per un controllo + preciso. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: it +lastmod: 2026-08-12 +og_description: Converti HTML in PDF con GroupDocs.Viewer. Questa guida ti mostra + come salvare HTML come PDF, configurare le opzioni da HTML a PDF e gestire documenti + di grandi dimensioni in modo affidabile. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Converti HTML in PDF – tutorial Python passo passo +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Converti HTML in PDF con Python – guida completa di programmazione +url: /it/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converti HTML in PDF con Python – guida completa di programmazione + +Se hai bisogno di **convertire HTML in PDF** in un progetto Python, questa guida ti mostra una soluzione pronta all'uso. Ti guideremo attraverso l'installazione della libreria viewer, la configurazione delle **html to pdf options**, e infine **save HTML as PDF** con poche righe di codice. + +La conversione di documenti HTML spesso comporta la gestione di risorse collegate come immagini, CSS o JavaScript. Alla fine di questo tutorial comprenderai come limitare l'annidamento delle risorse, evitare picchi di memoria e produrre un file PDF pulito che corrisponde al layout originale della pagina. + +## Prerequisiti + +- Python 3.8 o versioni successive +- `pip` (gestore di pacchetti Python) +- Accesso al file HTML che desideri convertire (ad esempio `large_page.html`) + +Non sono richieste librerie di sistema aggiuntive perché GroupDocs.Viewer include tutti i motori di rendering necessari. + +## Passo 1: Installa GroupDocs.Viewer per Python + +GroupDocs.Viewer fornisce conversioni ad alta fedeltà da molti formati, incluso HTML, a PDF. Installalo con: + +```bash +pip install groupdocs-viewer +``` + +> **Suggerimento:** Usa un ambiente virtuale (`python -m venv .venv`) per mantenere le dipendenze isolate da altri progetti. + +## Passo 2: Configura le **html to pdf options** – limita la profondità di annidamento delle risorse + +Le pagine HTML di grandi dimensioni possono contenere risorse profondamente annidate (iframe, import di CSS, ecc.). Impostare una profondità massima di gestione impedisce al convertitore di ricorsivamente elaborare all'infinito e mantiene prevedibile l'uso della memoria. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +La proprietà `max_handling_depth` indica al viewer quanti livelli di risorse collegate deve seguire. Una profondità di `3` funziona bene per la maggior parte delle pagine web mantenendo comunque le immagini e gli stili necessari. + +## Passo 3: Carica il documento HTML che desideri **convertire HTML in PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` astrae il rilevamento del formato file, quindi non è necessario istanziare manualmente `HtmlDocument`. Questo passaggio prepara la rappresentazione interna con cui il convertitore lavorerà. + +## Passo 4: **Salva HTML come PDF** usando le **html to pdf options** configurate + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +L'oggetto `PdfSaveOptions` raggruppa tutte le impostazioni specifiche per PDF, inclusa la `resource_handling_options` definita in precedenza. Quando viene eseguito `viewer.save`, la pagina HTML viene renderizzata, le risorse vengono elaborate fino alla profondità consentita e il PDF finale viene scritto in `output_path`. + +### Risultato atteso + +Al termine dello script, `output.pdf` contiene una fedele rappresentazione di `large_page.html`. Apri il PDF con qualsiasi visualizzatore (Adobe Reader, Chrome, ecc.) e verifica che: + +- Le immagini, le tabelle e gli stili CSS di base vengano visualizzati correttamente. +- Non ci siano pagine vuote inattese causate da una ricorsione profonda delle risorse. + +## Gestione dei casi limite e variazioni comuni + +| Situazione | Modifica consigliata | +|-----------|-------------------| +| **HTML contiene font esterni** | Aggiungi `pdf_options.embed_all_fonts = True` per garantire che i font siano incorporati nel PDF. | +| **Hai bisogno di una dimensione di pagina specifica** | Imposta `pdf_options.page_width` e `pdf_options.page_height` (ad esempio, A4: `595, 842`). | +| **File di grandi dimensioni causano errori di out‑of‑memory** | Riduci `resource_options.max_handling_depth` o suddividi l'HTML in frammenti più piccoli e converti ciascuno separatamente. | +| **Vuoi proteggere con password il PDF** | Usa `pdf_options.password = "YourSecret"` prima di chiamare `save`. | + +Queste modifiche illustrano la flessibilità delle **html to pdf options** e mostrano come puoi personalizzare la conversione in base alle tue esigenze precise. + +## Script completo da copiare‑incollare + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Esegui lo script: + +```bash +python convert_html_to_pdf.py +``` + +Dovresti vedere il messaggio di conferma e trovare `output.pdf` nella directory specificata. + +## Domande frequenti + +**D: Questo funziona con URL remoti invece di file locali?** +R: Sì. Passa la stringa URL a `Viewer` (ad esempio `Viewer("https://example.com/page.html")`). Il viewer scaricherà la pagina prima di applicare le **html to pdf options**. + +**D: Posso convertire più file HTML in batch?** +R: Avvolgi il codice di conversione in un ciclo che itera su una lista di percorsi file. Riutilizza gli stessi oggetti `resource_options` e `pdf_options` per efficienza. + +**D: Cosa succede se l'HTML utilizza JavaScript per modificare il DOM?** +R: GroupDocs.Viewer rende l'HTML statico; non **esegue** JavaScript. Per pagine dinamiche, rendi la pagina in un browser headless (ad esempio Selenium) prima, quindi fornisci l'HTML statico risultante al convertitore. + +## Conclusione + +Ora disponi di un metodo completo, pronto per la produzione, per **convertire HTML in PDF** in Python. Configurando **resource handling** controlli quanto in profondità vengano elaborate le risorse collegate, e il `PdfSaveOptions` ti permette di **salvare HTML come PDF** con **html to pdf options** dettagliate. Sperimenta con le impostazioni opzionali — come l'incorporamento dei font o la dimensione della pagina — per soddisfare esattamente le esigenze della tua applicazione. + +--- + +*Passi successivi*: esplora **save HTML document pdf** con protezione password, o integra questa conversione in un'API web usando Flask o FastAPI per la generazione di PDF su richiesta. + +## Cosa dovresti imparare dopo? + +I seguenti tutorial coprono argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Come convertire HTML in PDF Java – Usando Aspose.HTML per Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Converti HTML in PDF Java – Configurazione dell'ambiente in Aspose.HTML](/html/english/java/configuring-environment/) +- [Converti HTML in PDF – Esecuzione di richieste web in Aspose.HTML per Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/italian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..4ff4a8f29 --- /dev/null +++ b/html/italian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,345 @@ +--- +category: general +date: 2026-08-12 +description: Converti HTML in PDF in Python con Aspose HTML Converter. Scopri come + generare PDF da HTML e come convertire EPUB in PDF con poche righe di codice. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: it +lastmod: 2026-08-12 +og_description: Converti HTML in PDF in Python usando Aspose HTML Converter. Questo + tutorial mostra come generare PDF da HTML e come convertire EPUB in PDF con codice + chiaro e eseguibile. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Converti HTML in PDF in Python con Aspose HTML Converter – guida rapida +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Converti HTML in PDF in Python usando Aspose HTML Converter +url: /it/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertire HTML in PDF in Python con Aspose HTML Converter + +Se hai bisogno di **convertire HTML in PDF** rapidamente, questa guida ti mostra esattamente come farlo con la libreria Aspose.HTML per Python. Che tu stia costruendo un servizio web che trasforma pagine inviate dagli utenti in PDF stampabili o automatizzando la generazione di report, i passaggi seguenti ti forniscono una soluzione completa, pronta all'uso. + +Oltre a HTML, Aspose.HTML gestisce anche i formati di e‑book, quindi vedrai **come convertire file EPUB** in PDF senza uscire da Python. Alla fine di questo tutorial sarai in grado di **generare PDF da HTML** e creare versioni PDF di e‑book EPUB in poche righe di codice. + +## Prerequisiti + +Prima di iniziare, assicurati di avere: + +* Python 3.8 o versioni successive installate. +* Una licenza attiva di Aspose.HTML per Python (la versione di prova gratuita è valida per la valutazione). +* Accesso a `pip` per installare il pacchetto `aspose-html`. +* File HTML o EPUB di esempio che desideri convertire. + +```bash +pip install aspose-html +``` + +> **Suggerimento:** Installa il pacchetto all'interno di un ambiente virtuale per mantenere le dipendenze isolate. + +## Panoramica del processo di conversione + +Aspose.HTML fornisce una singola classe `Converter` che astrae i dettagli del rendering di HTML, CSS e contenuti di e‑book in PDF. Il flusso di lavoro è: + +1. Importare la classe `Converter`. +2. Chiamare `Converter.convert(source_path, target_path)`. +3. (Opzionale) Regolare le impostazioni di conversione come dimensione della pagina o incorporamento dei font. + +La libreria rileva automaticamente il formato di origine in base all'estensione del file, quindi lo stesso metodo funziona sia per file HTML che EPUB. + +--- + +## Convertire HTML in PDF con Aspose HTML Converter + +### Passo 1: Importare il modulo di conversione Aspose HTML + +La classe `Converter` si trova nello spazio dei nomi `aspose.html`. Importala all'inizio del tuo script. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Passo 2: Preparare i percorsi di input e output + +Usa percorsi assoluti o relativi che il tuo script possa leggere/scrivere. È buona pratica verificare che il file di origine esista prima di tentare la conversione. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Passo 3: Eseguire la conversione + +Chiamare `Converter.convert` esegue tutto il lavoro pesante: rendering dell'HTML, applicazione del CSS e scrittura del file PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Perché funziona + +* **Motore di layout automatico** – Aspose.HTML utilizza un motore di rendering basato su Chromium, garantendo che CSS, SVG e JavaScript moderni vengano gestiti correttamente. +* **Nessun file intermedio** – La conversione avviene in memoria, riducendo il carico I/O e accelerando l'elaborazione batch. + +### Output previsto + +Dopo aver eseguito lo script, `output.pdf` conterrà una rappresentazione fedele di `input.html`. Aprilo con qualsiasi visualizzatore PDF per verificare che font, immagini e interruzioni di pagina corrispondano alla pagina web originale. + +![Diagramma di conversione](https://example.com/conversion-diagram.png "Diagramma che mostra la conversione di file HTML ed EPUB in PDF usando Aspose HTML Converter") + +*(Testo alternativo immagine: Diagramma che mostra la conversione di file HTML ed EPUB in PDF usando Aspose HTML Converter)* + +--- + +## Generare PDF da HTML con impostazioni personalizzate + +A volte è necessario controllare dimensione della pagina, margini o incorporare font specifici. Aspose.HTML espone una classe `PdfSaveOptions` a tal fine. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*L'oggetto `options` è opzionale; omettilo se sei soddisfatto del layout predefinito.* + +--- + +## Come convertire EPUB in PDF in Python + +### Passo 1: Individuare la sorgente EPUB + +Come per l'HTML, fornisci il percorso al file EPUB che desideri trasformare. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Passo 2: Eseguire la conversione + +Il medesimo metodo `Converter.convert` rileva l'estensione `.epub` e passa alla pipeline di rendering per e‑book. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Casi particolari da considerare + +| Situazione | Gestione consigliata | +|----------------------------------------|----------------------| +| EPUB di grandi dimensioni (centinaia di capitoli) | Convertire a blocchi usando `PdfSaveOptions.start_page` e `end_page` per limitare l'uso di memoria. | +| Font mancanti nell'EPUB | Impostare `PdfSaveOptions.embed_standard_fonts = True` per ricorrere ai font di sistema. | +| EPUB protetto da password | Utilizzare `PdfLoadOptions` per fornire la password prima della conversione (non mostrato qui). | + +--- + +## Esempio completo, eseguibile + +Di seguito trovi uno script unico che combina tutti i passaggi descritti. Salvalo come `convert_demo.py` ed eseguilo dalla riga di comando. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Esegui lo script: + +```bash +python convert_demo.py +``` + +Dovresti vedere tre messaggi di conferma e tre file PDF nella cartella `YOUR_DIRECTORY`. + +--- + +## Problemi comuni e come evitarli + +* **Licenza mancante** – Senza una licenza valida di Aspose.HTML, la libreria aggiunge una filigrana a ogni pagina. Registra la licenza all'inizio dello script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Percorsi relativi su OS diversi** – Usa `os.path.join` e `os.path.abspath` per costruire percorsi indipendenti dalla piattaforma. + +* **HTML di grandi dimensioni con risorse esterne** – Assicurati che tutti CSS, immagini e font siano raggiungibili dal file system o incorporali usando data URI. Altrimenti il PDF potrebbe mostrare segnaposti vuoti. + +* **Sicurezza dei thread** – `Converter.convert` è thread‑safe, ma creare molti converter contemporaneamente può consumare molta memoria. Riutilizza un'unica istanza del converter se devi elaborare centinaia di file in parallelo. + +--- + +## Conclusione + +Ora disponi di un approccio completo e pronto per la produzione per **convertire HTML in PDF** e **convertire file EPUB** in PDF in Python usando l'**Aspose HTML Converter**. Il tutorial ha coperto: + +* Importazione del modulo corretto. +* Validazione dei file di input. +* Esecuzione di una conversione di base. +* Personalizzazione dell'output PDF con `PdfSaveOptions`. +* Gestione di EPUB di grandi dimensioni o protetti da password. + +Da qui puoi estendere la soluzione per elaborare batch di cartelle, integrare il codice in un endpoint Flask o FastAPI, o sperimentare formati di output aggiuntivi come DOCX o PNG (Aspose.HTML supporta anche questi). + +--- + +### Prossimi passi + +* Esplora **generare PDF da HTML** con pagine guidate da JavaScript attivando `Converter.convert` con una sessione di browser headless. +* Combina questo flusso di lavoro con **Aspose.PDF** per attività di post‑processing come l'unione di più PDF o l'aggiunta di firme digitali. +* Dai un'occhiata alle opzioni avanzate di **aspose-html-converter** come `PdfSaveOptions.jpeg_quality` per documenti ricchi di immagini. + +Buona programmazione e goditi l'affidabilità di Aspose.HTML per tutte le tue esigenze di conversione documenti! + +## Cosa dovresti imparare dopo? + + +I tutorial seguenti trattano argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Convertire HTML in PDF con Aspose.HTML – Guida completa alla manipolazione](/html/english/) +- [Convertire EPUB in PDF in .NET con Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/italian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..0bcc9e5ae --- /dev/null +++ b/html/italian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Carica HTML da file in Python rapidamente. Scopri come leggere un file + HTML usando Python, caricare HTML da URL e creare un htmldocument da una stringa + in un unico tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: it +lastmod: 2026-08-12 +og_description: Carica HTML da file in Python usando la classe HTMLDocument. Segui + questa guida per leggere un file HTML con Python, caricare HTML da URL e creare + un HTMLDocument da una stringa per una gestione robusta dei contenuti web. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Carica HTML da file in Python – guida rapida di programmazione +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Carica HTML da file in Python – guida passo passo +url: /it/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Carica html da file in Python – guida passo‑passo + +Se hai bisogno di **load html from file in Python**, questa guida ti mostra esattamente come. Imparerai anche come **read html file using python**, caricare html da url e **create htmldocument from string** così potrai gestire qualsiasi fonte di contenuto HTML. + +Gli esempi usano la classe `HTMLDocument` del pacchetto `html_document`, che fornisce un'API unificata per file locali, URL remoti e stringhe HTML grezze. L'approccio funziona con Python 3.8+ e si integra perfettamente con le librerie standard come `pathlib` e `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Carica html da file in Python – esempio base + +Caricare un file HTML dal filesystem locale è il primo passo più comune quando si elaborano pagine statiche. Il costruttore `HTMLDocument` accetta un percorso file, rileva automaticamente la codifica del file e analizza il markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Perché funziona:** +* `Path` astrae i separatori di percorso specifici del sistema operativo, rendendo il codice portabile su Windows, macOS e Linux. +* `HTMLDocument` legge il file in modalità binaria, rileva BOM UTF‑8 o UTF‑16 e ricade nella codifica predefinita del sistema quando necessario. + +**Output previsto (supponendo che l'HTML contenga `Example`):** + +``` +Title: Example +``` + +### Problemi comuni durante il caricamento di un file + +* **FileNotFoundError** – Assicurati che il percorso sia corretto e che il file esista. Usa `file_path.is_file()` per un controllo preliminare. +* **Encoding errors** – Se la pagina utilizza una codifica non UTF‑8, passa `encoding="iso-8859-1"` al costruttore: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Leggi file html usando python – spiegazione dettagliata + +La frase **read html file using python** appare spesso quando gli sviluppatori devono estrarre dati da pagine web salvate. Sebbene `HTMLDocument` astra la maggior parte del lavoro, è possibile caricare testo grezzo e passarne al parser manualmente. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Perché potresti scegliere questa strada:** +* Hai bisogno di pre‑elaborare l'HTML (ad esempio, rimuovere gli script) prima del parsing. +* Vuoi memorizzare nella cache il markup grezzo per riutilizzarlo in seguito senza rileggere il file. + +## Carica html da url – recupero di pagine remote + +Caricare HTML direttamente da un indirizzo web espande il flusso di lavoro verso contenuti live. Il passaggio **load html from url** si basa sulla libreria `requests` per la gestione HTTP e poi passa il testo della risposta a `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Perché funziona:** +* `requests.get` segue i redirect e gestisce HTTPS senza configurazioni aggiuntive. +* `response.raise_for_status()` garantisce che vengano analizzate solo risposte di successo, evitando fallimenti silenziosi. + +**Casi limite:** +* **Slow network** – Regola il parametro `timeout` o usa `requests.Session` per il pooling delle connessioni. +* **Non‑HTML content** – Verifica l'intestazione `Content-Type` (`response.headers["Content-Type"]`) prima del parsing. + +## Crea htmldocument da stringa – lavorare con HTML grezzo + +A volte generi HTML dinamicamente (ad esempio, da un motore di template) e devi trattarlo come un documento senza scriverlo su disco. L'operazione **create htmldocument from string** è semplice. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Perché è utile:** +* Elimina la necessità di file temporanei, migliorando le prestazioni negli ambienti serverless. +* Ti consente di convalidare il markup generato prima di inviarlo a un client o di archiviarlo. + +**Suggerimenti per la gestione delle stringhe:** +* Usa stringhe triple‑quote per mantenere il markup leggibile. +* Se l'HTML include caratteri Unicode, assicurati che il file sorgente sia salvato con codifica UTF‑8. + +## Esempio completo end‑to‑end + +Combinare tutte e quattro le strategie di caricamento dimostra una pipeline flessibile che può passare tra fonti locali, remote e in‑memoria. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Cosa illustra questo codice:** + +* Una singola classe `HTMLDocument` gestisce tutti i tipi di input, riducendo la superficie dell'API. +* Le funzioni di supporto incapsulano la gestione degli errori e rendono il codice chiamante conciso. +* Il pattern scala al processamento batch: itera su una lista di percorsi file o URL e passa ogni documento a uno scraper o a un trasformatore. + +## Conclusione + +Ora sai come **load html from file in Python** usando la classe `HTMLDocument`, come **read html file using + +## Cosa dovresti imparare dopo? + +I seguenti tutorial coprono argomenti strettamente correlati che si basano sulle tecniche dimostrate in questa guida. Ogni risorsa include esempi di codice completi e funzionanti con spiegazioni passo‑passo per aiutarti a padroneggiare funzionalità API aggiuntive ed esplorare approcci di implementazione alternativi nei tuoi progetti. + +- [Carica documenti HTML da URL in Aspose.HTML per Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Carica documenti HTML da Stream con Aspose.HTML per Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Salva documento HTML su file in Aspose.HTML per Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/japanese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..25d9272fc --- /dev/null +++ b/html/japanese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-08-12 +description: Python を使って HTML を Markdown に変換します。コマンドラインのワークフローを学び、ウェブページを Markdown + に変換してドキュメント作成を自動化しましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: ja +lastmod: 2026-08-12 +og_description: Pythonを使用してHTMLをMarkdownに変換します。このチュートリアルでは、ウェブページを迅速かつ確実にMarkdownに変換するコマンドラインソリューションを紹介します。 +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: PythonでHTMLをMarkdownに変換する – ステップバイステップガイド +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: PythonでHTMLをMarkdownに変換する – 完全プログラミングガイド +url: /ja/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PythonでHTMLをMarkdownに変換 – 完全プログラミングガイド + +HTMLをMarkdownに変換する必要がある場合、このガイドではすぐに実行できるソリューションを示します。短いPythonスクリプトが任意のHTMLファイルをクリーンなGitフレーバーのMarkdownに変換する様子と、同じロジックをコマンドラインから呼び出す方法が分かります。 + +WebページをMarkdownに変換することは、静的ドキュメンテーションサイトを構築したり、バージョン管理リポジトリ用にコンテンツを準備したりする際の一般的なステップです。このチュートリアルの最後までに、HTMLエンコーディングを処理し、リンクを保持し、GitフレーバーのMarkdown規約に従う再利用可能なコマンドラインツールを手に入れることができます。 + +## 前提条件 + +開始する前に、以下が揃っていることを確認してください。 + +* システムに Python 3.9 以上がインストールされていること。 +* `groupdocs-conversion` Python パッケージ(または `HTMLDocument`、`MarkdownSaveOptions`、`Converter` を提供する任意のライブラリ)。以下でインストールします: + +```bash +pip install groupdocs-conversion +``` + +* 処理したい `input.html` ソースファイルが入っているフォルダー。 + +以下のセクションでは各ステップを順に解説し、重要性を説明し、必要なコードを正確に提供します。 + +## 手順 1: 環境のセットアップ + +分離された仮想環境を作成することで、依存関係の衝突を防ぎ、コマンドラインツールをポータブルにします。 + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*このステップの理由は?* +仮想環境は `groupdocs-conversion` パッケージを他のプロジェクトから分離し、テストした正確なバージョンで **convert html to markdown command line** ユーティリティが実行されることを保証します。 + +## 手順 2: 変換スクリプトの作成 + +`html_to_md.py` という名前のファイルを作成し、以下のコードを貼り付けます。このスクリプトは 3 つの引数を受け取ります:入力 HTML のパス、出力 Markdown のパス、そして Git フレーバーのフォーマッタを選択するオプションフラグです。 + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### スクリプトの説明 + +| セクション | 目的 | +|------------|------| +| **Argument parsing** | **convert html to markdown command line** の使用パターンを可能にします。 | +| **HTMLDocument** | ソースファイルを読み込みます。ライブラリは文字エンコーディングと DOM パースを抽象化します。 | +| **MarkdownSaveOptions** | プレーンと Git フレーバーの Markdown(`--git` フラグ)を切り替えることができます。 | +| **Converter.convert_html** | 本処理を実行します。HTML ツリーを走査し、タグを変換し、出力ファイルを書き込みます。 | +| **Error handling** | CI パイプラインで重要な、成功/失敗の明確なメッセージを提供します。 | + +## 手順 3: コマンドラインから変換を実行 + +スクリプトを保存したら、以下のコマンド一つで任意の HTML ファイルを変換できます: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**期待される出力** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +テキストエディタで `output.md` を開くと、見出し、リスト、リンクがクリーンな Markdown 構文で表示されます。Git フォーマッタを使用したため、テーブルはパイプ (`|`) 区切りで表示され、タスクリストは `- [ ]` 構文になり、GitHub や GitLab がネイティブにレンダリングします。 + +## 手順 4: ツールを自動化パイプラインに統合 + +リポジトリでドキュメントを管理している場合、変換ステップを CI ワークフローに追加できます。以下は、プッシュごとに実行される GitHub Actions ジョブの例です: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*この重要性* – **convert web page to markdown** ステップを自動化することで、手作業なしでドキュメントがソース HTML ファイルと同期し続けることが保証されます。 + +## エッジケースとベストプラクティスのヒント + +* **Encoding problems** – HTML に非 UTF‑8 文字が含まれる場合、`HTMLDocument` 作成時に明示的なエンコーディングを指定してください(例: `HTMLDocument(input_path, encoding='utf-8')`)。 +* **Large files** – 50 MB を超える HTML ファイルの場合、メモリスパイクを防ぐためにストリーミング変換を検討してください。ライブラリはこのシナリオ向けに `convert_html_stream` メソッドを提供しています。 +* **Custom CSS handling** – デフォルトでコンバータは style 属性を除去します。特定の書式を保持したい場合は `md_opts.preserveFormatting = True` を有効にしてください。 +* **Command‑line shortcut** – 小さなラッパースクリプト(`html2md`)を作成し、引数を `html_to_md.py` に転送します。`$HOME/.local/bin` に配置し、`PATH` に追加すれば、さらに短い **convert html to markdown command line** 体験が得られます。 + +## よくある質問 + +**Does this work on Windows, macOS, and Linux?** +はい。このスクリプトはクロスプラットフォームな `groupdocs-conversion` パッケージと標準の Python ライブラリのみを使用しているため、3 つの OS すべてで変更なしに動作します。 + +**Can I convert a remote web page directly?** +`requests` でページを取得し、HTML 文字列を `HTMLDocument` に渡すことができます: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**What if I need HTML → GitHub‑flavored Markdown only?** +常に `--git` フラグを渡すだけで、フォーマッタは GitHub、GitLab、Bitbucket に対応した出力を生成します。 + +## 結論 + +これで、Python スクリプトおよびコマンドラインから実行できる堅牢な **convert HTML to Markdown** ソリューションが手に入りました。本チュートリアルでは環境設定、完全なソースコード、コマンドライン使用法、CI 統合、実用的なエッジケース処理を網羅しました。 + +次のステップとして、**convert markdown to HTML** を探求したり、Pandoc を使って高度な変換オプションを試したり、フロントマター生成器を追加してメタデータを Markdown ファイルに直接埋め込んだりできます。これらの拡張は、ここで習得したコア概念を基に構築できます。 + +変換を楽しんでください! + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示した手法を基にした密接に関連するトピックをカバーしています。各リソースには、完全な動作コード例とステップバイステップの解説が含まれており、追加の API 機能を習得し、独自プロジェクトで代替実装アプローチを探求するのに役立ちます。 + +- [Java向け Aspose.HTMLでHTMLをMarkdownに変換](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [.NETでAspose.HTMLを使用してHTMLをMarkdownに変換](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/japanese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..1e7bb9467 --- /dev/null +++ b/html/japanese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-08-12 +description: GroupDocs.Viewer を使用して Python で HTML を PDF に変換します。柔軟な HTML から PDF へのオプションで正確に制御しながら、HTML + を PDF として保存する方法を学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: ja +lastmod: 2026-08-12 +og_description: GroupDocs.ViewerでHTMLをPDFに変換します。このガイドでは、HTMLをPDFとして保存する方法、HTMLからPDFへのオプションを設定する方法、そして大容量のドキュメントを確実に処理する方法を示します。 +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTMLをPDFに変換 – ステップバイステップPythonチュートリアル +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: PythonでHTMLをPDFに変換する – 完全プログラミングガイド +url: /ja/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PythonでHTMLをPDFに変換する – 完全プログラミングガイド + +Pythonプロジェクトで **HTMLをPDFに変換** する必要がある場合、このガイドではすぐに実行できるソリューションを示します。ビューアライブラリのインストール、**html to pdf options** の設定、そして最終的に **save HTML as PDF** を数行のコードで行う手順を解説します。 + +HTMLドキュメントの変換では、画像、CSS、JavaScript などのリンクされたリソースを扱う必要があることが多いです。このチュートリアルの最後までに、リソースのネストを制限し、メモリ使用量の急増を防ぎ、元のページレイアウトと一致するクリーンな PDF ファイルを生成する方法が理解できるようになります。 + +## 前提条件 + +- Python 3.8 以上 +- `pip`(Python パッケージインストーラ) +- 変換したい HTML ファイルへのアクセス(例: `large_page.html`) + +GroupDocs.Viewer がすべての必要なレンダリングエンジンをバンドルしているため、追加のシステムライブラリは必要ありません。 + +## Step 1: GroupDocs.Viewer for Python をインストール + +GroupDocs.Viewer は HTML を含む多数のフォーマットから PDF への高忠実度変換を提供します。以下のコマンドでインストールします。 + +```bash +pip install groupdocs-viewer +``` + +> **Pro tip:** 仮想環境(`python -m venv .venv`)を使用して、依存関係を他のプロジェクトから分離してください。 + +## Step 2: **html to pdf options** を設定 – リソースのネスト深さを制限 + +大規模な HTML ページには、iframe や CSS インポートなど、深くネストされたリソースが含まれることがあります。最大ハンドリング深度を設定することで、コンバータが無限に再帰するのを防ぎ、メモリ使用量を予測可能に保ちます。 + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth` プロパティは、ビューアが追従すべきリンクされたリソースの階層数を指定します。深さ `3` は、ほとんどのウェブページで必要な画像やスタイルを保持しつつ、うまく機能します。 + +## Step 3: **convert HTML to PDF** したい HTML ドキュメントをロード + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` はファイル形式の検出を抽象化するため、`HtmlDocument` を手動でインスタンス化する必要はありません。このステップは、コンバータが使用する内部表現を準備します。 + +## Step 4: 設定した **html to pdf options** を使用して **Save HTML as PDF** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions` オブジェクトは、先ほど定義した `resource_handling_options` を含む、PDF 固有のすべての設定をまとめます。`viewer.save` が実行されると、HTML ページがレンダリングされ、リソースは許容された深さまで処理され、最終的な PDF が `output_path` に書き込まれます。 + +### 期待される結果 + +スクリプトが完了すると、`output.pdf` は `large_page.html` の忠実な再現を含みます。任意のビューア(Adobe Reader、Chrome など)で PDF を開き、以下を確認してください。 + +- 画像、テーブル、基本的な CSS スタイルが正しく表示される。 +- 深いリソースの再帰による予期しない空白ページがない。 + +## エッジケースと一般的なバリエーションの処理 + +| Situation | Recommended tweak | +|-----------|-------------------| +| **HTML に外部フォントが含まれる** | `pdf_options.embed_all_fonts = True` を追加して、フォントが PDF に埋め込まれるようにします。 | +| **特定のページサイズが必要** | `pdf_options.page_width` と `pdf_options.page_height` を設定します(例: A4 は `595, 842`)。 | +| **大きなファイルでメモリ不足エラーが発生** | `resource_options.max_handling_depth` を減らすか、HTML を小さなフラグメントに分割して個別に変換します。 | +| **PDF にパスワード保護を付けたい** | `save` を呼び出す前に `pdf_options.password = "YourSecret"` を使用します。 | + +これらの調整は **html to pdf options** の柔軟性を示し、変換を正確な要件に合わせてカスタマイズできることを示しています。 + +## コピー&ペースト可能な完全スクリプト + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Run the script: + +```bash +python convert_html_to_pdf.py +``` + +確認メッセージが表示され、指定ディレクトリに `output.pdf` が作成されているはずです。 + +## よくある質問 + +**Q: ローカルファイルではなくリモート URL でも動作しますか?** +A: はい。URL 文字列を `Viewer` に渡します(例: `Viewer("https://example.com/page.html")`)。ビューアは **html to pdf options** を適用する前にページをダウンロードします。 + +**Q: 複数の HTML ファイルをバッチで変換できますか?** +A: 変換コードをファイルパスのリストを反復するループでラップします。効率のために同じ `resource_options` と `pdf_options` オブジェクトを再利用します。 + +**Q: HTML が JavaScript で DOM を変更する場合はどうなりますか?** +A: GroupDocs.Viewer は静的 HTML をレンダリングするだけで、JavaScript は **実行しません**。動的ページの場合は、まずヘッドレスブラウザ(例: Selenium)でページをレンダリングし、得られた静的 HTML をコンバータに渡してください。 + +## 結論 + +これで、Python で **HTML を PDF に変換** するための完全な本番環境向けメソッドが手に入りました。**resource handling** を設定することでリンクされたリソースの処理深度を制御でき、`PdfSaveOptions` を使用すれば細かい **html to pdf options** で **save HTML as PDF** が可能です。フォント埋め込みやページサイズ設定などのオプション設定を試して、アプリケーションの正確な要件に合わせてください。 + +--- + +*Next steps*: パスワード保護付き **save HTML document pdf** を調査するか、Flask や FastAPI を使用してオンデマンド PDF 生成の Web API にこの変換を統合してください。 + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示した手法に基づく密接に関連するトピックを取り上げています。各リソースには、ステップバイステップの解説と完全な動作コード例が含まれており、追加の API 機能を習得し、プロジェクトで代替実装アプローチを検討するのに役立ちます。 + +- [HTML を PDF に変換する方法(Java) – Aspose.HTML for Java を使用](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [HTML を PDF に変換(Java) – Aspose.HTML の環境設定](/html/english/java/configuring-environment/) +- [HTML を PDF に変換 – Aspose.HTML for Java の Web リクエスト実行](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/japanese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..a57671421 --- /dev/null +++ b/html/japanese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,343 @@ +--- +category: general +date: 2026-08-12 +description: Aspose HTML Converter を使用して Python で HTML を PDF に変換します。HTML から PDF を生成する方法と、EPUB + を PDF に変換する方法を、数行のコードで学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: ja +lastmod: 2026-08-12 +og_description: Aspose HTML Converter を使用して Python で HTML を PDF に変換します。このチュートリアルでは、HTML + から PDF を生成する方法と、EPUB を PDF に変換する方法を、明確で実行可能なコードとともに示します。 +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Aspose HTML Converter を使用した Python での HTML から PDF への変換 – クイックガイド +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Aspose HTML Converter を使用して Python で HTML を PDF に変換する +url: /ja/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python で Aspose HTML Converter を使用して HTML を PDF に変換する + +HTML を **PDF に変換**したい場合、このガイドでは Aspose.HTML Python ライブラリを使った具体的な手順を示します。ユーザーが投稿したページを印刷可能な PDF に変換するウェブサービスを構築する場合や、レポート生成を自動化する場合でも、以下の手順で即座に実行可能なソリューションが得られます。 + +HTML に加えて、Aspose.HTML は電子書籍フォーマットも扱えるため、**EPUB ファイルを PDF に変換**する方法も紹介します。このチュートリアルの最後までに、**HTML から PDF を生成**し、数行のコードで EPUB 電子書籍の PDF バージョンを作成できるようになります。 + +## 前提条件 + +開始する前に、以下を確認してください。 + +* Python 3.8 以上がインストールされていること。 +* 有効な Aspose.HTML for Python ライセンス(評価用の無料トライアルでも可)。 +* `aspose-html` パッケージをインストールできる `pip` 環境。 +* 変換したいサンプルの HTML または EPUB ファイル。 + +```bash +pip install aspose-html +``` + +> **プロのコツ:** 依存関係を分離するために、仮想環境内でパッケージをインストールしてください。 + +## 変換プロセスの概要 + +Aspose.HTML は、HTML、CSS、電子書籍コンテンツを PDF にレンダリングする詳細を抽象化した単一の `Converter` クラスを提供します。ワークフローは次のとおりです。 + +1. `Converter` クラスをインポートする。 +2. `Converter.convert(source_path, target_path)` を呼び出す。 +3. (オプション)ページサイズやフォント埋め込みなどの変換設定を調整する。 + +ライブラリはファイル拡張子に基づいてソース形式を自動検出するため、HTML と EPUB の両方で同じメソッドが使用できます。 + +--- + +## Aspose HTML Converter で HTML を PDF に変換する + +### 手順 1: Aspose HTML 変換モジュールをインポート + +`Converter` クラスは `aspose.html` 名前空間にあります。スクリプトの先頭でインポートします。 + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### 手順 2: 入出力パスを準備 + +スクリプトが読み書きできる絶対パスまたは相対パスを使用します。変換を試みる前に、ソースファイルが存在することを検証するのがベストプラクティスです。 + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### 手順 3: 変換を実行 + +`Converter.convert` を呼び出すだけで、HTML のレンダリング、CSS の適用、PDF ファイルの書き出しという重い処理がすべて行われます。 + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### これが機能する理由 + +* **自動レイアウトエンジン** – Aspose.HTML は Chromium ベースのレンダリングエンジンを使用しており、最新の CSS、SVG、JavaScript を正しく処理します。 +* **中間ファイル不要** – 変換はメモリ上で完結するため、I/O のオーバーヘッドが減少し、バッチ処理が高速化します。 + +### 期待される出力 + +スクリプト実行後、`output.pdf` には `input.html` の忠実な再現が格納されます。任意の PDF ビューアで開き、フォント、画像、改ページが元のウェブページと一致していることを確認してください。 + +![Conversion diagram](https://example.com/conversion-diagram.png "Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter") + +*(画像の代替テキスト: Aspose HTML Converter を使用して HTML および EPUB ファイルを PDF に変換する図)* + +--- + +## カスタム設定で HTML から PDF を生成する + +ページサイズ、余白、特定フォントの埋め込みなどを制御したい場合は、Aspose.HTML が提供する `PdfSaveOptions` クラスを使用します。 + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*`options` オブジェクトはオプションです。デフォルトのレイアウトで問題なければ省略してください。* + +--- + +## Python で EPUB を PDF に変換する方法 + +### 手順 1: EPUB ソースを指定 + +HTML と同様に、変換したい EPUB ファイルへのパスを指定します。 + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### 手順 2: 変換を実行 + +同じ `Converter.convert` メソッドが `.epub` 拡張子を検出し、電子書籍用のレンダリングパイプラインに切り替わります。 + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### 考慮すべきエッジケース + +| 状況 | 推奨される対処方法 | +|----------------------------------------|-------------------| +| 大規模 EPUB(数百章) | `PdfSaveOptions.start_page` と `end_page` を使用してチャンク単位で変換し、メモリ使用量を抑える。 | +| EPUB 内のフォントが欠如している | `PdfSaveOptions.embed_standard_fonts = True` を設定し、システムフォントにフォールバックさせる。 | +| パスワード保護された EPUB | 変換前に `PdfLoadOptions` でパスワードを提供する(ここでは省略)。 | + +--- + +## 完全な実行可能サンプル + +以下は、上記すべての手順を組み合わせた単一スクリプトです。`convert_demo.py` として保存し、コマンドラインから実行してください。 + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +スクリプト実行: + +```bash +python convert_demo.py +``` + +実行すると、3 つの確認メッセージと `YOUR_DIRECTORY` 内に 3 つの PDF ファイルが生成されます。 + +--- + +## よくある落とし穴と回避策 + +* **ライセンス未設定** – 有効な Aspose.HTML ライセンスがないと、ライブラリはすべてのページに透かしを付加します。スクリプト冒頭でライセンスを登録してください。 + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **OS 間での相対パス** – `os.path.join` と `os.path.abspath` を使用して、プラットフォームに依存しないパスを構築します。 + +* **外部リソースを含む大規模 HTML** – すべての CSS、画像、フォントがファイルシステム上で参照可能であるか、データ URI で埋め込まれていることを確認してください。そうでないと、PDF に空白プレースホルダーが表示されることがあります。 + +* **スレッド安全性** – `Converter.convert` はスレッドセーフですが、同時に多数のコンバータを作成するとメモリ消費が大きくなります。数百ファイルを並列処理する場合は、単一のコンバータインスタンスを再利用してください。 + +--- + +## 結論 + +これで、**HTML を PDF に変換**し、**Python で EPUB を PDF に変換**するための、**Aspose HTML Converter** を用いた完全な本番環境向けアプローチが手に入りました。本チュートリアルでカバーした内容は以下の通りです。 + +* 正しいモジュールのインポート方法 +* 入力ファイルの検証 +* 基本的な変換の実行 +* `PdfSaveOptions` による PDF 出力のカスタマイズ +* 大規模またはパスワード保護された EPUB の取り扱い + +ここからは、フォルダ単位でのバッチ処理や Flask / FastAPI エンドポイントへの統合、あるいは DOCX や PNG などの他フォーマットへの出力(Aspose.HTML はそれらもサポート)に拡張できます。 + +--- + +### 次のステップ + +* ヘッドレスブラウザセッションを有効にして、JavaScript 主導のページから **HTML を PDF に生成**する方法を探求してください。 +* **Aspose.PDF** と組み合わせて、複数 PDF の結合やデジタル署名の付与などの後処理を行う。 +* `PdfSaveOptions.jpeg_quality` など、**aspose-html-converter** の高度なオプションを確認し、画像が多い文書の最適化を実施してください。 + +コーディングを楽しみながら、Aspose.HTML の信頼性の高いドキュメント変換機能を活用してください! + +## 次に学ぶべきこと + +以下のチュートリアルは、本ガイドで示した手法を基にした、密接に関連するトピックを扱っています。各リソースには、ステップバイステップの解説と完全なコード例が含まれており、API の追加機能を習得したり、別の実装アプローチを自分のプロジェクトに取り入れたりするのに役立ちます。 + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/japanese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..3578375b2 --- /dev/null +++ b/html/japanese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,209 @@ +--- +category: general +date: 2026-08-12 +description: PythonでHTMLをファイルから素早く読み込む。Pythonを使ってHTMLファイルを読む方法、URLからHTMLをロードする方法、文字列からHTMLDocumentを作成する方法をひとつのチュートリアルで学びましょう。 +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: ja +lastmod: 2026-08-12 +og_description: HTMLDocument クラスを使用して Python でファイルから HTML を読み込む。このガイドに従って、Python で + HTML ファイルを読み取り、URL から HTML をロードし、文字列から HTMLDocument を作成して、堅牢なウェブコンテンツ処理を実現します。 +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: PythonでファイルからHTMLを読み込む – クイックプログラミングガイド +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: PythonでファイルからHTMLを読み込む – ステップバイステップガイド +url: /ja/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# PythonでファイルからHTMLをロードする – ステップバイステップガイド + +Pythonで**ファイルからHTMLをロード**する必要がある場合、このガイドで正確な手順を示します。また、**Pythonを使用してHTMLファイルを読み取る**方法、URLからHTMLをロードする方法、そして**文字列からhtmldocumentを作成**する方法も学び、あらゆるHTMLコンテンツのソースを扱えるようになります。 + +例では `html_document` パッケージの `HTMLDocument` クラスを使用しています。このクラスはローカルファイル、リモートURL、そして生のHTML文字列に対して統一された API を提供します。このアプローチは Python 3.8+ で動作し、`pathlib` や `requests` といった標準ライブラリとスムーズに統合できます。 + +![PythonでファイルからHTMLをロードするコードのスクリーンショット](image.png) + +## PythonでファイルからHTMLをロードする – 基本例 + +ローカルファイルシステムからHTMLファイルをロードすることは、静的ページを処理する際の最も一般的な最初のステップです。`HTMLDocument` コンストラクタはファイルパスを受け取り、エンコーディングを自動的に検出し、マークアップを解析します。 + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**この動作の理由:** +* `Path` は OS 固有のパス区切り文字を抽象化し、Windows、macOS、Linux 間でコードをポータブルにします。 +* `HTMLDocument` はバイナリモードでファイルを読み取り、UTF‑8 または UTF‑16 の BOM を検出し、必要に応じてシステムのデフォルトエンコーディングにフォールバックします。 + +**期待される出力(HTMLに `Example` が含まれていると仮定):** + +``` +Title: Example +``` + +### ファイルロード時の一般的な落とし穴 + +* **FileNotFoundError** – パスが正しく、ファイルが存在することを確認してください。`file_path.is_file()` を使って事前にチェックできます。 +* **Encoding errors** – ページが非 UTF‑8 文字セットを使用している場合、コンストラクタに `encoding="iso-8859-1"` を渡します: `HTMLDocument(file_path, encoding="iso-8859-1")`。 + +## Pythonを使用してHTMLファイルを読み取る – 詳細解説 + +**read html file using python** というフレーズは、保存されたウェブページからデータを抽出する必要がある開発者に頻繁に見られます。`HTMLDocument` がほとんどの作業を抽象化しますが、生のテキストをロードして手動でパーサに渡すことも可能です。 + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**この方法を選ぶ理由:** +* パースする前にHTMLを前処理(例: スクリプト除去)したい場合。 +* ファイルを再読込せずに、後で再利用できるように生のマークアップをキャッシュしたい場合。 + +## URLからHTMLをロードする – リモートページの取得 + +Web アドレスから直接HTMLをロードすることで、ワークフローをライブコンテンツに拡張できます。**load html from url** のステップは HTTP 処理に `requests` ライブラリを使用し、取得したレスポンステキストを `HTMLDocument` に渡します。 + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**この動作の理由:** +* `requests.get` はリダイレクトを追跡し、HTTPS をデフォルトで処理します。 +* `response.raise_for_status()` は成功したレスポンスのみが解析されることを保証し、サイレントな失敗を防ぎます。 + +**エッジケース:** +* **ネットワーク遅延** – `timeout` パラメータを調整するか、接続プーリングのために `requests.Session` を使用します。 +* **非HTMLコンテンツ** – パースする前に `Content-Type` ヘッダー(`response.headers["Content-Type"]`)を確認します。 + +## 文字列からhtmldocumentを作成する – 生HTMLの取り扱い + +テンプレートエンジンなどでHTMLを動的に生成し、ディスクに書き込まずにドキュメントとして扱う必要がある場合があります。**create htmldocument from string** の操作はシンプルです。 + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**この操作が有用な理由:** +* 一時ファイルが不要になるため、サーバーレス環境でのパフォーマンスが向上します。 +* クライアントに送信したり保存したりする前に、生成されたマークアップを検証できます。 + +**文字列処理のヒント:** +* マークアップを読みやすく保つために、三重引用符文字列を使用します。 +* HTML に Unicode 文字が含まれる場合、ソースファイルが UTF‑8 エンコーディングで保存されていることを確認してください。 + +## 完全なエンドツーエンド例 + +4 つのロード戦略をすべて組み合わせることで、ローカル、リモート、インメモリのソース間を切り替え可能な柔軟なパイプラインを示します。 + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**このコードが示すこと:** + +* 単一の `HTMLDocument` クラスがすべての入力タイプを処理し、API の表面積を削減します。 +* ヘルパー関数がエラーハンドリングをカプセル化し、呼び出し側のコードを簡潔にします。 +* このパターンはバッチ処理にスケールし、ファイルパスや URL のリストを反復し、各ドキュメントをスクレイパーやトランスフォーマーに渡すことができます。 + +## 結論 + +これで、`HTMLDocument` クラスを使用して **PythonでファイルからHTMLをロード**する方法、**Pythonを使用してHTMLファイルを読み取る**方法が分かりました。 + +## 次に学ぶべきことは? + +以下のチュートリアルは、本ガイドで示した手法に基づく密接に関連したトピックを取り上げています。各リソースには、ステップバイステップの解説付きの完全なコード例が含まれており、追加の API 機能を習得し、独自プロジェクトで代替実装アプローチを検討するのに役立ちます。 + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/korean/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..995515566 --- /dev/null +++ b/html/korean/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-08-12 +description: Python을 사용해 HTML을 Markdown으로 변환합니다. 웹 페이지를 Markdown으로 변환하고 문서화를 자동화하는 + 명령줄 워크플로우를 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: ko +lastmod: 2026-08-12 +og_description: Python을 사용하여 HTML을 Markdown으로 변환합니다. 이 튜토리얼에서는 웹 페이지를 빠르고 신뢰성 있게 Markdown으로 + 변환하는 명령줄 솔루션을 보여줍니다. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Python으로 HTML을 Markdown으로 변환하기 – 단계별 가이드 +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Python으로 HTML을 Markdown으로 변환하기 – 완전한 프로그래밍 가이드 +url: /ko/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python으로 HTML을 Markdown으로 변환하기 – 완전 프로그래밍 가이드 + +HTML을 **Markdown으로 변환**해야 한다면, 이 가이드는 바로 실행할 수 있는 솔루션을 보여줍니다. 짧은 Python 스크립트가 모든 HTML 파일을 깔끔한 Git‑flavored Markdown으로 변환하는 방법과 명령줄에서 동일한 로직을 호출하는 방법을 확인할 수 있습니다. + +웹 페이지를 Markdown으로 변환하는 것은 정적 문서 사이트를 구축하거나 버전 관리 저장소용 콘텐츠를 준비할 때 흔히 수행되는 단계입니다. 이 튜토리얼을 마치면 HTML 인코딩을 처리하고, 링크를 보존하며, Git‑flavored Markdown 규칙을 따르는 재사용 가능한 명령줄 도구를 얻게 됩니다. + +## 전제 조건 + +시작하기 전에 다음이 설치되어 있는지 확인하세요: + +* 시스템에 Python 3.9 이상 설치되어 있어야 합니다. +* `groupdocs-conversion` Python 패키지(또는 `HTMLDocument`, `MarkdownSaveOptions`, `Converter`를 제공하는 라이브러리). 다음 명령으로 설치합니다: + +```bash +pip install groupdocs-conversion +``` + +* 처리하려는 `input.html` 파일이 들어 있는 폴더가 필요합니다. + +다음 섹션에서는 각 단계를 차례로 살펴보고, 왜 중요한지 설명하며, 필요한 정확한 코드를 제공합니다. + +## 단계 1: 환경 설정 + +격리된 가상 환경을 만들면 종속성 충돌을 방지하고 명령줄 도구를 휴대 가능하게 만들 수 있습니다. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*왜 이 단계인가?* +가상 환경은 `groupdocs-conversion` 패키지를 다른 프로젝트와 분리하여, **convert html to markdown command line** 유틸리티가 테스트한 정확한 버전으로 실행되도록 보장합니다. + +## 단계 2: 변환 스크립트 작성 + +`html_to_md.py`라는 파일을 만들고 아래 코드를 붙여넣으세요. 이 스크립트는 세 개의 인수를 받습니다: 입력 HTML 경로, 출력 Markdown 경로, 그리고 Git‑flavored 포맷터를 선택하는 선택적 플래그. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### 스크립트 설명 + +| 섹션 | 목적 | +|---------|---------| +| **Argument parsing** | **convert html to markdown command line** 사용 패턴을 가능하게 합니다. | +| **HTMLDocument** | 소스 파일을 로드합니다; 라이브러리는 문자 인코딩 및 DOM 파싱을 추상화합니다. | +| **MarkdownSaveOptions** | 일반 Markdown과 Git‑flavored Markdown(`--git` 플래그) 사이를 전환할 수 있게 합니다. | +| **Converter.convert_html** | 핵심 작업을 수행합니다 – HTML 트리를 순회하고, 태그를 변환하며, 출력 파일을 씁니다. | +| **Error handling** | CI 파이프라인에 필수적인 명확한 성공/실패 메시지를 제공합니다. | + +## 단계 3: 명령줄에서 변환 실행 + +스크립트를 저장했으면 단일 명령으로 모든 HTML 파일을 변환할 수 있습니다: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**예상 출력** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +`output.md`를 텍스트 편집기로 열면, 헤딩, 리스트, 링크가 깔끔한 Markdown 구문으로 렌더링된 것을 볼 수 있습니다. Git 포맷터를 사용했기 때문에 표는 파이프(`|`) 구분자로 표시되고, 작업 리스트는 `- [ ]` 구문을 사용합니다. 이는 GitHub와 GitLab에서 기본적으로 렌더링됩니다. + +## 단계 4: 자동화 파이프라인에 도구 통합 + +저장소에서 문서를 관리한다면 변환 단계를 CI 워크플로에 추가할 수 있습니다. 아래는 푸시마다 실행되는 GitHub Actions 작업 예시입니다: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*왜 중요한가* – **convert web page to markdown** 단계를 자동화하면 수동 작업 없이도 문서가 원본 HTML 파일과 동기화된 상태를 유지합니다. + +## 엣지 케이스 및 모범 사례 팁 + +* **Encoding problems** – HTML에 UTF‑8이 아닌 문자가 포함된 경우 `HTMLDocument`를 만들 때 명시적인 인코딩을 전달하세요(예: `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – 50 MB보다 큰 HTML 파일은 메모리 급증을 방지하기 위해 스트리밍 변환을 고려하세요. 라이브러리는 이 시나리오를 위한 `convert_html_stream` 메서드를 제공합니다. +* **Custom CSS handling** – 변환기는 기본적으로 스타일 속성을 제거합니다. 특정 포맷을 보존해야 하면 `md_opts.preserveFormatting = True`를 활성화하세요. +* **Command‑line shortcut** – 작은 래퍼 스크립트(`html2md`)를 만들어 인수를 `html_to_md.py`에 전달하도록 하세요. `$HOME/.local/bin`에 배치하고 `PATH`에 추가하면 더욱 짧은 **convert html to markdown command line** 경험을 얻을 수 있습니다. + +## 자주 묻는 질문 + +**Does this work on Windows, macOS, and Linux?** +예. 스크립트는 크로스‑플랫폼 `groupdocs-conversion` 패키지와 표준 Python 라이브러리만 사용하므로 세 운영체제 모두에서 동일하게 실행됩니다. + +**Can I convert a remote web page directly?** +`requests`를 사용해 페이지를 가져온 뒤 HTML 문자열을 `HTMLDocument`에 전달하면 됩니다: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**What if I need HTML → GitHub‑flavored Markdown only?** +항상 `--git` 플래그를 전달하면 됩니다; 포맷터가 GitHub, GitLab, Bitbucket과 호환되는 출력을 생성합니다. + +## 결론 + +이제 Python 스크립트와 명령줄 모두에서 작동하는 강력한 **convert HTML to Markdown** 솔루션을 갖추었습니다. 튜토리얼에서는 환경 설정, 전체 소스 코드, 명령줄 사용법, CI 통합, 실용적인 엣지 케이스 처리를 다루었습니다. + +다음으로 **convert markdown to HTML**을 탐색하거나, 고급 변환 옵션을 위해 Pandoc을 실험하거나, 메타데이터를 직접 Markdown 파일에 삽입하는 프론트‑머터 생성기를 추가해 볼 수 있습니다. 이러한 확장은 방금 익힌 핵심 개념을 기반으로 합니다. + +변환을 즐기세요! + +## 다음에 배울 내용은? + +다음 튜토리얼들은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 주제를 다룹니다. 각 리소스는 완전한 코드 예제와 단계별 설명을 포함하여 추가 API 기능을 마스터하고 프로젝트에 적용할 수 있는 대체 구현 방식을 탐색하도록 돕습니다. + +- [Java용 Aspose.HTML에서 HTML을 Markdown으로 변환](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [.NET용 Aspose.HTML에서 HTML을 Markdown으로 변환](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/korean/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..5aa2c0969 --- /dev/null +++ b/html/korean/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: GroupDocs.Viewer를 사용하여 Python에서 HTML을 PDF로 변환합니다. 정밀한 제어를 위한 유연한 HTML‑PDF + 옵션으로 HTML을 PDF로 저장하는 방법을 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: ko +lastmod: 2026-08-12 +og_description: GroupDocs.Viewer를 사용하여 HTML을 PDF로 변환합니다. 이 가이드는 HTML을 PDF로 저장하는 방법, + HTML‑PDF 옵션을 구성하는 방법, 그리고 대용량 문서를 안정적으로 처리하는 방법을 보여줍니다. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTML을 PDF로 변환 – 단계별 파이썬 튜토리얼 +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Python에서 HTML을 PDF로 변환하기 – 완전한 프로그래밍 가이드 +url: /ko/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python에서 HTML을 PDF로 변환하기 – 완전한 프로그래밍 가이드 + +Python 프로젝트에서 **HTML을 PDF로 변환**해야 한다면, 이 가이드는 바로 실행할 수 있는 솔루션을 보여줍니다. 뷰어 라이브러리 설치, **html to pdf options** 구성, 그리고 마지막으로 **save HTML as PDF**를 몇 줄의 코드만으로 수행하는 과정을 안내합니다. + +HTML 문서를 변환할 때는 이미지, CSS, JavaScript와 같은 연결된 리소스를 처리해야 하는 경우가 많습니다. 이 튜토리얼이 끝날 때쯤에는 리소스 중첩을 제한하고, 메모리 급증을 방지하며, 원본 페이지 레이아웃과 일치하는 깔끔한 PDF 파일을 만드는 방법을 이해하게 될 것입니다. + +## 사전 요구 사항 + +- Python 3.8 이상 +- `pip` (Python 패키지 설치 프로그램) +- 변환하려는 HTML 파일에 대한 접근 권한 (예: `large_page.html`) + +추가 시스템 라이브러리는 필요하지 않습니다. GroupDocs.Viewer가 모든 필요한 렌더링 엔진을 포함하고 있기 때문입니다. + +## 단계 1: Python용 GroupDocs.Viewer 설치 + +GroupDocs.Viewer는 HTML을 포함한 다양한 형식에서 PDF로 고품질 변환을 제공합니다. 다음 명령으로 설치합니다: + +```bash +pip install groupdocs-viewer +``` + +> **Pro tip:** 가상 환경(`python -m venv .venv`)을 사용하여 다른 프로젝트와 의존성을 분리하세요. + +## 단계 2: **html to pdf options** 구성 – 리소스 중첩 깊이 제한 + +대형 HTML 페이지에는 깊게 중첩된 리소스(iframes, CSS import 등)가 포함될 수 있습니다. 최대 처리 깊이를 설정하면 변환기가 무한히 재귀하는 것을 방지하고 메모리 사용량을 예측 가능하게 유지합니다. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth` 속성은 뷰어가 따라야 할 연결된 리소스의 레벨 수를 지정합니다. `3` 깊이는 대부분의 웹 페이지에 적합하며 필요한 이미지와 스타일을 유지합니다. + +## 단계 3: **convert HTML to PDF**하려는 HTML 문서 로드 + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer`는 파일 형식 감지를 추상화하므로 `HtmlDocument`를 직접 인스턴스화할 필요가 없습니다. 이 단계는 변환기가 사용할 내부 표현을 준비합니다. + +## 단계 4: 구성한 **html to pdf options**를 사용해 **Save HTML as PDF** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions` 객체는 앞서 정의한 `resource_handling_options`를 포함한 모든 PDF 전용 설정을 묶습니다. `viewer.save`가 실행되면 HTML 페이지가 렌더링되고, 리소스가 허용된 깊이까지 처리된 뒤 최종 PDF가 `output_path`에 기록됩니다. + +### 예상 결과 + +스크립트가 완료되면 `output.pdf`에 `large_page.html`의 충실한 복제본이 포함됩니다. PDF를 Adobe Reader, Chrome 등任意의 뷰어로 열어 다음을 확인하세요: + +- 이미지, 표, 기본 CSS 스타일이 올바르게 표시됩니다. +- 깊은 리소스 재귀로 인한 예상치 못한 빈 페이지가 없습니다. + +## 엣지 케이스 및 일반적인 변형 처리 + +| 상황 | 권장 수정 | +|-----------|-------------------| +| **HTML contains external fonts** | PDF에 폰트를 포함하려면 `pdf_options.embed_all_fonts = True`를 추가합니다. | +| **You need a specific page size** | `pdf_options.page_width`와 `pdf_options.page_height`를 설정합니다(예: A4: `595, 842`). | +| **Large files cause out‑of‑memory errors** | `resource_options.max_handling_depth`를 감소시키거나 HTML을 작은 조각으로 나누어 각각 변환합니다. | +| **You want to password‑protect the PDF** | `save` 호출 전에 `pdf_options.password = "YourSecret"`를 사용합니다. | + +이러한 조정은 **html to pdf options**의 유연성을 보여주며, 변환을 정확한 요구 사항에 맞게 조정할 수 있음을 나타냅니다. + +## 복사‑붙여넣기 가능한 전체 스크립트 + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +스크립트를 실행하세요: + +```bash +python convert_html_to_pdf.py +``` + +확인 메시지가 표시되고 지정된 디렉터리에서 `output.pdf`를 찾을 수 있을 것입니다. + +## 자주 묻는 질문 + +**Q: 로컬 파일 대신 원격 URL에서도 작동하나요?** +A: 예. URL 문자열을 `Viewer`에 전달합니다(예: `Viewer("https://example.com/page.html")`). 뷰어는 **html to pdf options**를 적용하기 전에 페이지를 다운로드합니다. + +**Q: 여러 HTML 파일을 한 번에 변환할 수 있나요?** +A: 파일 경로 목록을 순회하는 루프에 변환 코드를 감싸세요. 효율성을 위해 동일한 `resource_options`와 `pdf_options` 객체를 재사용합니다. + +**Q: HTML이 JavaScript를 사용해 DOM을 수정한다면 어떻게 하나요?** +A: GroupDocs.Viewer는 정적 HTML을 렌더링하며 JavaScript를 **실행하지** 않습니다. 동적 페이지의 경우 먼저 헤드리스 브라우저(예: Selenium)에서 페이지를 렌더링한 뒤, 생성된 정적 HTML을 변환기에 전달하세요. + +## 결론 + +이제 Python에서 **HTML을 PDF로 변환**하기 위한 완전하고 프로덕션 준비된 방법을 갖추었습니다. **resource handling**을 구성하면 연결된 리소스가 얼마나 깊게 처리될지 제어할 수 있고, `PdfSaveOptions`를 사용해 세밀한 **html to pdf options**와 함께 **HTML을 PDF로 저장**할 수 있습니다. 폰트 포함이나 페이지 크기 지정과 같은 선택적 설정을 실험하여 애플리케이션의 정확한 요구에 맞추세요. + +--- + +*다음 단계*: 비밀번호 보호가 가능한 **save HTML document pdf**를 탐색하거나, Flask 또는 FastAPI를 사용해 온‑디맨드 PDF 생성을 위한 웹 API에 이 변환을 통합하세요. + +## 다음에 배울 내용은? + +다음 튜토리얼은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 관련 주제를 다룹니다. 각 자료는 단계별 설명과 함께 완전한 동작 코드 예제를 제공하여 추가 API 기능을 마스터하고 프로젝트에서 대체 구현 방식을 탐색하는 데 도움이 됩니다. + +- [Java에서 Aspose.HTML을 사용해 HTML을 PDF로 변환하는 방법](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Java에서 Aspose.HTML 환경 구성 – HTML을 PDF로 변환](/html/english/java/configuring-environment/) +- [Java에서 Aspose.HTML – 웹 요청 실행을 통한 HTML을 PDF로 변환](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/korean/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..a050d2ebd --- /dev/null +++ b/html/korean/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,339 @@ +--- +category: general +date: 2026-08-12 +description: Aspose HTML Converter를 사용하여 Python에서 HTML을 PDF로 변환합니다. 몇 줄의 코드만으로 HTML에서 + PDF를 생성하고 EPUB를 PDF로 변환하는 방법을 배워보세요. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: ko +lastmod: 2026-08-12 +og_description: Aspose HTML Converter를 사용하여 Python에서 HTML을 PDF로 변환합니다. 이 튜토리얼에서는 HTML에서 + PDF를 생성하는 방법과 EPUB를 PDF로 변환하는 방법을 명확하고 실행 가능한 코드와 함께 보여줍니다. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Aspose HTML Converter를 사용한 파이썬에서 HTML을 PDF로 변환 – 빠른 가이드 +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Aspose HTML Converter를 사용하여 Python에서 HTML을 PDF로 변환 +url: /ko/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python에서 Aspose HTML Converter를 사용하여 HTML을 PDF로 변환하기 + +HTML을 PDF로 빠르게 변환해야 한다면, 이 가이드는 Aspose.HTML Python 라이브러리를 사용하여 정확히 어떻게 하는지 보여줍니다. 사용자 제출 페이지를 인쇄 가능한 PDF로 변환하는 웹 서비스 구축이든, 보고서 생성을 자동화하든, 아래 단계는 완전하고 바로 실행할 수 있는 솔루션을 제공합니다. + +HTML 외에도 Aspose.HTML는 전자책 포맷을 처리하므로, Python을 떠나지 않고 **EPUB 파일을 PDF로 변환하는 방법**을 확인할 수 있습니다. 이 튜토리얼을 마치면 **HTML에서 PDF를 생성**하고 몇 줄의 코드만으로 EPUB 전자책의 PDF 버전을 만들 수 있게 됩니다. + +## 사전 요구 사항 + +* Python 3.8 이상 설치되어 있어야 합니다. +* 활성화된 Aspose.HTML for Python 라이선스 (무료 체험판으로 평가 가능). +* `aspose-html` 패키지를 설치할 수 있는 `pip` 접근 권한. +* 변환하려는 샘플 HTML 또는 EPUB 파일. + +```bash +pip install aspose-html +``` + +> **Pro tip:** 가상 환경 안에 패키지를 설치하면 의존성을 격리할 수 있습니다. + +## 변환 프로세스 개요 + +Aspose.HTML는 HTML, CSS 및 전자책 콘텐츠를 PDF로 렌더링하는 세부 사항을 추상화하는 단일 `Converter` 클래스를 제공합니다. 워크플로는 다음과 같습니다: + +1. `Converter` 클래스를 가져옵니다. +2. `Converter.convert(source_path, target_path)`를 호출합니다. +3. (선택) 페이지 크기나 글꼴 포함과 같은 변환 설정을 조정합니다. + +라이브러리는 파일 확장자를 기반으로 소스 형식을 자동으로 감지하므로, 동일한 메서드가 HTML과 EPUB 파일 모두에 적용됩니다. + +--- + +## Aspose HTML Converter를 사용하여 HTML을 PDF로 변환하기 + +### 단계 1: Aspose HTML 변환 모듈 가져오기 + +`Converter` 클래스는 `aspose.html` 네임스페이스에 있습니다. 스크립트 상단에 가져오세요. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### 단계 2: 입력 및 출력 경로 준비하기 + +스크립트가 읽고 쓸 수 있는 절대 경로나 상대 경로를 사용하세요. 변환을 시도하기 전에 소스 파일이 존재하는지 확인하는 것이 좋은 습관입니다. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### 단계 3: 변환 수행하기 + +`Converter.convert`를 호출하면 HTML 렌더링, CSS 적용, PDF 파일 작성 등 모든 복잡한 작업을 수행합니다. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### 왜 이렇게 작동하나요 + +* **자동 레이아웃 엔진** – Aspose.HTML는 Chromium 기반 렌더링 엔진을 사용하여 최신 CSS, SVG 및 JavaScript를 올바르게 처리합니다. +* **중간 파일 없음** – 변환이 메모리 내에서 이루어져 I/O 오버헤드를 줄이고 배치 처리 속도를 높입니다. + +### 예상 출력 + +스크립트를 실행하면 `output.pdf`에 `input.html`의 정확한 복제본이 저장됩니다. PDF 뷰어로 열어 글꼴, 이미지, 페이지 구분이 원본 웹 페이지와 일치하는지 확인하세요. + +![변환 다이어그램](https://example.com/conversion-diagram.png "Aspose HTML Converter를 사용하여 HTML 및 EPUB 파일을 PDF로 변환하는 과정을 보여주는 다이어그램") + +*(이미지 대체 텍스트: Aspose HTML Converter를 사용하여 HTML 및 EPUB 파일을 PDF로 변환하는 과정을 보여주는 다이어그램)* + +--- + +## 사용자 지정 설정으로 HTML에서 PDF 생성하기 + +때때로 페이지 크기, 여백, 특정 글꼴 포함 등을 제어해야 할 때가 있습니다. 이를 위해 Aspose.HTML는 `PdfSaveOptions` 클래스를 제공합니다. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +`options` 객체는 선택 사항이며, 기본 레이아웃에 만족한다면 생략하세요. + +--- + +## Python에서 EPUB을 PDF로 변환하는 방법 + +### 단계 1: EPUB 소스 찾기 + +HTML과 마찬가지로 변환하려는 EPUB 파일의 경로를 지정하세요. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### 단계 2: 변환 실행하기 + +동일한 `Converter.convert` 메서드가 `.epub` 확장자를 감지하고 전자책 렌더링 파이프라인으로 전환합니다. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### 고려해야 할 엣지 케이스 + +| 상황 | 권장 처리 방법 | +|---|---| +| 대용량 EPUB(수백 개 챕터) | 메모리 사용량을 제한하기 위해 `PdfSaveOptions.start_page`와 `end_page`를 사용하여 청크 단위로 변환합니다. | +| EPUB에 글꼴이 누락된 경우 | `PdfSaveOptions.embed_standard_fonts = True`를 설정하여 시스템 글꼴을 대체하도록 합니다. | +| 비밀번호로 보호된 EPUB | 변환 전에 비밀번호를 제공하기 위해 `PdfLoadOptions`를 사용합니다(여기서는 표시되지 않음). | + +--- + +## 전체 실행 가능한 예제 + +아래는 위의 모든 단계를 결합한 단일 스크립트입니다. `convert_demo.py`로 저장하고 명령줄에서 실행하세요. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +스크립트를 실행합니다: + +```bash +python convert_demo.py +``` + +`YOUR_DIRECTORY`에 세 개의 확인 메시지와 세 개의 PDF 파일이 생성됩니다. + +--- + +## 흔히 발생하는 문제와 회피 방법 + +* **라이선스 누락** – 유효한 Aspose.HTML 라이선스가 없으면 라이브러리가 모든 페이지에 워터마크를 추가합니다. 스크립트 초기에 라이선스를 등록하세요: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **다양한 OS에서 상대 경로 사용** – `os.path.join`과 `os.path.abspath`를 사용하여 플랫폼에 독립적인 경로를 구성하세요. + +* **외부 리소스를 포함한 대용량 HTML** – 모든 CSS, 이미지, 글꼴이 파일 시스템에서 접근 가능하도록 하거나 data URI로 임베드하세요. 그렇지 않으면 PDF에 빈 자리 표시자가 표시될 수 있습니다. + +* **스레드 안전성** – `Converter.convert`는 스레드 안전하지만, 동시에 많은 컨버터를 생성하면 메모리를 많이 차지할 수 있습니다. 수백 개의 파일을 병렬 처리할 경우 단일 컨버터 인스턴스를 재사용하세요. + +--- + +## 결론 + +이제 **HTML을 PDF로 변환**하고 **EPUB 파일을 PDF로 변환**하는 완전하고 프로덕션 준비가 된 접근 방식을 Python에서 **Aspose HTML Converter**를 사용해 갖추었습니다. 튜토리얼에서는 다음을 다루었습니다: + +* 올바른 모듈 가져오기. +* 입력 파일 검증. +* 기본 변환 수행. +* `PdfSaveOptions`로 PDF 출력 맞춤 설정. +* 대용량 또는 비밀번호 보호된 EPUB 처리. + +여기서부터는 솔루션을 확장하여 폴더를 배치 처리하거나, 코드를 Flask 또는 FastAPI 엔드포인트에 통합하거나, DOCX나 PNG와 같은 추가 출력 포맷을 실험해 볼 수 있습니다(Aspose.HTML는 이를 지원합니다). + +### 다음 단계 + +* **JavaScript 기반 페이지**에서 PDF를 생성하려면 `Converter.convert`를 헤드리스 브라우저 세션과 함께 활성화하여 **HTML에서 PDF 생성**을 탐색하세요. +* 여러 PDF를 병합하거나 디지털 서명을 추가하는 등 후처리 작업을 위해 **Aspose.PDF**와 이 워크플로를 결합하세요. +* 이미지가 많은 문서를 위해 `PdfSaveOptions.jpeg_quality`와 같은 **aspose-html-converter** 고급 옵션을 확인하세요. + +코딩을 즐기시고, 모든 문서 변환 요구에 대해 Aspose.HTML의 신뢰성을 경험하세요! + +## 다음에 배워야 할 내용은? + +다음 튜토리얼은 이 가이드에서 시연한 기술을 기반으로 하는 밀접한 관련 주제를 다룹니다. 각 리소스는 단계별 설명과 함께 완전한 코드 예제를 제공하여 추가 API 기능을 마스터하고 프로젝트에서 대체 구현 방법을 탐색할 수 있도록 돕습니다. + +- [Aspose.HTML를 사용하여 HTML을 PDF로 변환 – 전체 조작 가이드](/html/english/) +- [.NET에서 Aspose.HTML를 사용하여 EPUB을 PDF로 변환](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/korean/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..f262ccd48 --- /dev/null +++ b/html/korean/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-08-12 +description: Python에서 파일로부터 HTML을 빠르게 로드하세요. Python을 사용해 HTML 파일을 읽는 방법, URL에서 HTML을 + 로드하는 방법, 문자열에서 htmldocument를 생성하는 방법을 한 번에 배울 수 있는 튜토리얼입니다. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: ko +lastmod: 2026-08-12 +og_description: HTMLDocument 클래스를 사용하여 Python에서 파일로부터 HTML을 로드합니다. 이 가이드를 따라 Python으로 + HTML 파일을 읽고, URL에서 HTML을 로드하며, 문자열에서 HTMLDocument를 생성하여 강력한 웹 콘텐츠 처리를 수행하세요. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Python에서 파일로부터 HTML 로드 – 빠른 프로그래밍 가이드 +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Python에서 파일로부터 HTML 로드하기 – 단계별 가이드 +url: /ko/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python에서 파일로부터 html 로드 – 단계별 가이드 + +If you need to **load html from file in Python**, this guide shows you exactly how. You’ll also learn how to **read html file using python**, load html from url, and **create htmldocument from string** so you can handle any source of HTML content. + +The examples use the `HTMLDocument` class from the `html_document` package, which provides a unified API for local files, remote URLs, and raw HTML strings. The approach works with Python 3.8+ and integrates cleanly with standard libraries such as `pathlib` and `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Python에서 파일로부터 html 로드 – 기본 예제 + +Loading an HTML file from the local filesystem is the most common first step when processing static pages. The `HTMLDocument` constructor accepts a file path, automatically detects the file’s encoding, and parses the markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**왜 이렇게 동작하는가:** +* `Path`는 OS‑specific path separators를 추상화하여 코드가 Windows, macOS, Linux에서 이식성을 갖게 합니다. +* `HTMLDocument`는 파일을 binary mode로 읽고, UTF‑8 또는 UTF‑16 BOM을 감지하며, 필요할 경우 시스템 기본 인코딩으로 대체합니다. + +**예상 출력 (HTML에 `Example`가 포함되어 있다고 가정):** + +``` +Title: Example +``` + +### 파일 로드 시 흔히 발생하는 함정 + +* **FileNotFoundError** – 경로가 올바르고 파일이 존재하는지 확인하세요. `file_path.is_file()`을 사용해 사전 확인할 수 있습니다. +* **Encoding errors** – 페이지가 UTF‑8이 아닌 charset을 사용할 경우, 생성자에 `encoding="iso-8859-1"`을 전달하세요: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Python을 사용해 html 파일 읽기 – 상세 설명 + +The phrase **read html file using python** appears often when developers need to extract data from saved web pages. While `HTMLDocument` abstracts most of the work, you can also load raw text and feed it to the parser manually. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**이 방식을 선택할 수 있는 이유:** +* 파싱 전에 HTML을 전처리(예: 스크립트 제거)해야 할 때. +* 파일을 다시 읽지 않고 나중에 재사용하기 위해 원시 마크업을 캐시하고 싶을 때. + +## URL에서 html 로드 – 원격 페이지 가져오기 + +Loading HTML directly from a web address expands the workflow to live content. The **load html from url** step relies on the `requests` library for HTTP handling and then hands the response text to `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**왜 이렇게 동작하는가:** +* `requests.get`은 redirects를 자동으로 따라가며 HTTPS를 기본적으로 처리합니다. +* `response.raise_for_status()`는 성공적인 응답만 파싱하도록 보장하여 무음 실패를 방지합니다. + +**예외 상황:** +* **Slow network** – `timeout` 매개변수를 조정하거나 연결 풀링을 위해 `requests.Session`을 사용하세요. +* **Non‑HTML content** – 파싱하기 전에 `Content-Type` 헤더(`response.headers["Content-Type"]`)를 확인하세요. + +## 문자열에서 htmldocument 생성 – 원시 HTML 다루기 + +Sometimes you generate HTML dynamically (e.g., from a template engine) and need to treat it as a document without writing it to disk. The **create htmldocument from string** operation is straightforward. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**이것이 유용한 이유:** +* 임시 파일이 필요 없어 서버리스 환경에서 성능이 향상됩니다. +* 클라이언트에 전송하거나 저장하기 전에 생성된 마크업을 검증할 수 있습니다. + +**문자열 처리 팁:** +* 마크업을 읽기 쉽게 유지하려면 삼중 따옴표 문자열을 사용하세요. +* HTML에 Unicode characters가 포함된 경우, 소스 파일을 UTF‑8 인코딩으로 저장했는지 확인하세요. + +## 전체 엔드‑투‑엔드 예제 + +Putting all four loading strategies together demonstrates a flexible pipeline that can switch between local, remote, and in‑memory sources. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**이 코드가 보여주는 내용:** + +* 단일 `HTMLDocument` 클래스로 모든 입력 유형을 처리하여 API 범위를 줄입니다. +* 헬퍼 함수가 오류 처리를 캡슐화하고 호출 코드를 간결하게 만듭니다. +* 이 패턴은 배치 처리로 확장 가능하며, 파일 경로나 URL 목록을 순회하면서 각 문서를 스크래퍼나 변환기에 전달합니다. + +## 결론 + +You now know how to **load html from file in Python** using the `HTMLDocument` class, how to **read html file using + +## 다음에 배워야 할 내용은? + +The following tutorials cover closely related topics that build on the techniques demonstrated in this guide. Each resource includes complete working code examples with step-by-step explanations to help you master additional API features and explore alternative implementation approaches in your own projects. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/polish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..6216af7ce --- /dev/null +++ b/html/polish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-08-12 +description: Konwertuj HTML na Markdown przy użyciu Pythona. Poznaj workflow w wierszu + poleceń, aby konwertować stronę internetową na Markdown i automatyzować dokumentację. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: pl +lastmod: 2026-08-12 +og_description: Konwertuj HTML na Markdown przy użyciu Pythona. Ten tutorial pokazuje + rozwiązanie wiersza poleceń, które pozwala szybko i niezawodnie przekształcić stronę + internetową na Markdown. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Konwertuj HTML na Markdown w Pythonie – przewodnik krok po kroku +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Konwertuj HTML na Markdown w Pythonie – kompletny przewodnik programistyczny +url: /pl/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konwertuj HTML na Markdown przy użyciu Pythona – kompletny przewodnik programistyczny + +Jeśli potrzebujesz **convert HTML to Markdown**, ten przewodnik pokazuje gotowe rozwiązanie do uruchomienia. Zobaczysz, jak krótki skrypt w Pythonie zamienia dowolny plik HTML na czysty, Git‑flavored Markdown oraz jak możesz wywołać tę samą logikę z wiersza poleceń. + +Konwertowanie stron internetowych na Markdown jest powszechnym krokiem przy budowaniu statycznych witryn dokumentacji lub przygotowywaniu treści do repozytoriów kontrolowanych wersjami. Po zakończeniu tego samouczka będziesz mieć wielokrotnego użytku narzędzie wiersza poleceń, które obsługuje kodowanie HTML, zachowuje linki i respektuje konwencje Git‑flavored Markdown. + +## Wymagania wstępne + +Przed rozpoczęciem upewnij się, że masz: + +* Python 3.9 lub nowszy zainstalowany w systemie. +* Pakiet Pythona `groupdocs-conversion` (lub dowolna biblioteka dostarczająca `HTMLDocument`, `MarkdownSaveOptions` i `Converter`). Zainstaluj go za pomocą: + +```bash +pip install groupdocs-conversion +``` + +* Folder zawierający plik źródłowy `input.html`, który chcesz przetworzyć. + +Poniższe sekcje przeprowadzają przez każdy krok, wyjaśniają, dlaczego jest ważny, i dostarczają dokładny kod, którego potrzebujesz. + +## Krok 1: Przygotuj środowisko + +Utworzenie izolowanego środowiska wirtualnego zapobiega konfliktom zależności i sprawia, że narzędzie wiersza poleceń jest przenośne. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Dlaczego ten krok?* +Środowisko wirtualne izoluje pakiet `groupdocs-conversion` od innych projektów, zapewniając, że narzędzie **convert html to markdown command line** działa z dokładnie tymi wersjami, które przetestowałeś. + +## Krok 2: Napisz skrypt konwersji + +Utwórz plik o nazwie `html_to_md.py` i wklej poniższy kod. Skrypt przyjmuje trzy argumenty: ścieżkę do wejściowego pliku HTML, ścieżkę do wyjściowego pliku Markdown oraz opcjonalny przełącznik wybierający formatowanie Git‑flavored. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Wyjaśnienie skryptu + +| Sekcja | Cel | +|---------|---------| +| **Argument parsing** | Umożliwia wzorzec użycia **convert html to markdown command line**. | +| **HTMLDocument** | Ładuje plik źródłowy; biblioteka abstrahuje kodowanie znaków i parsowanie DOM. | +| **MarkdownSaveOptions** | Pozwala przełączać się między zwykłym a Git‑flavored Markdown (flaga `--git`). | +| **Converter.convert_html** | Wykonuje najcięższą pracę – przegląda drzewo HTML, tłumaczy tagi i zapisuje plik wyjściowy. | +| **Error handling** | Zapewnia czytelny komunikat sukcesu/porażki, co jest kluczowe dla potoków CI. | + +## Krok 3: Uruchom konwersję z wiersza poleceń + +Po zapisaniu skryptu możesz konwertować dowolny plik HTML jednym poleceniem: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Oczekiwany wynik** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Otwórz `output.md` w edytorze tekstu; zobaczysz nagłówki, listy i linki wyświetlone w czystej składni Markdown. Ponieważ użyliśmy formatowania Git, tabele pojawiają się z delimitatorami pionowymi (`|`), a listy zadań używają składni `- [ ]`, którą GitHub i GitLab renderują natywnie. + +## Krok 4: Zintegruj narzędzie z pipeline'ami automatyzacji + +Jeśli utrzymujesz dokumentację w repozytorium, możesz dodać krok konwersji do workflow CI. Poniżej przykład zadania GitHub Actions, które uruchamia się przy każdym pushu: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Dlaczego to ważne* – Automatyzacja kroku **convert web page to markdown** zapewnia, że dokumentacja pozostaje zsynchronizowana ze źródłowymi plikami HTML bez ręcznego wysiłku. + +## Przypadki brzegowe i wskazówki najlepszych praktyk + +* **Problemy z kodowaniem** – Jeśli Twój HTML zawiera znaki nie‑UTF‑8, przekaż explicite kodowanie przy tworzeniu `HTMLDocument` (np. `HTMLDocument(input_path, encoding='utf-8')`). +* **Duże pliki** – Dla plików HTML większych niż 50 MB rozważ strumieniowanie konwersji, aby uniknąć skoków pamięci. Biblioteka udostępnia metodę `convert_html_stream` dla takiego scenariusza. +* **Obsługa własnego CSS** – Konwerter domyślnie usuwa atrybuty stylu. Jeśli musisz zachować określone formatowanie, włącz `md_opts.preserveFormatting = True`. +* **Skrót wiersza poleceń** – Utwórz mały skrypt opakowujący (`html2md`), który przekazuje argumenty do `html_to_md.py`. Umieść go w `$HOME/.local/bin` i dodaj do swojego `PATH`, aby uzyskać jeszcze krótsze doświadczenie **convert html to markdown command line**. + +## Najczęściej zadawane pytania + +**Czy to działa na Windows, macOS i Linux?** +Tak. Skrypt opiera się wyłącznie na wieloplatformowym pakiecie `groupdocs-conversion` oraz standardowych bibliotekach Pythona, więc działa niezmieniony na wszystkich trzech systemach operacyjnych. + +**Czy mogę bezpośrednio konwertować zdalną stronę internetową?** +Możesz pobrać stronę za pomocą `requests` i przekazać ciąg HTML do `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Co zrobić, jeśli potrzebuję tylko HTML → GitHub‑flavored Markdown?** +Po prostu zawsze podawaj flagę `--git`; formatowanie generuje wynik kompatybilny z GitHub, GitLab i Bitbucket. + +## Zakończenie + +Masz teraz solidne rozwiązanie **convert HTML to Markdown**, które działa zarówno ze skryptem Pythona, jak i z wiersza poleceń. Samouczek obejmował konfigurację środowiska, pełny kod źródłowy, użycie wiersza poleceń, integrację CI oraz praktyczne radzenie sobie z przypadkami brzegowymi. + +Następnie możesz zbadać **convert markdown to HTML**, eksperymentować z Pandoc w celu uzyskania zaawansowanych opcji konwersji lub dodać generator front‑matter, aby osadzić metadane bezpośrednio w plikach Markdown. Każde z tych rozszerzeń opiera się na podstawowych koncepcjach, które właśnie opanowałeś. + +Szczęśliwe konwertowanie! + +## Co powinieneś się nauczyć dalej? + +Poniższe samouczki obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każde źródło zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i zbadać alternatywne podejścia implementacyjne w własnych projektach. + +- [Konwertuj HTML na Markdown w Aspose.HTML dla Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Konwertuj HTML na Markdown w .NET z Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/polish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..2f35c5ff3 --- /dev/null +++ b/html/polish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Konwertuj HTML na PDF w Pythonie przy użyciu GroupDocs.Viewer. Dowiedz + się, jak zapisać HTML jako PDF z elastycznymi opcjami konwersji HTML do PDF, zapewniającymi + precyzyjną kontrolę. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: pl +lastmod: 2026-08-12 +og_description: Konwertuj HTML na PDF za pomocą GroupDocs.Viewer. Ten przewodnik pokazuje, + jak zapisać HTML jako PDF, skonfigurować opcje konwersji HTML do PDF oraz niezawodnie + obsługiwać duże dokumenty. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Konwertuj HTML do PDF – krok po kroku tutorial w Pythonie +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Konwertuj HTML do PDF w Pythonie – kompletny przewodnik programistyczny +url: /pl/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konwertuj HTML do PDF w Python – kompletny przewodnik programistyczny + +Jeśli potrzebujesz **konwertować HTML do PDF** w projekcie Python, ten przewodnik pokaże Ci gotowe rozwiązanie. Przejdziemy przez instalację biblioteki viewer, konfigurację **html to pdf options**, i w końcu **save HTML as PDF** przy użyciu kilku linii kodu. + +Konwersja dokumentów HTML często wymaga obsługi powiązanych zasobów, takich jak obrazy, CSS czy JavaScript. Po zakończeniu tego samouczka zrozumiesz, jak ograniczyć zagnieżdżanie zasobów, uniknąć skoków pamięci i wygenerować czysty plik PDF, który odzwierciedla oryginalny układ strony. + +## Wymagania wstępne + +- Python 3.8 lub nowszy +- `pip` (instalator pakietów Pythona) +- Dostęp do pliku HTML, który chcesz przekonwertować (np. `large_page.html`) + +Nie są wymagane dodatkowe biblioteki systemowe, ponieważ GroupDocs.Viewer zawiera wszystkie niezbędne silniki renderujące. + +## Krok 1: Zainstaluj GroupDocs.Viewer dla Pythona + +GroupDocs.Viewer zapewnia wysokiej wierności konwersję z wielu formatów, w tym HTML, do PDF. Zainstaluj go za pomocą: + +```bash +pip install groupdocs-viewer +``` + +> **Wskazówka:** Użyj wirtualnego środowiska (`python -m venv .venv`), aby utrzymać zależności odizolowane od innych projektów. + +## Krok 2: Skonfiguruj **html to pdf options** – ogranicz głębokość zagnieżdżania zasobów + +Duże strony HTML mogą zawierać głęboko zagnieżdżone zasoby (iframes, importy CSS itp.). Ustawienie maksymalnej głębokości obsługi zapobiega niekończącej się rekurencji konwertera i utrzymuje przewidywalne zużycie pamięci. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Właściwość `max_handling_depth` informuje viewer, ile poziomów powiązanych zasobów ma śledzić. Głębokość `3` sprawdza się w większości stron internetowych, zachowując jednocześnie niezbędne obrazy i style. + +## Krok 3: Załaduj dokument HTML, który chcesz **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstrahuje wykrywanie formatu pliku, więc nie musisz ręcznie tworzyć `HtmlDocument`. Ten krok przygotowuje wewnętrzną reprezentację, z którą będzie pracował konwerter. + +## Krok 4: **Save HTML as PDF** przy użyciu skonfigurowanych **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Obiekt `PdfSaveOptions` grupuje wszystkie ustawienia specyficzne dla PDF, w tym `resource_handling_options`, które zdefiniowaliśmy wcześniej. Gdy wywołane zostanie `viewer.save`, strona HTML jest renderowana, zasoby przetwarzane do dozwolonej głębokości, a finalny PDF zapisywany w `output_path`. + +### Oczekiwany rezultat + +Po zakończeniu skryptu, `output.pdf` zawiera wierną reprezentację `large_page.html`. Otwórz PDF w dowolnym przeglądarce (Adobe Reader, Chrome itp.) i sprawdź, że: + +- Obrazy, tabele i podstawowe style CSS wyświetlają się poprawnie. +- Nie pojawiają się nieoczekiwane puste strony spowodowane głęboką rekurencją zasobów. + +## Obsługa przypadków brzegowych i typowych wariacji + +| Sytuacja | Zalecana modyfikacja | +|----------|----------------------| +| **HTML zawiera zewnętrzne czcionki** | Dodaj `pdf_options.embed_all_fonts = True`, aby zapewnić osadzenie czcionek w PDF. | +| **Potrzebujesz konkretnego rozmiaru strony** | Ustaw `pdf_options.page_width` i `pdf_options.page_height` (np. A4: `595, 842`). | +| **Duże pliki powodują błędy braku pamięci** | Zmniejsz `resource_options.max_handling_depth` lub podziel HTML na mniejsze fragmenty i konwertuj każdy osobno. | +| **Chcesz zabezpieczyć PDF hasłem** | Użyj `pdf_options.password = "YourSecret"` przed wywołaniem `save`. | + +Te modyfikacje ilustrują elastyczność **html to pdf options** i pokazują, jak możesz dostosować konwersję do swoich dokładnych wymagań. + +## Pełny skrypt, który możesz skopiować i wkleić + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Uruchom skrypt: + +```bash +python convert_html_to_pdf.py +``` + +Powinieneś zobaczyć komunikat potwierdzający i znaleźć `output.pdf` w określonym katalogu. + +## Najczęściej zadawane pytania + +**P: Czy to działa z zdalnymi URL‑ami zamiast plików lokalnych?** +O: Tak. Przekaż ciąg URL do `Viewer` (np. `Viewer("https://example.com/page.html")`). Viewer pobierze stronę przed zastosowaniem **html to pdf options**. + +**P: Czy mogę konwertować wiele plików HTML jednocześnie?** +O: Umieść kod konwersji w pętli iterującej po liście ścieżek plików. Ponownie użyj tych samych obiektów `resource_options` i `pdf_options` dla wydajności. + +**P: Co jeśli HTML używa JavaScript do modyfikacji DOM?** +O: GroupDocs.Viewer renderuje statyczny HTML; nie **wykonuje** JavaScript. Dla dynamicznych stron najpierw wyrenderuj stronę w przeglądarce bez interfejsu (np. Selenium), a następnie przekaż powstały statyczny HTML do konwertera. + +## Zakończenie + +Masz teraz kompletną, gotową do produkcji metodę **convert HTML to PDF** w Pythonie. Konfigurując **resource handling** kontrolujesz, jak głęboko przetwarzane są powiązane zasoby, a `PdfSaveOptions` pozwala **save HTML as PDF** z precyzyjnymi **html to pdf options**. Eksperymentuj z opcjonalnymi ustawieniami — takimi jak osadzanie czcionek czy rozmiar strony — aby dopasować je do dokładnych potrzeb Twojej aplikacji. + +--- + +*Następne kroki*: zbadaj **save HTML document pdf** z ochroną hasłem lub zintegrować tę konwersję z API internetowym przy użyciu Flask lub FastAPI do generowania PDF na żądanie. + +## Co powinieneś nauczyć się dalej? + +Poniższe samouczki obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każde źródło zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/polish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..edcf3cdf0 --- /dev/null +++ b/html/polish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,344 @@ +--- +category: general +date: 2026-08-12 +description: Konwertuj HTML na PDF w Pythonie za pomocą Aspose HTML Converter. Dowiedz + się, jak generować PDF z HTML oraz jak konwertować EPUB na PDF w kilku linijkach + kodu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: pl +lastmod: 2026-08-12 +og_description: Konwertuj HTML na PDF w Pythonie przy użyciu Aspose HTML Converter. + Ten tutorial pokazuje, jak generować PDF z HTML oraz jak konwertować EPUB na PDF + przy użyciu przejrzystego, gotowego do uruchomienia kodu. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Konwertuj HTML na PDF w Pythonie przy użyciu Aspose HTML Converter – szybki + przewodnik +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Konwertuj HTML na PDF w Pythonie przy użyciu Aspose HTML Converter +url: /pl/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konwertuj HTML do PDF w Pythonie przy użyciu Aspose HTML Converter + +Jeśli potrzebujesz **szybkiej konwersji HTML do PDF**, ten przewodnik pokaże Ci dokładnie, jak to zrobić przy użyciu biblioteki Aspose.HTML dla Pythona. Niezależnie od tego, czy tworzysz usługę web‑service, która zamienia strony przesłane przez użytkowników w drukowalne PDF‑y, czy automatyzujesz generowanie raportów, poniższe kroki dostarczają kompletną, gotową do uruchomienia rozwiązanie. + +Oprócz HTML, Aspose.HTML obsługuje także formaty e‑booków, więc zobaczysz **jak konwertować pliki EPUB** do PDF bez wychodzenia z Pythona. Po zakończeniu tego samouczka będziesz w stanie **generować PDF z HTML** oraz tworzyć wersje PDF e‑booków EPUB w zaledwie kilku linijkach kodu. + +## Wymagania wstępne + +* Zainstalowany Python 3.8 lub nowszy. +* Aktywna licencja Aspose.HTML dla Pythona (darmowa wersja próbna działa w trybie ewaluacji). +* Dostęp do `pip` w celu zainstalowania pakietu `aspose-html`. +* Przykładowe pliki HTML lub EPUB, które chcesz przekonwertować. + +```bash +pip install aspose-html +``` + +> **Wskazówka:** Zainstaluj pakiet w wirtualnym środowisku, aby utrzymać zależności odizolowane. + +## Przegląd procesu konwersji + +Aspose.HTML udostępnia jedną klasę `Converter`, która abstrahuje szczegóły renderowania HTML, CSS i treści e‑booków do PDF. Przebieg pracy wygląda następująco: + +1. Zaimportuj klasę `Converter`. +2. Wywołaj `Converter.convert(source_path, target_path)`. +3. (Opcjonalnie) Dostosuj ustawienia konwersji, takie jak rozmiar strony czy osadzanie czcionek. + +Biblioteka automatycznie wykrywa format źródłowy na podstawie rozszerzenia pliku, więc ta sama metoda działa zarówno dla plików HTML, jak i EPUB. + +--- + +## Konwertuj HTML do PDF przy użyciu Aspose HTML Converter + +### Krok 1: Importuj moduł konwersji Aspose HTML + +Klasa `Converter` znajduje się w przestrzeni nazw `aspose.html`. Zaimportuj ją na początku swojego skryptu. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Krok 2: Przygotuj ścieżki wejściowe i wyjściowe + +Używaj ścieżek bezwzględnych lub względnych, które Twój skrypt może odczytać/zapisać. Dobrą praktyką jest sprawdzenie, czy plik źródłowy istnieje przed próbą konwersji. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Krok 3: Wykonaj konwersję + +Wywołanie `Converter.convert` wykonuje całą ciężką pracę: renderowanie HTML, zastosowanie CSS i zapisanie pliku PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Dlaczego to działa + +* **Automatyczny silnik układu** – Aspose.HTML używa silnika renderującego opartego na Chromium, zapewniając prawidłowe obsłużenie nowoczesnego CSS, SVG i JavaScript. +* **Brak plików pośrednich** – Konwersja odbywa się w pamięci, co zmniejsza obciążenie I/O i przyspiesza przetwarzanie wsadowe. + +### Oczekiwany wynik + +Po uruchomieniu skryptu, `output.pdf` będzie zawierał wierną reprezentację `input.html`. Otwórz go w dowolnym przeglądarce PDF, aby zweryfikować, że czcionki, obrazy i podziały stron odpowiadają oryginalnej stronie internetowej. + +![Diagram konwersji](https://example.com/conversion-diagram.png "Diagram pokazujący konwersję plików HTML i EPUB do PDF przy użyciu Aspose HTML Converter") + +*(Tekst alternatywny obrazu: Diagram pokazujący konwersję plików HTML i EPUB do PDF przy użyciu Aspose HTML Converter)* + +--- + +## Generuj PDF z HTML z niestandardowymi ustawieniami + +Czasami trzeba kontrolować rozmiar strony, marginesy lub osadzać określone czcionki. Aspose.HTML udostępnia klasę `PdfSaveOptions` w tym celu. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Obiekt `options` jest opcjonalny; pomiń go, jeśli domyślny układ Cię satysfakcjonuje.* + +--- + +## Jak konwertować EPUB do PDF w Pythonie + +### Krok 1: Znajdź źródło EPUB + +Podobnie jak w przypadku HTML, podaj ścieżkę do pliku EPUB, który chcesz przekształcić. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Krok 2: Uruchom konwersję + +Ta sama metoda `Converter.convert` wykrywa rozszerzenie `.epub` i przełącza się na pipeline renderowania e‑booków. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Przypadki brzegowe do rozważenia + +| Sytuacja | Zalecane postępowanie | +|----------------------------------------|----------------------| +| Duży EPUB (setki rozdziałów) | Konwertuj w partiach używając `PdfSaveOptions.start_page` i `end_page`, aby ograniczyć zużycie pamięci. | +| Brakujące czcionki w EPUB | Ustaw `PdfSaveOptions.embed_standard_fonts = True`, aby użyć czcionek systemowych jako zapasowych. | +| EPUB zabezpieczony hasłem | Użyj `PdfLoadOptions`, aby podać hasło przed konwersją (nie pokazano tutaj). | + +--- + +## Pełny, gotowy do uruchomienia przykład + +Poniżej znajduje się pojedynczy skrypt łączący wszystkie powyższe kroki. Zapisz go jako `convert_demo.py` i uruchom z wiersza poleceń. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Uruchom skrypt: + +```bash +python convert_demo.py +``` + +Powinieneś zobaczyć trzy komunikaty potwierdzające oraz trzy pliki PDF w `YOUR_DIRECTORY`. + +--- + +## Typowe pułapki i jak ich unikać + +* **Brak licencji** – Bez ważnej licencji Aspose.HTML biblioteka dodaje znak wodny do każdej strony. Zarejestruj licencję wcześnie w skrypcie: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Ścieżki względne na różnych systemach operacyjnych** – Używaj `os.path.join` i `os.path.abspath`, aby budować ścieżki niezależne od platformy. + +* **Duży HTML z zewnętrznymi zasobami** – Upewnij się, że wszystkie CSS, obrazy i czcionki są dostępne w systemie plików lub osadź je przy użyciu data URI. W przeciwnym razie PDF może wyświetlać puste miejsca. + +* **Bezpieczeństwo wątków** – `Converter.convert` jest bezpieczny wątkowo, ale tworzenie wielu konwerterów jednocześnie może zużywać dużo pamięci. Ponownie używaj jednej instancji konwertera, jeśli przetwarzasz setki plików równolegle. + +--- + +## Zakończenie + +Masz teraz kompletną, gotową do produkcji metodę **konwersji HTML do PDF** oraz **sposób konwersji plików EPUB** do PDF w Pythonie przy użyciu **Aspose HTML Converter**. Samouczek obejmował: + +* Importowanie właściwego modułu. +* Walidację plików wejściowych. +* Wykonanie podstawowej konwersji. +* Dostosowanie wyjścia PDF przy użyciu `PdfSaveOptions`. +* Obsługę dużych lub zabezpieczonych hasłem EPUB‑ów. + +Od tego momentu możesz rozszerzyć rozwiązanie o przetwarzanie wsadowe folderów, integrację kodu z endpointem Flask lub FastAPI, albo eksperymentować z dodatkowymi formatami wyjściowymi, takimi jak DOCX czy PNG (Aspose.HTML obsługuje je również). + +--- + +### Kolejne kroki + +* Zbadaj **generowanie PDF z HTML** z stronami opartymi na JavaScript, włączając `Converter.convert` w sesji przeglądarki headless. +* Połącz ten przepływ pracy z **Aspose.PDF** w celu zadań post‑processingowych, takich jak scalanie wielu PDF‑ów czy dodawanie podpisów cyfrowych. +* Sprawdź zaawansowane opcje **aspose-html-converter**, takie jak `PdfSaveOptions.jpeg_quality` dla dokumentów z dużą ilością obrazów. + +Miłego kodowania i ciesz się niezawodnością Aspose.HTML we wszystkich potrzebach konwersji dokumentów! + +## Co powinieneś nauczyć się dalej? + +Poniższe samouczki obejmują ściśle powiązane tematy, które rozwijają techniki przedstawione w tym przewodniku. Każdy zasób zawiera kompletne działające przykłady kodu z wyjaśnieniami krok po kroku, aby pomóc Ci opanować dodatkowe funkcje API i odkrywać alternatywne podejścia implementacyjne w własnych projektach. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/polish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..1a7110ff3 --- /dev/null +++ b/html/polish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-08-12 +description: Szybko wczytaj HTML z pliku w Pythonie. Dowiedz się, jak odczytać plik + HTML przy użyciu Pythona, wczytać HTML z URL oraz utworzyć dokument HTML z łańcucha + znaków w jednym samouczku. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: pl +lastmod: 2026-08-12 +og_description: Wczytaj HTML z pliku w Pythonie przy użyciu klasy HTMLDocument. Skorzystaj + z tego przewodnika, aby odczytać plik HTML w Pythonie, wczytać HTML z URL oraz utworzyć + HTMLDocument ze stringa, zapewniając solidną obsługę treści internetowych. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Wczytaj HTML z pliku w Pythonie – szybki przewodnik programistyczny +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Wczytaj HTML z pliku w Pythonie – przewodnik krok po kroku +url: /pl/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ładowanie HTML z pliku w Pythonie – przewodnik krok po kroku + +Jeśli potrzebujesz **load html from file in Python**, ten przewodnik pokaże Ci dokładnie, jak to zrobić. Dowiesz się także, jak **read html file using python**, ładować HTML z URL oraz **create htmldocument from string**, aby móc obsługiwać dowolne źródło treści HTML. + +Przykłady używają klasy `HTMLDocument` z pakietu `html_document`, który zapewnia jednolite API dla lokalnych plików, zdalnych URL-i oraz surowych ciągów HTML. Podejście działa z Python 3.8+ i integruje się płynnie ze standardowymi bibliotekami takimi jak `pathlib` i `requests`. + +![Zrzut ekranu kodu ładowania HTML z pliku w Pythonie](image.png) + +## Ładowanie HTML z pliku w Pythonie – podstawowy przykład + +Ładowanie pliku HTML z lokalnego systemu plików jest najczęstszym pierwszym krokiem przy przetwarzaniu statycznych stron. Konstruktor `HTMLDocument` przyjmuje ścieżkę do pliku, automatycznie wykrywa kodowanie pliku i parsuje znacznik. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Dlaczego to działa:** +* `Path` abstrahuje separatory ścieżek specyficzne dla systemu operacyjnego, co sprawia, że kod jest przenośny między Windows, macOS i Linux. +* `HTMLDocument` odczytuje plik w trybie binarnym, wykrywa BOM UTF‑8 lub UTF‑16 i w razie potrzeby przechodzi na domyślne kodowanie systemu. + +**Oczekiwany wynik (zakładając, że HTML zawiera `Example`):** + +``` +Title: Example +``` + +### Częste pułapki przy ładowaniu pliku + +* **FileNotFoundError** – Upewnij się, że ścieżka jest poprawna i plik istnieje. Użyj `file_path.is_file()` do wstępnego sprawdzenia. +* **Encoding errors** – Jeśli strona używa innego niż UTF‑8 zestawu znaków, przekaż `encoding="iso-8859-1"` do konstruktora: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Odczyt pliku HTML przy użyciu Pythona – szczegółowe wyjaśnienie + +Fraza **read html file using python** pojawia się często, gdy programiści muszą wyodrębnić dane z zapisanych stron internetowych. Chociaż `HTMLDocument` abstrahuje większość pracy, możesz także załadować surowy tekst i ręcznie przekazać go do parsera. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Dlaczego możesz wybrać tę drogę:** +* Musisz wstępnie przetworzyć HTML (np. usunąć skrypty) przed parsowaniem. +* Chcesz buforować surowy znacznik do późniejszego użycia bez ponownego odczytywania pliku. + +## Ładowanie HTML z URL – pobieranie zdalnych stron + +Ładowanie HTML bezpośrednio z adresu internetowego rozszerza przepływ pracy o treści na żywo. Krok **load html from url** opiera się na bibliotece `requests` do obsługi HTTP, a następnie przekazuje tekst odpowiedzi do `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Dlaczego to działa:** +* `requests.get` podąża za przekierowaniami i obsługuje HTTPS od razu. +* `response.raise_for_status()` zapewnia, że parsowane są tylko udane odpowiedzi, zapobiegając cichym błędom. + +**Przypadki brzegowe:** +* **Slow network** – Dostosuj parametr `timeout` lub użyj `requests.Session` do puli połączeń. +* **Non‑HTML content** – Zweryfikuj nagłówek `Content-Type` (`response.headers["Content-Type"]`) przed parsowaniem. + +## Tworzenie htmldocument z ciągu znaków – praca z surowym HTML + +Czasami generujesz HTML dynamicznie (np. z silnika szablonów) i musisz traktować go jako dokument bez zapisywania na dysku. Operacja **create htmldocument from string** jest prosta. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Dlaczego jest to przydatne:** +* Eliminuje potrzebę plików tymczasowych, co poprawia wydajność w środowiskach serverless. +* Pozwala zwalidować wygenerowany znacznik przed wysłaniem go do klienta lub zapisaniem. + +**Wskazówki dotyczące obsługi ciągów:** +* Używaj ciągów potrójnie cudzysłowionych, aby znacznik był czytelny. +* Jeśli HTML zawiera znaki Unicode, upewnij się, że plik źródłowy jest zapisany w kodowaniu UTF‑8. + +## Pełny przykład end‑to‑end + +Połączenie wszystkich czterech strategii ładowania pokazuje elastyczny pipeline, który może przełączać się między źródłami lokalnymi, zdalnymi i w pamięci. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Co ten kod ilustruje:** + +* Jedna klasa `HTMLDocument` obsługuje wszystkie typy wejścia, zmniejszając powierzchnię API. +* Funkcje pomocnicze enkapsulują obsługę błędów i upraszczają kod wywołujący. +* Wzorzec skaluje się do przetwarzania wsadowego: iteruj po liście ścieżek plików lub URL-i i podawaj każdy dokument do scraper'a lub transformera. + +## Zakończenie + +Teraz wiesz, jak **load html from file in Python** przy użyciu klasy `HTMLDocument`, jak **read html file using + +## Co powinieneś nauczyć się dalej? + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/portuguese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..bb937e33a --- /dev/null +++ b/html/portuguese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-08-12 +description: Converta HTML para Markdown usando Python. Aprenda um fluxo de trabalho + de linha de comando para converter páginas da web em Markdown e automatizar a documentação. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: pt +lastmod: 2026-08-12 +og_description: Converta HTML para Markdown usando Python. Este tutorial mostra uma + solução de linha de comando para converter páginas da web para Markdown de forma + rápida e confiável. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Converter HTML para Markdown com Python – guia passo a passo +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Converter HTML para Markdown com Python – guia completo de programação +url: /pt/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converter HTML para Markdown com Python – guia completo de programação + +Se você precisa **converter HTML para Markdown**, este guia mostra uma solução pronta‑para‑usar. Você verá como um pequeno script Python transforma qualquer arquivo HTML em Markdown limpo, com formatação Git, e como você pode invocar a mesma lógica a partir da linha de comando. + +Converter páginas da web para Markdown é uma etapa comum ao criar sites de documentação estática ou ao preparar conteúdo para repositórios versionados. Ao final deste tutorial você terá uma ferramenta de linha de comando reutilizável que lida com codificação HTML, preserva links e respeita as convenções de Markdown com formatação Git. + +## Pré-requisitos + +* Python 3.9 ou mais recente instalado no seu sistema. +* O pacote Python `groupdocs-conversion` (ou qualquer biblioteca que forneça `HTMLDocument`, `MarkdownSaveOptions` e `Converter`). Instale‑o com: + +```bash +pip install groupdocs-conversion +``` + +* Uma pasta que contém o arquivo fonte `input.html` que você deseja processar. + +As seções a seguir percorrem cada etapa, explicam por que são importantes e fornecem o código exato que você precisa. + +## Etapa 1: Configurar o ambiente + +Criar um ambiente virtual isolado evita conflitos de dependências e torna a ferramenta de linha de comando portátil. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Por que esta etapa?* +Um ambiente virtual isola o pacote `groupdocs-conversion` de outros projetos, garantindo que a utilidade `convert html to markdown command line` seja executada com as versões exatas que você testou. + +## Etapa 2: Escrever o script de conversão + +Crie um arquivo chamado `html_to_md.py` e cole o código a seguir. O script aceita três argumentos: o caminho do HTML de entrada, o caminho do Markdown de saída e uma flag opcional para escolher o formatador Git. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Explicação do script + +| Seção | Propósito | +|---------|---------| +| **Argument parsing** | Habilita o padrão de uso **convert html to markdown command line**. | +| **HTMLDocument** | Carrega o arquivo fonte; a biblioteca abstrai a codificação de caracteres e a análise do DOM. | +| **MarkdownSaveOptions** | Permite alternar entre Markdown simples e com formatação Git (`--git` flag). | +| **Converter.convert_html** | Executa o trabalho pesado – percorre a árvore HTML, traduz tags e grava o arquivo de saída. | +| **Error handling** | Fornece uma mensagem clara de sucesso/falha, essencial para pipelines de CI. | + +## Etapa 3: Executar a conversão a partir da linha de comando + +Com o script salvo, você pode converter qualquer arquivo HTML com um único comando: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Saída esperada** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Abra `output.md` em um editor de texto; você verá cabeçalhos, listas e links renderizados em sintaxe Markdown limpa. Como usamos o formatador Git, as tabelas aparecem com delimitadores de pipe (`|`), e listas de tarefas usam a sintaxe `- [ ]`, que o GitHub e o GitLab renderizam nativamente. + +## Etapa 4: Integrar a ferramenta em pipelines de automação + +Se você mantém documentação em um repositório, pode adicionar a etapa de conversão a um workflow de CI. Abaixo está um exemplo de um job do GitHub Actions que roda a cada push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Por que isso importa* – Automatizar a etapa **convert web page to markdown** garante que sua documentação permaneça sincronizada com os arquivos HTML fonte sem esforço manual. + +## Casos de borda e dicas de boas práticas + +* **Problemas de codificação** – Se seu HTML contém caracteres não‑UTF‑8, passe uma codificação explícita ao criar `HTMLDocument` (por exemplo, `HTMLDocument(input_path, encoding='utf-8')`). +* **Arquivos grandes** – Para arquivos HTML maiores que 50 MB, considere fazer a conversão em streaming para evitar picos de memória. A biblioteca fornece o método `convert_html_stream` para esse cenário. +* **Manipulação de CSS personalizada** – O conversor remove atributos de estilo por padrão. Se precisar preservar formatações específicas, habilite `md_opts.preserveFormatting = True`. +* **Atalho de linha de comando** – Crie um pequeno script wrapper (`html2md`) que encaminha argumentos para `html_to_md.py`. Coloque‑o em `$HOME/.local/bin` e adicione ao seu `PATH` para uma experiência ainda mais curta do **convert html to markdown command line**. + +## Perguntas frequentes + +**Isso funciona no Windows, macOS e Linux?** +Sim. O script depende apenas do pacote multiplataforma `groupdocs-conversion` e das bibliotecas padrão do Python, portanto roda sem alterações em todos os três sistemas operacionais. + +**Posso converter uma página web remota diretamente?** +Você pode buscar a página com `requests` e alimentar a string HTML para `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**E se eu precisar apenas de HTML → Markdown com formatação GitHub?** +Basta sempre passar a flag `--git`; o formatador produz saída compatível com GitHub, GitLab e Bitbucket. + +## Conclusão + +Agora você tem uma solução robusta de **convert HTML to Markdown** que funciona a partir de um script Python e da linha de comando. O tutorial abordou a configuração do ambiente, o código‑fonte completo, o uso via linha de comando, a integração CI e o tratamento prático de casos de borda. + +Em seguida, você pode explorar **convert markdown to HTML**, experimentar o Pandoc para opções avançadas de conversão ou adicionar um gerador de front‑matter para incorporar metadados diretamente nos arquivos Markdown. Cada uma dessas extensões se baseia nos conceitos principais que você acabou de dominar. + +Boa conversão! + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos estreitamente relacionados que se baseiam nas técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens de implementação alternativas em seus próprios projetos. + +- [Converter HTML para Markdown no Aspose.HTML para Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Converter HTML para Markdown em .NET com Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/portuguese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..8a98d69fd --- /dev/null +++ b/html/portuguese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Converta HTML em PDF em Python usando o GroupDocs.Viewer. Aprenda como + salvar HTML como PDF com opções flexíveis de HTML para PDF para controle preciso. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: pt +lastmod: 2026-08-12 +og_description: Converta HTML em PDF com o GroupDocs.Viewer. Este guia mostra como + salvar HTML como PDF, configurar opções de HTML para PDF e lidar de forma confiável + com documentos grandes. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Converter HTML para PDF – tutorial passo a passo em Python +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Converter HTML para PDF em Python – guia completo de programação +url: /pt/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converter HTML para PDF em Python – guia completo de programação + +Se você precisa **converter HTML para PDF** em um projeto Python, este guia mostra uma solução pronta‑para‑uso. Vamos percorrer a instalação da biblioteca viewer, a configuração das **opções html para pdf** e, finalmente, **salvar HTML como PDF** com apenas algumas linhas de código. + +Converter documentos HTML costuma envolver o tratamento de recursos vinculados, como imagens, CSS ou JavaScript. Ao final deste tutorial você entenderá como limitar o aninhamento de recursos, evitar picos de memória e produzir um arquivo PDF limpo que corresponde ao layout da página original. + +## Pré‑requisitos + +- Python 3.8 ou superior +- `pip` (gerenciador de pacotes Python) +- Acesso ao arquivo HTML que você deseja converter (por exemplo, `large_page.html`) + +Nenhuma biblioteca de sistema adicional é necessária porque o GroupDocs.Viewer inclui todos os mecanismos de renderização necessários. + +## Etapa 1: Instalar GroupDocs.Viewer para Python + +O GroupDocs.Viewer fornece conversão de alta fidelidade de vários formatos, incluindo HTML, para PDF. Instale-o com: + +```bash +pip install groupdocs-viewer +``` + +> **Dica profissional:** Use um ambiente virtual (`python -m venv .venv`) para manter as dependências isoladas de outros projetos. + +## Etapa 2: Configurar **opções html para pdf** – limitar a profundidade de aninhamento de recursos + +Páginas HTML grandes podem conter recursos profundamente aninhados (iframes, importações CSS, etc.). Definir uma profundidade máxima de tratamento impede que o conversor recorra indefinidamente e mantém o uso de memória previsível. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +A propriedade `max_handling_depth` informa ao viewer quantos níveis de recursos vinculados ele deve seguir. Uma profundidade de `3` funciona bem para a maioria das páginas da web, preservando ainda assim imagens e estilos necessários. + +## Etapa 3: Carregar o documento HTML que você deseja **converter HTML para PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstrai a detecção do formato de arquivo, portanto você não precisa instanciar manualmente `HtmlDocument`. Esta etapa prepara a representação interna que o conversor usará. + +## Etapa 4: **Salvar HTML como PDF** usando as **opções html para pdf** configuradas + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +O objeto `PdfSaveOptions` agrupa todas as configurações específicas de PDF, incluindo o `resource_handling_options` que definimos anteriormente. Quando `viewer.save` é executado, a página HTML é renderizada, os recursos são processados até a profundidade permitida e o PDF final é gravado em `output_path`. + +### Resultado esperado + +Depois que o script terminar, `output.pdf` conterá uma representação fiel de `large_page.html`. Abra o PDF com qualquer visualizador (Adobe Reader, Chrome, etc.) e verifique que: + +- Imagens, tabelas e estilos CSS básicos aparecem corretamente. +- Não há páginas em branco inesperadas causadas por recursão profunda de recursos. + +## Tratamento de casos extremos e variações comuns + +| Situação | Ajuste recomendado | +|-----------|-------------------| +| **HTML contém fontes externas** | Adicione `pdf_options.embed_all_fonts = True` para garantir que as fontes sejam incorporadas ao PDF. | +| **Você precisa de um tamanho de página específico** | Defina `pdf_options.page_width` e `pdf_options.page_height` (por exemplo, A4: `595, 842`). | +| **Arquivos grandes causam erros de falta de memória** | Diminua `resource_options.max_handling_depth` ou divida o HTML em fragmentos menores e converta cada um separadamente. | +| **Você quer proteger o PDF com senha** | Use `pdf_options.password = "YourSecret"` antes de chamar `save`. | + +Esses ajustes ilustram a flexibilidade das **opções html para pdf** e mostram como você pode adaptar a conversão às suas necessidades exatas. + +## Script completo que você pode copiar‑colar + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Execute o script: + +```bash +python convert_html_to_pdf.py +``` + +Você deverá ver a mensagem de confirmação e encontrar `output.pdf` no diretório especificado. + +## Perguntas frequentes + +**P: Isso funciona com URLs remotas em vez de arquivos locais?** +R: Sim. Passe a string da URL para `Viewer` (por exemplo, `Viewer("https://example.com/page.html")`). O viewer baixará a página antes de aplicar as **opções html para pdf**. + +**P: Posso converter vários arquivos HTML em lote?** +R: Envolva o código de conversão em um loop que itere sobre uma lista de caminhos de arquivos. Re‑utilize os mesmos objetos `resource_options` e `pdf_options` para maior eficiência. + +**P: E se o HTML usar JavaScript para modificar o DOM?** +R: O GroupDocs.Viewer renderiza o HTML estático; ele **não** executa JavaScript. Para páginas dinâmicas, renderize a página em um navegador headless (por exemplo, Selenium) primeiro, depois alimente o HTML estático resultante ao conversor. + +## Conclusão + +Agora você tem um método completo e pronto para produção de **converter HTML para PDF** em Python. Ao configurar o **manuseio de recursos** você controla a profundidade de processamento de recursos vinculados, e o `PdfSaveOptions` permite **salvar HTML como PDF** com opções de **html para pdf** granulares. Experimente as configurações opcionais — como incorporação de fontes ou dimensionamento de página — para atender exatamente às necessidades da sua aplicação. + +--- + +*Próximos passos*: explore **salvar documento HTML pdf** com proteção por senha, ou integre essa conversão em uma API web usando Flask ou FastAPI para geração de PDF sob demanda. + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos intimamente relacionados que expandem as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas de implementação em seus próprios projetos. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/portuguese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..d97e276f7 --- /dev/null +++ b/html/portuguese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,341 @@ +--- +category: general +date: 2026-08-12 +description: Converta HTML para PDF em Python com o Aspose HTML Converter. Aprenda + como gerar PDF a partir de HTML e como converter EPUB para PDF em apenas algumas + linhas de código. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: pt +lastmod: 2026-08-12 +og_description: Converter HTML para PDF em Python usando o Aspose HTML Converter. + Este tutorial mostra como gerar PDF a partir de HTML e como converter EPUB para + PDF com código claro e executável. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Converter HTML para PDF em Python com Aspose HTML Converter – guia rápido +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Converter HTML para PDF em Python usando o Conversor HTML da Aspose +url: /pt/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Converter HTML para PDF em Python usando Aspose HTML Converter + +Se você precisa **converter HTML para PDF** rapidamente, este guia mostra exatamente como fazer isso com a biblioteca Aspose.HTML para Python. Seja construindo um serviço web que transforma páginas enviadas pelos usuários em PDFs imprimíveis ou automatizando a geração de relatórios, os passos abaixo fornecem uma solução completa e pronta‑para‑executar. + +Além de HTML, o Aspose.HTML também lida com formatos de e‑book, então você verá **como converter arquivos EPUB** para PDF sem sair do Python. Ao final deste tutorial você será capaz de **gerar PDF a partir de HTML** e criar versões PDF de e‑books EPUB em apenas algumas linhas de código. + +## Pré-requisitos + +* Python 3.8 ou mais recente instalado. +* Uma licença ativa do Aspose.HTML para Python (a avaliação gratuita funciona para testes). +* Acesso ao `pip` para instalar o pacote `aspose-html`. +* Arquivos de exemplo HTML ou EPUB que você deseja converter. + +```bash +pip install aspose-html +``` + +> **Dica profissional:** Instale o pacote dentro de um ambiente virtual para manter as dependências isoladas. + +## Visão geral do processo de conversão + +O Aspose.HTML fornece uma única classe `Converter` que abstrai os detalhes de renderização de HTML, CSS e conteúdo de e‑book em PDF. O fluxo de trabalho é: + +1. Importar a classe `Converter`. +2. Chamar `Converter.convert(source_path, target_path)`. +3. (Opcional) Ajustar as configurações de conversão, como tamanho da página ou incorporação de fontes. + +A biblioteca detecta automaticamente o formato de origem com base na extensão do arquivo, portanto o mesmo método funciona tanto para arquivos HTML quanto EPUB. + +--- + +## Converter HTML para PDF com Aspose HTML Converter + +### Etapa 1: Importar o módulo de conversão Aspose HTML + +A classe `Converter` está no namespace `aspose.html`. Importe-a no início do seu script. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Etapa 2: Preparar caminhos de entrada e saída + +Use caminhos absolutos ou relativos que seu script possa ler/gravar. É uma boa prática validar se o arquivo de origem existe antes de tentar a conversão. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Etapa 3: Executar a conversão + +Chamar `Converter.convert` realiza todo o trabalho pesado: renderiza o HTML, aplica o CSS e grava um arquivo PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Por que isso funciona + +* **Motor de layout automático** – O Aspose.HTML usa um motor de renderização baseado em Chromium, garantindo que CSS, SVG e JavaScript modernos sejam processados corretamente. +* **Sem arquivos intermediários** – A conversão ocorre na memória, o que reduz a sobrecarga de I/O e acelera o processamento em lote. + +### Saída esperada + +Após executar o script, `output.pdf` conterá uma representação fiel de `input.html`. Abra‑o com qualquer visualizador de PDF para verificar se fontes, imagens e quebras de página correspondem à página web original. + +![Diagrama de conversão](https://example.com/conversion-diagram.png "Diagrama mostrando a conversão de arquivos HTML e EPUB para PDF usando Aspose HTML Converter") + +*(Texto alternativo da imagem: Diagrama mostrando a conversão de arquivos HTML e EPUB para PDF usando Aspose HTML Converter)* + +--- + +## Gerar PDF a partir de HTML com configurações personalizadas + +Às vezes você precisa controlar o tamanho da página, margens ou incorporar fontes específicas. O Aspose.HTML expõe uma classe `PdfSaveOptions` para esse propósito. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*O objeto `options` é opcional; omita‑o se estiver satisfeito com o layout padrão.* + +--- + +## Como converter EPUB para PDF em Python + +### Etapa 1: Localizar a fonte EPUB + +Assim como com HTML, forneça o caminho para o arquivo EPUB que você deseja transformar. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Etapa 2: Executar a conversão + +O mesmo método `Converter.convert` detecta a extensão `.epub` e muda para o pipeline de renderização de e‑book. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Casos de borda a considerar + +| Situação | Manuseio recomendado | +|----------------------------------------|----------------------| +| EPUB grande (centenas de capítulos) | Converter em partes usando `PdfSaveOptions.start_page` e `end_page` para limitar o uso de memória. | +| Fontes ausentes no EPUB | Defina `PdfSaveOptions.embed_standard_fonts = True` para usar fontes do sistema como fallback. | +| EPUB protegido por senha | Use `PdfLoadOptions` para fornecer a senha antes da conversão (não mostrado aqui). | + +--- + +## Exemplo completo e executável + +Abaixo está um único script que combina todas as etapas acima. Salve‑o como `convert_demo.py` e execute‑o a partir da linha de comando. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Execute o script: + +```bash +python convert_demo.py +``` + +Você deverá ver três mensagens de confirmação e três arquivos PDF em `YOUR_DIRECTORY`. + +--- + +## Armadilhas comuns e como evitá‑las + +* **Licença ausente** – Sem uma licença válida do Aspose.HTML, a biblioteca adiciona uma marca d'água a cada página. Registre sua licença logo no início do script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Caminhos relativos em diferentes SOs** – Use `os.path.join` e `os.path.abspath` para construir caminhos independentes de plataforma. + +* **HTML grande com recursos externos** – Garanta que todos os CSS, imagens e fontes estejam acessíveis a partir do sistema de arquivos ou incorpore‑os usando data URIs. Caso contrário, o PDF pode renderizar marcadores de posição vazios. + +* **Segurança de threads** – `Converter.convert` é thread‑safe, mas criar muitos conversores simultaneamente pode consumir memória significativa. Reutilize uma única instância de conversor se estiver processando centenas de arquivos em paralelo. + +--- + +## Conclusão + +Agora você tem uma abordagem completa e pronta para produção para **converter HTML para PDF** e **como converter arquivos EPUB** para PDF em Python usando o **Aspose HTML Converter**. O tutorial abordou: + +* Importação do módulo correto. +* Validação dos arquivos de entrada. +* Execução de uma conversão básica. +* Personalização da saída PDF com `PdfSaveOptions`. +* Manipulação de EPUBs grandes ou protegidos por senha. + +A partir daqui você pode estender a solução para processar lotes de pastas, integrar o código em um endpoint Flask ou FastAPI, ou experimentar formatos de saída adicionais como DOCX ou PNG (o Aspose.HTML também suporta esses formatos). + +### Próximos passos + +* Explore **gerar PDF a partir de HTML** com páginas que utilizam JavaScript habilitando `Converter.convert` com uma sessão de navegador headless. +* Combine este fluxo de trabalho com **Aspose.PDF** para tarefas de pós‑processamento, como mesclar vários PDFs ou adicionar assinaturas digitais. +* Confira as opções avançadas do **aspose-html-converter**, como `PdfSaveOptions.jpeg_quality`, para documentos com muitas imagens. + +Feliz codificação, e aproveite a confiabilidade do Aspose.HTML para todas as suas necessidades de conversão de documentos! + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos estreitamente relacionados que se baseiam nas técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens de implementação alternativas em seus próprios projetos. + +- [Converter HTML para PDF com Aspose.HTML – Guia Completo de Manipulação](/html/english/) +- [Converter EPUB para PDF em .NET com Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/portuguese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..f70ec2723 --- /dev/null +++ b/html/portuguese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Carregue HTML de um arquivo em Python rapidamente. Aprenda como ler um + arquivo HTML usando Python, carregar HTML de uma URL e criar um htmldocument a partir + de uma string em um único tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: pt +lastmod: 2026-08-12 +og_description: Carregue HTML de um arquivo em Python usando a classe HTMLDocument. + Siga este guia para ler um arquivo HTML usando Python, carregar HTML de uma URL + e criar um HTMLDocument a partir de uma string para um manuseio robusto de conteúdo + web. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Carregar HTML de arquivo em Python – guia rápido de programação +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Carregar HTML de um arquivo em Python – guia passo a passo +url: /pt/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Carregar html de arquivo em Python – guia passo a passo + +Se você precisa **carregar html de arquivo em Python**, este guia mostra exatamente como fazer. Você também aprenderá como **ler arquivo html usando python**, carregar html de url e **criar htmldocument a partir de string** para lidar com qualquer origem de conteúdo HTML. + +Os exemplos utilizam a classe `HTMLDocument` do pacote `html_document`, que fornece uma API unificada para arquivos locais, URLs remotas e strings HTML brutas. A abordagem funciona com Python 3.8+ e integra‑se perfeitamente com bibliotecas padrão como `pathlib` e `requests`. + +![Captura de tela do código Load html from file in Python](image.png) + +## Carregar html de arquivo em Python – exemplo básico + +Carregar um arquivo HTML do sistema de arquivos local é a etapa inicial mais comum ao processar páginas estáticas. O construtor `HTMLDocument` aceita um caminho de arquivo, detecta automaticamente a codificação do arquivo e analisa a marcação. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Por que isso funciona:** +* `Path` abstrai os separadores de caminho específicos do SO, tornando o código portátil entre Windows, macOS e Linux. +* `HTMLDocument` lê o arquivo em modo binário, detecta BOM UTF‑8 ou UTF‑16 e recorre à codificação padrão do sistema quando necessário. + +**Saída esperada (supondo que o HTML contenha `Example`):** + +``` +Title: Example +``` + +### Armadilhas comuns ao carregar um arquivo + +* **FileNotFoundError** – Certifique‑se de que o caminho está correto e o arquivo existe. Use `file_path.is_file()` para pré‑verificação. +* **Erros de codificação** – Se a página usar um charset que não seja UTF‑8, passe `encoding="iso-8859-1"` ao construtor: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Ler arquivo html usando python – explicação detalhada + +A expressão **read html file using python** aparece frequentemente quando desenvolvedores precisam extrair dados de páginas web salvas. Embora `HTMLDocument` abstraia a maior parte do trabalho, você também pode carregar texto bruto e alimentá‑lo ao analisador manualmente. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Por que você pode escolher essa rota:** +* Você precisa pré‑processar o HTML (por exemplo, remover scripts) antes da análise. +* Você quer armazenar em cache a marcação bruta para reutilização posterior sem reler o arquivo. + +## Carregar html de url – obtendo páginas remotas + +Carregar HTML diretamente de um endereço web expande o fluxo de trabalho para conteúdo ao vivo. A etapa **load html from url** depende da biblioteca `requests` para o tratamento HTTP e então entrega o texto da resposta ao `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Por que isso funciona:** +* `requests.get` segue redirecionamentos e lida com HTTPS automaticamente. +* `response.raise_for_status()` garante que apenas respostas bem‑sucedidas sejam analisadas, evitando falhas silenciosas. + +**Casos extremos:** +* **Rede lenta** – Ajuste o parâmetro `timeout` ou use `requests.Session` para pool de conexões. +* **Conteúdo não‑HTML** – Verifique o cabeçalho `Content-Type` (`response.headers["Content-Type"]`) antes de analisar. + +## Criar htmldocument a partir de string – trabalhando com HTML bruto + +Às vezes você gera HTML dinamicamente (por exemplo, a partir de um motor de templates) e precisa tratá‑lo como um documento sem gravá‑lo em disco. A operação **create htmldocument from string** é direta. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Por que isso é útil:** +* Elimina a necessidade de arquivos temporários, melhorando o desempenho em ambientes serverless. +* Permite validar a marcação gerada antes de enviá‑la ao cliente ou armazená‑la. + +**Dicas para manipulação de strings:** +* Use strings entre aspas triplas para manter a marcação legível. +* Se o HTML incluir caracteres Unicode, assegure‑se de que o arquivo fonte esteja salvo com codificação UTF‑8. + +## Exemplo completo de ponta a ponta + +Unir as quatro estratégias de carregamento demonstra um pipeline flexível que pode alternar entre fontes locais, remotas e em memória. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**O que este código ilustra:** + +* Uma única classe `HTMLDocument` lida com todos os tipos de entrada, reduzindo a superfície da API. +* Funções auxiliares encapsulam o tratamento de erros e tornam o código chamador conciso. +* O padrão escala para processamento em lote: itere sobre uma lista de caminhos de arquivos ou URLs e alimente cada documento a um scraper ou transformador. + +## Conclusão + +Agora você sabe como **carregar html de arquivo em Python** usando a classe `HTMLDocument`, como **ler arquivo html usando python** e como **criar htmldocument a partir de string** para manipular conteúdo HTML de diversas origens. + +## O que você deve aprender a seguir? + +Os tutoriais a seguir abordam tópicos intimamente relacionados que ampliam as técnicas demonstradas neste guia. Cada recurso inclui exemplos de código completos e funcionais com explicações passo a passo para ajudá‑lo a dominar recursos adicionais da API e explorar abordagens alternativas de implementação em seus próprios projetos. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/russian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..3d84579fc --- /dev/null +++ b/html/russian/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-08-12 +description: Преобразуйте HTML в Markdown с помощью Python. Узнайте, как использовать + командную строку для преобразования веб‑страницы в Markdown и автоматизации документации. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: ru +lastmod: 2026-08-12 +og_description: Конвертируйте HTML в Markdown с помощью Python. Этот учебник показывает + решение командной строки для быстрой и надёжной конвертации веб‑страницы в Markdown. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Преобразование HTML в Markdown с помощью Python — пошаговое руководство +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Преобразование HTML в Markdown с помощью Python — полное руководство по программированию +url: /ru/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Преобразование HTML в Markdown с помощью Python – полное руководство по программированию + +Если вам нужно **convert HTML to Markdown**, это руководство покажет готовое к запуску решение. Вы увидите, как короткий скрипт на Python преобразует любой HTML‑файл в чистый Git‑flavored Markdown и как вызвать ту же логику из командной строки. + +Преобразование веб‑страниц в Markdown — распространённый шаг при создании статических сайтов документации или подготовке контента для репозиториев с контролем версий. К концу этого урока у вас будет переиспользуемый инструмент командной строки, который обрабатывает кодировку HTML, сохраняет ссылки и соблюдает правила Git‑flavored Markdown. + +## Prerequisites + +Перед началом убедитесь, что у вас есть: + +* Python 3.9 или новее, установленный в системе. +* Пакет Python `groupdocs-conversion` (или любая библиотека, предоставляющая `HTMLDocument`, `MarkdownSaveOptions` и `Converter`). Установите его с помощью: + +```bash +pip install groupdocs-conversion +``` + +* Папка, содержащая исходный файл `input.html`, который вы хотите обработать. + +Следующие разделы пошагово проходят каждый этап, объясняют, почему это важно, и предоставляют точный код, который вам нужен. + +## Step 1: Set up the environment + +Создание изолированного виртуального окружения предотвращает конфликты зависимостей и делает инструмент командной строки портативным. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Why this step?* +Виртуальное окружение изолирует пакет `groupdocs-conversion` от других проектов, гарантируя, что утилита **convert html to markdown command line** будет работать с точно теми версиями, которые вы протестировали. + +## Step 2: Write the conversion script + +Создайте файл с именем `html_to_md.py` и вставьте в него следующий код. Скрипт принимает три аргумента: путь к входному HTML, путь к выходному Markdown и необязательный флаг для выбора Git‑flavored форматировщика. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Explanation of the script + +| Раздел | Назначение | +|---------|------------| +| **Argument parsing** | Позволяет использовать шаблон **convert html to markdown command line**. | +| **HTMLDocument** | Загружает исходный файл; библиотека абстрагирует кодировку символов и разбор DOM. | +| **MarkdownSaveOptions** | Позволяет переключаться между обычным и Git‑flavored Markdown (флаг `--git`). | +| **Converter.convert_html** | Выполняет основную работу — проходит по дереву HTML, переводит теги и записывает файл вывода. | +| **Error handling** | Предоставляет чёткое сообщение об успехе/неудаче, что важно для CI‑конвейеров. | + +## Step 3: Run the conversion from the command line + +После сохранения скрипта вы можете преобразовать любой HTML‑файл одной командой: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Expected output** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Откройте `output.md` в текстовом редакторе; вы увидите заголовки, списки и ссылки, отформатированные в чистом синтаксисе Markdown. Поскольку мы использовали Git‑форматировщик, таблицы отображаются с разделителями‑трубками (`|`), а списки задач используют синтаксис `- [ ]`, который нативно рендерится в GitHub и GitLab. + +## Step 4: Integrate the tool into automation pipelines + +Если вы поддерживаете документацию в репозитории, можете добавить шаг преобразования в CI‑конвейер. Ниже пример задания GitHub Actions, которое запускается при каждом push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Why this matters* – Автоматизация шага **convert web page to markdown** гарантирует, что ваша документация будет синхронизирована с исходными HTML‑файлами без ручных усилий. + +## Edge cases and best‑practice tips + +* **Encoding problems** – Если ваш HTML содержит символы, не являющиеся UTF‑8, передайте явную кодировку при создании `HTMLDocument` (например, `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – Для HTML‑файлов размером более 50 МБ рассмотрите потоковое преобразование, чтобы избежать всплесков памяти. Библиотека предоставляет метод `convert_html_stream` для такого сценария. +* **Custom CSS handling** – Конвертер по умолчанию удаляет атрибуты стиля. Если нужно сохранить определённое форматирование, включите `md_opts.preserveFormatting = True`. +* **Command‑line shortcut** – Создайте небольшой обёрточный скрипт (`html2md`), который передаёт аргументы в `html_to_md.py`. Поместите его в `$HOME/.local/bin` и добавьте в `PATH` для ещё более короткого опыта **convert html to markdown command line**. + +## Frequently asked questions + +**Does this work on Windows, macOS, and Linux?** +Да. Скрипт опирается только на кросс‑платформенный пакет `groupdocs-conversion` и стандартные библиотеки Python, поэтому он работает без изменений на всех трёх ОС. + +**Can I convert a remote web page directly?** +Вы можете получить страницу с помощью `requests` и передать строку HTML в `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**What if I need HTML → GitHub‑flavored Markdown only?** +Просто всегда передавайте флаг `--git`; форматировщик выдаст вывод, совместимый с GitHub, GitLab и Bitbucket. + +## Conclusion + +Теперь у вас есть надёжное решение **convert HTML to Markdown**, работающее как из скрипта Python, так и из командной строки. В руководстве рассмотрены настройка окружения, полный исходный код, использование командной строки, интеграция в CI и практическое решение краевых случаев. + +Далее вы можете изучить **convert markdown to HTML**, поэкспериментировать с Pandoc для расширенных вариантов преобразования или добавить генератор front‑matter для внедрения метаданных непосредственно в файлы Markdown. Каждый из этих расширений опирается на основные концепции, которые вы только что освоили. + +Happy converting! + +## What Should You Learn Next? + +Следующие уроки охватывают тесно связанные темы, построенные на техниках, продемонстрированных в этом руководстве. Каждый ресурс включает полностью работающие примеры кода с пошаговыми объяснениями, чтобы помочь вам освоить дополнительные возможности API и исследовать альтернативные подходы к реализации в собственных проектах. + +- [Преобразование HTML в Markdown в Aspose.HTML для Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Преобразование HTML в Markdown в .NET с Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/russian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..fcd62ed9e --- /dev/null +++ b/html/russian/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Конвертировать HTML в PDF в Python с помощью GroupDocs.Viewer. Узнайте, + как сохранять HTML как PDF с гибкими параметрами преобразования HTML в PDF для точного + контроля. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: ru +lastmod: 2026-08-12 +og_description: Конвертировать HTML в PDF с помощью GroupDocs.Viewer. Это руководство + покажет, как сохранить HTML в PDF, настроить параметры конвертации HTML в PDF и + надёжно работать с большими документами. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Преобразовать HTML в PDF – пошаговое руководство по Python +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Преобразование HTML в PDF в Python — полный программный гид +url: /ru/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Преобразование HTML в PDF в Python – полное руководство по программированию + +Если вам нужно **convert HTML to PDF** в проекте на Python, это руководство покажет готовое решение. Мы пройдем установку библиотеки viewer, настройку **html to pdf options**, и, наконец, **save HTML as PDF** всего в несколько строк кода. + +Преобразование HTML‑документов часто подразумевает работу с связанными ресурсами, такими как изображения, CSS или JavaScript. К концу этого руководства вы поймёте, как ограничить вложенность ресурсов, избежать всплесков памяти и создать чистый PDF‑файл, соответствующий оригинальному макету страницы. + +## Prerequisites + +- Python 3.8 или новее +- `pip` (установщик пакетов Python) +- Доступ к HTML‑файлу, который вы хотите конвертировать (например, `large_page.html`) + +Дополнительные системные библиотеки не требуются, потому что GroupDocs.Viewer включает все необходимые движки рендеринга. + +## Step 1: Install GroupDocs.Viewer for Python + +GroupDocs.Viewer предоставляет высокоточное преобразование из множества форматов, включая HTML, в PDF. Установите его с помощью: + +```bash +pip install groupdocs-viewer +``` + +> **Pro tip:** Используйте виртуальное окружение (`python -m venv .venv`), чтобы изолировать зависимости от других проектов. + +## Step 2: Configure **html to pdf options** – limit resource nesting depth + +Большие HTML‑страницы могут содержать глубоко вложенные ресурсы (iframes, импорты CSS и т.д.). Установка максимальной глубины обработки предотвращает бесконечную рекурсию конвертера и делает использование памяти предсказуемым. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Свойство `max_handling_depth` указывает viewer, сколько уровней связанных ресурсов следует обрабатывать. Глубина `3` хорошо подходит для большинства веб‑страниц, сохраняя при этом необходимые изображения и стили. + +## Step 3: Load the HTML document you want to **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` абстрагирует определение формата файла, поэтому вам не нужно вручную создавать `HtmlDocument`. Этот шаг подготавливает внутреннее представление, с которым будет работать конвертер. + +## Step 4: **Save HTML as PDF** using the configured **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +Объект `PdfSaveOptions` объединяет все настройки, специфичные для PDF, включая `resource_handling_options`, определённые ранее. Когда вызывается `viewer.save`, HTML‑страница рендерится, ресурсы обрабатываются до разрешённой глубины, и окончательный PDF записывается в `output_path`. + +### Expected result + +После завершения скрипта `output.pdf` содержит точную репрезентацию `large_page.html`. Откройте PDF в любом просмотрщике (Adobe Reader, Chrome и т.д.) и проверьте, что: + +- Изображения, таблицы и базовые стили CSS отображаются корректно. +- Нет неожиданных пустых страниц, вызванных глубокой рекурсией ресурсов. + +## Handling edge cases and common variations + +| Ситуация | Рекомендуемая настройка | +|-----------|-------------------| +| **HTML contains external fonts** | Add `pdf_options.embed_all_fonts = True` to ensure fonts are embedded in the PDF. | +| **You need a specific page size** | Set `pdf_options.page_width` and `pdf_options.page_height` (e.g., A4: `595, 842`). | +| **Large files cause out‑of‑memory errors** | Decrease `resource_options.max_handling_depth` or split the HTML into smaller fragments and convert each separately. | +| **You want to password‑protect the PDF** | Use `pdf_options.password = "YourSecret"` before calling `save`. | + +Эти настройки демонстрируют гибкость **html to pdf options** и показывают, как можно адаптировать преобразование под ваши точные требования. + +## Full script you can copy‑paste + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Run the script: + +```bash +python convert_html_to_pdf.py +``` + +Вы должны увидеть сообщение подтверждения и найти `output.pdf` в указанном каталоге. + +## Frequently asked questions + +**Q: Does this work with remote URLs instead of local files?** +A: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). The viewer will download the page before applying the **html to pdf options**. + +**Q: Can I convert multiple HTML files in a batch?** +A: Wrap the conversion code in a loop that iterates over a list of file paths. Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + +**Q: What if the HTML uses JavaScript to modify the DOM?** +A: GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. For dynamic pages, render the page in a headless browser (e.g., Selenium) first, then feed the resulting static HTML to the converter. + +## Conclusion + +Теперь у вас есть полный, готовый к продакшену метод **convert HTML to PDF** в Python. Настраивая **resource handling**, вы контролируете, насколько глубоко обрабатываются связанные ресурсы, а `PdfSaveOptions` позволяют **save HTML as PDF** с тонкой настройкой **html to pdf options**. Поэкспериментируйте с дополнительными параметрами — например, встраиванием шрифтов или размером страницы — чтобы точно соответствовать потребностям вашего приложения. + +--- + +*Next steps*: explore **save HTML document pdf** with password protection, or integrate this conversion into a web API using Flask or FastAPI for on‑demand PDF generation. + +## What Should You Learn Next? + +Следующие руководства охватывают тесно связанные темы, которые развивают техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью рабочие примеры кода с пошаговыми объяснениями, чтобы помочь вам освоить дополнительные возможности API и исследовать альтернативные подходы к реализации в собственных проектах. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/russian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..ff169c0b7 --- /dev/null +++ b/html/russian/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,348 @@ +--- +category: general +date: 2026-08-12 +description: Конвертируйте HTML в PDF в Python с помощью Aspose HTML Converter. Узнайте, + как генерировать PDF из HTML и как конвертировать EPUB в PDF всего за несколько + строк кода. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: ru +lastmod: 2026-08-12 +og_description: Преобразуйте HTML в PDF в Python с помощью Aspose HTML Converter. + Этот учебник показывает, как генерировать PDF из HTML и как конвертировать EPUB + в PDF с понятным, исполняемым кодом. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Преобразовать HTML в PDF в Python с помощью Aspose HTML Converter — краткое + руководство +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Конвертировать HTML в PDF в Python с помощью Aspose HTML Converter +url: /ru/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Конвертация HTML в PDF в Python с помощью Aspose HTML Converter + +Если вам нужно **быстро конвертировать HTML в PDF**, это руководство покажет, как сделать это с библиотекой Aspose.HTML для Python. Независимо от того, создаёте ли вы веб‑сервис, который превращает пользовательские страницы в печатные PDF, или автоматизируете генерацию отчётов, ниже представлены полные готовые к запуску шаги. + +Помимо HTML, Aspose.HTML также работает с форматами электронных книг, поэтому вы увидите, **как конвертировать EPUB**‑файлы в PDF, не покидая Python. К концу этого урока вы сможете **генерировать PDF из HTML** и создавать PDF‑версии EPUB‑книг всего в несколько строк кода. + +## Требования + +Прежде чем начать, убедитесь, что у вас есть: + +* Python 3.8 или новее. +* Действующая лицензия Aspose.HTML for Python (бесплатная trial‑версия подходит для оценки). +* Доступ к `pip` для установки пакета `aspose-html`. +* Пример HTML‑ или EPUB‑файлов, которые вы хотите конвертировать. + +```bash +pip install aspose-html +``` + +> **Pro tip:** Устанавливайте пакет внутри виртуального окружения, чтобы изолировать зависимости. + +## Обзор процесса конвертации + +Aspose.HTML предоставляет один класс `Converter`, который абстрагирует детали рендеринга HTML, CSS и контента электронных книг в PDF. Рабочий процесс выглядит так: + +1. Импортировать класс `Converter`. +2. Вызвать `Converter.convert(source_path, target_path)`. +3. (Опционально) Настроить параметры конвертации, такие как размер страницы или встраивание шрифтов. + +Библиотека автоматически определяет исходный формат по расширению файла, поэтому один и тот же метод работает как для HTML, так и для EPUB‑файлов. + +--- + +## Конвертация HTML в PDF с помощью Aspose HTML Converter + +### Шаг 1: Импортировать модуль конвертации Aspose HTML + +Класс `Converter` находится в пространстве имён `aspose.html`. Импортируйте его в начале вашего скрипта. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Шаг 2: Подготовить пути к входному и выходному файлам + +Используйте абсолютные или относительные пути, к которым ваш скрипт имеет доступ для чтения/записи. Хорошей практикой является проверка существования исходного файла перед попыткой конвертации. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Шаг 3: Выполнить конвертацию + +Вызов `Converter.convert` выполняет всю тяжёлую работу: рендеринг HTML, применение CSS и запись PDF‑файла. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Почему это работает + +* **Автоматический движок разметки** – Aspose.HTML использует движок рендеринга на основе Chromium, обеспечивая корректную обработку современного CSS, SVG и JavaScript. +* **Без промежуточных файлов** – Конвертация происходит в памяти, что уменьшает нагрузку ввода‑вывода и ускоряет пакетную обработку. + +### Ожидаемый результат + +После выполнения скрипта `output.pdf` будет содержать точную копию `input.html`. Откройте его в любом PDF‑просмотрщике, чтобы убедиться, что шрифты, изображения и разрывы страниц соответствуют оригинальной веб‑странице. + +![Диаграмма конвертации](https://example.com/conversion-diagram.png "Диаграмма, показывающая конвертацию HTML и EPUB файлов в PDF с помощью Aspose HTML Converter") + +*(Текст alt: Диаграмма, показывающая конвертацию HTML и EPUB файлов в PDF с помощью Aspose HTML Converter)* + +--- + +## Генерация PDF из HTML с пользовательскими настройками + +Иногда требуется контролировать размер страницы, поля или встраивание определённых шрифтов. Aspose.HTML предоставляет класс `PdfSaveOptions` для этой цели. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Объект `options` является опциональным; опустите его, если вас устраивает макет по умолчанию.* + +--- + +## Как конвертировать EPUB в PDF в Python + +### Шаг 1: Указать путь к EPUB‑файлу + +Точно так же, как и с HTML, укажите путь к EPUB‑файлу, который нужно преобразовать. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Шаг 2: Запустить конвертацию + +Метод `Converter.convert` автоматически определяет расширение `.epub` и переключается на конвейер рендеринга электронных книг. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Особые случаи, которые стоит учитывать + +| Ситуация | Рекомендованное решение | +|------------------------------------------|--------------------------| +| Большой EPUB (сотни глав) | Конвертировать частями, используя `PdfSaveOptions.start_page` и `end_page` для ограничения использования памяти. | +| Отсутствуют шрифты в EPUB | Установить `PdfSaveOptions.embed_standard_fonts = True`, чтобы использовать системные шрифты в качестве резервных. | +| EPUB с паролем | Использовать `PdfLoadOptions` для передачи пароля перед конвертацией (не показано здесь). | + +--- + +## Полный, готовый к запуску пример + +Ниже представлен единый скрипт, объединяющий все шаги выше. Сохраните его как `convert_demo.py` и запустите из командной строки. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Запуск скрипта: + +```bash +python convert_demo.py +``` + +Вы увидите три сообщения‑подтверждения и три PDF‑файла в `YOUR_DIRECTORY`. + +--- + +## Распространённые подводные камни и как их избежать + +* **Отсутствие лицензии** – Без действующей лицензии Aspose.HTML добавляет водяной знак на каждую страницу. Зарегистрируйте лицензию в начале скрипта: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Относительные пути на разных ОС** – Используйте `os.path.join` и `os.path.abspath` для построения кроссплатформенных путей. + +* **Большой HTML с внешними ресурсами** – Убедитесь, что все CSS, изображения и шрифты доступны в файловой системе или внедрите их с помощью data‑URI. Иначе PDF может содержать пустые места. + +* **Потокобезопасность** – `Converter.convert` потокобезопасен, но создание множества конвертеров одновременно может потреблять значительный объём памяти. Переиспользуйте один экземпляр конвертера, если обрабатываете сотни файлов параллельно. + +--- + +## Заключение + +Теперь у вас есть полностью готовый к продакшену подход к **конвертации HTML в PDF** и **конвертации EPUB** в PDF в Python с помощью **Aspose HTML Converter**. В этом руководстве рассмотрено: + +* Импорт нужного модуля. +* Проверка входных файлов. +* Выполнение базовой конвертации. +* Настройка вывода PDF через `PdfSaveOptions`. +* Обработка больших или защищённых паролем EPUB‑файлов. + +Далее вы можете расширить решение для пакетной обработки папок, интегрировать код в endpoint Flask или FastAPI, либо поэкспериментировать с другими форматами вывода, такими как DOCX или PNG (Aspose.HTML поддерживает их тоже). + +--- + +### Следующие шаги + +* Исследуйте **генерацию PDF из HTML** для страниц, управляемых JavaScript, включив в `Converter.convert` сеанс безголового браузера. +* Скомбинируйте этот рабочий процесс с **Aspose.PDF** для пост‑обработки, такой как объединение нескольких PDF или добавление цифровых подписей. +* Ознакомьтесь с расширенными параметрами **aspose-html-converter**, например `PdfSaveOptions.jpeg_quality` для документов с большим количеством изображений. + +Приятного кодинга и наслаждайтесь надёжностью Aspose.HTML для всех ваших задач по конвертации документов! + +--- + +## Что изучать дальше? + +Следующие учебники охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью рабочие примеры кода с пошаговыми объяснениями, чтобы помочь вам освоить дополнительные возможности API и исследовать альтернативные подходы в собственных проектах. + +- [Конвертация HTML в PDF с Aspose.HTML – Полное руководство по манипуляциям](/html/english/) +- [Конвертация EPUB в PDF в .NET с Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/russian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..f4ea337e7 --- /dev/null +++ b/html/russian/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Быстро загружайте HTML из файла в Python. Узнайте, как читать HTML‑файл + с помощью Python, загружать HTML по URL и создавать htmldocument из строки в одном + руководстве. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: ru +lastmod: 2026-08-12 +og_description: Загружайте HTML из файла в Python с помощью класса HTMLDocument. Следуйте + этому руководству, чтобы читать HTML‑файл с помощью Python, загружать HTML из URL + и создавать HTMLDocument из строки для надёжной обработки веб‑контента. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Загрузка HTML из файла в Python — краткое руководство по программированию +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Загрузка HTML из файла в Python – пошаговое руководство +url: /ru/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Загрузка HTML из файла в Python – пошаговое руководство + +Если вам нужно **загрузить html из файла в Python**, это руководство покажет вам, как это сделать. Вы также узнаете, как **читать html‑файл с помощью python**, загрузить html из url и **создать htmldocument из строки**, чтобы работать с любым источником HTML‑контента. + +Примеры используют класс `HTMLDocument` из пакета `html_document`, который предоставляет единый API для локальных файлов, удалённых URL и строк HTML. Подход работает с Python 3.8+ и легко интегрируется со стандартными библиотеками, такими как `pathlib` и `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Загрузка HTML из файла в Python – базовый пример + +Загрузка HTML‑файла из локальной файловой системы — самый распространённый первый шаг при обработке статических страниц. Конструктор `HTMLDocument` принимает путь к файлу, автоматически определяет кодировку и парсит разметку. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Почему это работает:** +* `Path` абстрагирует разделители путей, специфичные для ОС, делая код переносимым между Windows, macOS и Linux. +* `HTMLDocument` читает файл в бинарном режиме, определяет BOM UTF‑8 или UTF‑16 и при необходимости возвращается к системной кодировке по умолчанию. + +**Ожидаемый вывод (при условии, что HTML содержит `Example`):** + +``` +Title: Example +``` + +### Распространённые подводные камни при загрузке файла + +* **FileNotFoundError** – Убедитесь, что путь указан правильно и файл существует. Для предварительной проверки используйте `file_path.is_file()`. +* **Ошибки кодировки** – Если страница использует не‑UTF‑8 набор символов, передайте `encoding="iso-8859-1"` в конструктор: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Чтение html‑файла с помощью python – подробное объяснение + +Фраза **read html file using python** часто встречается, когда разработчикам нужно извлечь данные из сохранённых веб‑страниц. Хотя `HTMLDocument` абстрагирует большую часть работы, вы также можете загрузить сырый текст и вручную передать его парсеру. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Почему вы можете выбрать этот путь:** +* Нужно предварительно обработать HTML (например, удалить скрипты) перед парсингом. +* Вы хотите кэшировать сырую разметку для последующего повторного использования без повторного чтения файла. + +## Загрузка HTML из URL – получение удалённых страниц + +Загрузка HTML напрямую по веб‑адресу расширяет процесс до работы с живым контентом. Шаг **load html from url** использует библиотеку `requests` для HTTP‑запросов и затем передаёт текст ответа в `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Почему это работает:** +* `requests.get` автоматически обрабатывает редиректы и поддерживает HTTPS. +* `response.raise_for_status()` гарантирует, что парсится только успешный ответ, предотвращая тихие сбои. + +**Особые случаи:** +* **Медленное соединение** – Отрегулируйте параметр `timeout` или используйте `requests.Session` для пула соединений. +* **Не‑HTML контент** – Проверьте заголовок `Content-Type` (`response.headers["Content-Type"]`) перед парсингом. + +## Создание htmldocument из строки – работа с сырым HTML + +Иногда HTML генерируется динамически (например, из шаблонизатора) и его нужно рассматривать как документ без записи на диск. Операция **create htmldocument from string** проста. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Почему это полезно:** +* Убирает необходимость во временных файлах, что повышает производительность в безсерверных средах. +* Позволяет валидировать сгенерированную разметку перед отправкой клиенту или сохранением. + +**Советы по работе со строками:** +* Используйте тройные кавычки, чтобы разметка оставалась читаемой. +* Если HTML содержит Unicode‑символы, убедитесь, что исходный файл сохранён в кодировке UTF‑8. + +## Полный сквозной пример + +Объединение всех четырёх стратегий загрузки демонстрирует гибкий конвейер, способный переключаться между локальными, удалёнными и in‑memory источниками. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Что иллюстрирует этот код:** + +* Один класс `HTMLDocument` обрабатывает все типы входных данных, уменьшая поверхность API. +* Вспомогательные функции инкапсулируют обработку ошибок и делают вызывающий код лаконичным. +* Паттерн масштабируется для пакетной обработки: перебирайте список путей к файлам или URL и передавайте каждый документ в скрейпер или трансформер. + +## Заключение + +Теперь вы знаете, как **загрузить html из файла в Python** с помощью класса `HTMLDocument`, как **читать html‑файл с помощью python** и как работать с другими способами загрузки. + +## Что следует изучить дальше? + + +Следующие руководства охватывают тесно связанные темы, расширяющие техники, продемонстрированные в этом руководстве. Каждый ресурс включает полностью работающие примеры кода с пошаговыми объяснениями, чтобы помочь вам освоить дополнительные возможности API и исследовать альтернативные подходы в ваших проектах. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/spanish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..568aa6d89 --- /dev/null +++ b/html/spanish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,255 @@ +--- +category: general +date: 2026-08-12 +description: Convierte HTML a Markdown usando Python. Aprende un flujo de trabajo + de línea de comandos para convertir una página web a Markdown y automatizar la documentación. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: es +lastmod: 2026-08-12 +og_description: Convierte HTML a Markdown usando Python. Este tutorial te muestra + una solución de línea de comandos para convertir una página web a Markdown de forma + rápida y fiable. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Convertir HTML a Markdown con Python – guía paso a paso +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Convertir HTML a Markdown con Python – guía completa de programación +url: /es/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML a Markdown con Python – guía completa de programación + +Si necesitas **convertir HTML a Markdown**, esta guía te muestra una solución lista‑para‑ejecutar. Verás cómo un breve script de Python transforma cualquier archivo HTML en Markdown limpio, con formato estilo Git, y cómo puedes invocar la misma lógica desde la línea de comandos. + +Convertir páginas web a Markdown es un paso común al crear sitios de documentación estática o al preparar contenido para repositorios bajo control de versiones. Al final de este tutorial tendrás una herramienta de línea de comandos reutilizable que maneja la codificación HTML, preserva los enlaces y respeta las convenciones de Markdown con formato Git. + +## Requisitos previos + +Antes de comenzar, asegúrate de tener: + +* Python 3.9 o superior instalado en tu sistema. +* El paquete Python `groupdocs-conversion` (o cualquier biblioteca que proporcione `HTMLDocument`, `MarkdownSaveOptions` y `Converter`). Instálalo con: + +```bash +pip install groupdocs-conversion +``` + +* Una carpeta que contenga el archivo fuente `input.html` que deseas procesar. + +Las siguientes secciones recorren cada paso, explican por qué es importante y te proporcionan el código exacto que necesitas. + +## Paso 1: Configurar el entorno + +Crear un entorno virtual aislado evita conflictos de dependencias y hace que la herramienta de línea de comandos sea portátil. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*¿Por qué este paso?* +Un entorno virtual aísla el paquete `groupdocs-conversion` de otros proyectos, asegurando que la utilidad `convert html to markdown command line` se ejecute con las versiones exactas que probaste. + +## Paso 2: Escribir el script de conversión + +Crea un archivo llamado `html_to_md.py` y pega el siguiente código. El script acepta tres argumentos: la ruta del HTML de entrada, la ruta del Markdown de salida y una bandera opcional para elegir el formateador con estilo Git. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Explicación del script + +| Sección | Propósito | +|---------|-----------| +| **Argument parsing** | Habilita el patrón de uso **convert html to markdown command line**. | +| **HTMLDocument** | Carga el archivo fuente; la biblioteca abstrae la codificación de caracteres y el análisis del DOM. | +| **MarkdownSaveOptions** | Permite alternar entre Markdown plano y con estilo Git (`--git` flag). | +| **Converter.convert_html** | Realiza el trabajo pesado: recorre el árbol HTML, traduce etiquetas y escribe el archivo de salida. | +| **Error handling** | Proporciona un mensaje claro de éxito o fallo, esencial para pipelines de CI. | + +## Paso 3: Ejecutar la conversión desde la línea de comandos + +Con el script guardado, puedes convertir cualquier archivo HTML con un solo comando: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Salida esperada** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Abre `output.md` en un editor de texto; verás encabezados, listas y enlaces renderizados en sintaxis Markdown limpia. Como usamos el formateador Git, las tablas aparecen con delimitadores de barra vertical (`|`), y las listas de tareas usan la sintaxis `- [ ]`, que GitHub y GitLab renderizan de forma nativa. + +## Paso 4: Integrar la herramienta en pipelines de automatización + +Si mantienes documentación en un repositorio, puedes añadir el paso de conversión a un flujo de trabajo CI. A continuación se muestra un ejemplo para un trabajo de GitHub Actions que se ejecuta en cada push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*¿Por qué es importante?* – Automatizar el paso **convert web page to markdown** garantiza que tu documentación se mantenga sincronizada con los archivos HTML fuente sin esfuerzo manual. + +## Casos límite y consejos de buenas prácticas + +* **Problemas de codificación** – Si tu HTML contiene caracteres que no son UTF‑8, pasa una codificación explícita al crear `HTMLDocument` (p.ej., `HTMLDocument(input_path, encoding='utf-8')`). +* **Archivos grandes** – Para archivos HTML mayores de 50 MB, considera transmitir la conversión para evitar picos de memoria. La biblioteca ofrece el método `convert_html_stream` para este escenario. +* **Manejo de CSS personalizado** – El conversor elimina los atributos de estilo por defecto. Si necesitas preservar un formato específico, habilita `md_opts.preserveFormatting = True`. +* **Atajo de línea de comandos** – Crea un pequeño script wrapper (`html2md`) que reenvíe los argumentos a `html_to_md.py`. Colócalo en `$HOME/.local/bin` y añádelo a tu `PATH` para una experiencia aún más corta del **convert html to markdown command line**. + +## Preguntas frecuentes + +**¿Funciona esto en Windows, macOS y Linux?** +Sí. El script depende únicamente del paquete multiplataforma `groupdocs-conversion` y de las bibliotecas estándar de Python, por lo que se ejecuta sin cambios en los tres sistemas operativos. + +**¿Puedo convertir una página web remota directamente?** +Puedes obtener la página con `requests` y pasar la cadena HTML a `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**¿Qué pasa si solo necesito HTML → Markdown con estilo GitHub?** +Simplemente siempre pasa la bandera `--git`; el formateador produce una salida compatible con GitHub, GitLab y Bitbucket. + +## Conclusión + +Ahora tienes una solución robusta de **convert HTML to Markdown** que funciona desde un script de Python y desde la línea de comandos. El tutorial cubrió la configuración del entorno, el código fuente completo, el uso de la línea de comandos, la integración CI y el manejo práctico de casos límite. + +A continuación, podrías explorar **convert markdown to HTML**, experimentar con Pandoc para opciones de conversión avanzadas, o añadir un generador de front‑matter para incrustar metadatos directamente en los archivos Markdown. Cada una de estas extensiones se basa en los conceptos centrales que acabas de dominar. + +¡Feliz conversión! + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que se basan en las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarte a dominar características adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Convertir HTML a Markdown en Aspose.HTML para Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Convertir HTML a Markdown en .NET con Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/spanish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..8108b73c3 --- /dev/null +++ b/html/spanish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Convierte HTML a PDF en Python usando GroupDocs.Viewer. Aprende cómo + guardar HTML como PDF con opciones flexibles de HTML a PDF para un control preciso. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: es +lastmod: 2026-08-12 +og_description: Convierte HTML a PDF con GroupDocs.Viewer. Esta guía te muestra cómo + guardar HTML como PDF, configurar las opciones de HTML a PDF y manejar documentos + grandes de manera confiable. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Convertir HTML a PDF – tutorial paso a paso de Python +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Convertir HTML a PDF en Python – guía completa de programación +url: /es/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML a PDF en Python – guía completa de programación + +Si necesitas **convertir HTML a PDF** en un proyecto Python, esta guía te muestra una solución lista‑para‑ejecutar. Recorreremos la instalación de la biblioteca viewer, la configuración de **opciones html a pdf**, y finalmente **guardar HTML como PDF** con solo unas pocas líneas de código. + +Convertir documentos HTML a menudo implica manejar recursos vinculados como imágenes, CSS o JavaScript. Al final de este tutorial comprenderás cómo limitar la profundidad de anidamiento de recursos, evitar picos de memoria y producir un archivo PDF limpio que coincida con el diseño original de la página. + +## Requisitos previos + +- Python 3.8 o superior +- `pip` (instalador de paquetes de Python) +- Acceso al archivo HTML que deseas convertir (p. ej., `large_page.html`) + +No se requieren bibliotecas del sistema adicionales porque GroupDocs.Viewer incluye todos los motores de renderizado necesarios. + +## Paso 1: Instalar GroupDocs.Viewer para Python + +GroupDocs.Viewer ofrece conversión de alta fidelidad desde muchos formatos, incluido HTML, a PDF. Instálalo con: + +```bash +pip install groupdocs-viewer +``` + +> **Consejo profesional:** Usa un entorno virtual (`python -m venv .venv`) para mantener las dependencias aisladas de otros proyectos. + +## Paso 2: Configurar **opciones html a pdf** – limitar la profundidad de anidamiento de recursos + +Las páginas HTML grandes pueden contener recursos anidados profundamente (iframes, importaciones CSS, etc.). Establecer una profundidad máxima de manejo evita que el convertidor recursione indefinidamente y mantiene predecible el uso de memoria. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +La propiedad `max_handling_depth` indica al viewer cuántos niveles de recursos vinculados debe seguir. Una profundidad de `3` funciona bien para la mayoría de las páginas web mientras se preservan las imágenes y estilos necesarios. + +## Paso 3: Cargar el documento HTML que deseas **convertir HTML a PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstrae la detección del formato de archivo, por lo que no necesitas instanciar manualmente `HtmlDocument`. Este paso prepara la representación interna con la que trabajará el convertidor. + +## Paso 4: **Guardar HTML como PDF** usando las **opciones html a pdf** configuradas + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +El objeto `PdfSaveOptions` agrupa todas las configuraciones específicas de PDF, incluida la `resource_handling_options` que definimos antes. Cuando se ejecuta `viewer.save`, la página HTML se renderiza, los recursos se procesan hasta la profundidad permitida y el PDF final se escribe en `output_path`. + +### Resultado esperado + +Al terminar el script, `output.pdf` contiene una representación fiel de `large_page.html`. Abre el PDF con cualquier visor (Adobe Reader, Chrome, etc.) y verifica que: + +- Las imágenes, tablas y estilos CSS básicos aparecen correctamente. +- No haya páginas en blanco inesperadas causadas por una recursión profunda de recursos. + +## Manejo de casos límite y variaciones comunes + +| Situación | Ajuste recomendado | +|-----------|--------------------| +| **HTML contiene fuentes externas** | Añade `pdf_options.embed_all_fonts = True` para garantizar que las fuentes se incrusten en el PDF. | +| **Necesitas un tamaño de página específico** | Define `pdf_options.page_width` y `pdf_options.page_height` (p. ej., A4: `595, 842`). | +| **Archivos grandes provocan errores de falta de memoria** | Reduce `resource_options.max_handling_depth` o divide el HTML en fragmentos más pequeños y convierte cada uno por separado. | +| **Quieres proteger el PDF con contraseña** | Usa `pdf_options.password = "YourSecret"` antes de llamar a `save`. | + +Estos ajustes ilustran la flexibilidad de las **opciones html a pdf** y muestran cómo puedes adaptar la conversión a tus requisitos exactos. + +## Script completo que puedes copiar‑pegar + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Ejecuta el script: + +```bash +python convert_html_to_pdf.py +``` + +Deberías ver el mensaje de confirmación y encontrar `output.pdf` en el directorio especificado. + +## Preguntas frecuentes + +**P: ¿Esto funciona con URLs remotas en lugar de archivos locales?** +R: Sí. Pasa la cadena de la URL a `Viewer` (p. ej., `Viewer("https://example.com/page.html")`). El viewer descargará la página antes de aplicar las **opciones html a pdf**. + +**P: ¿Puedo convertir varios archivos HTML en lote?** +R: Envuelve el código de conversión en un bucle que itere sobre una lista de rutas de archivo. Reutiliza los mismos objetos `resource_options` y `pdf_options` para mayor eficiencia. + +**P: ¿Qué pasa si el HTML usa JavaScript para modificar el DOM?** +R: GroupDocs.Viewer renderiza el HTML estático; **no** ejecuta JavaScript. Para páginas dinámicas, renderiza la página en un navegador sin cabeza (p. ej., Selenium) primero, y luego alimenta el HTML estático resultante al convertidor. + +## Conclusión + +Ahora dispones de un método completo y listo para producción para **convertir HTML a PDF** en Python. Al configurar el **manejo de recursos** controlas cuán profundamente se procesan los recursos vinculados, y `PdfSaveOptions` te permite **guardar HTML como PDF** con opciones de **html a pdf** muy granulares. Experimenta con los ajustes opcionales —como la incrustación de fuentes o el tamaño de página— para adaptarlos a las necesidades exactas de tu aplicación. + +--- + +*Próximos pasos*: explora **guardar documento HTML pdf** con protección por contraseña, o integra esta conversión en una API web usando Flask o FastAPI para generación de PDF bajo demanda. + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [How to Convert HTML to PDF Java – Using Aspose.HTML for Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Convert HTML to PDF Java – Configuring Environment in Aspose.HTML](/html/english/java/configuring-environment/) +- [Convert HTML to PDF – Web Request Execution in Aspose.HTML for Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/spanish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..788d8ddd3 --- /dev/null +++ b/html/spanish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,347 @@ +--- +category: general +date: 2026-08-12 +description: Convertir HTML a PDF en Python con Aspose HTML Converter. Aprende cómo + generar PDF a partir de HTML y cómo convertir EPUB a PDF en solo unas pocas líneas + de código. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: es +lastmod: 2026-08-12 +og_description: Convertir HTML a PDF en Python usando Aspose HTML Converter. Este + tutorial muestra cómo generar PDF a partir de HTML y cómo convertir EPUB a PDF con + código claro y ejecutable. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Convertir HTML a PDF en Python con Aspose HTML Converter – guía rápida +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Convertir HTML a PDF en Python usando Aspose HTML Converter +url: /es/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Convertir HTML a PDF en Python usando Aspose HTML Converter + +Si necesitas **convertir HTML a PDF** rápidamente, esta guía te muestra exactamente cómo hacerlo con la biblioteca Aspose.HTML para Python. Ya sea que estés construyendo un servicio web que convierta páginas enviadas por usuarios en PDFs imprimibles o automatizando la generación de informes, los pasos a continuación te ofrecen una solución completa y lista para ejecutar. + +Además de HTML, Aspose.HTML también maneja formatos de libros electrónicos, por lo que verás **cómo convertir archivos EPUB** a PDF sin salir de Python. Al final de este tutorial podrás **generar PDF a partir de HTML** y crear versiones PDF de libros electrónicos EPUB con solo unas pocas líneas de código. + +## Requisitos previos + +Antes de comenzar, asegúrate de tener: + +* Python 3.8 o superior instalado. +* Una licencia activa de Aspose.HTML para Python (la prueba gratuita funciona para evaluación). +* Acceso a `pip` para instalar el paquete `aspose-html`. +* Archivos de muestra HTML o EPUB que deseas convertir. + +```bash +pip install aspose-html +``` + +> **Consejo profesional:** Instala el paquete dentro de un entorno virtual para mantener las dependencias aisladas. + +## Visión general del proceso de conversión + +Aspose.HTML proporciona una única clase `Converter` que abstrae los detalles de renderizado de HTML, CSS y contenido de libros electrónicos a PDF. El flujo de trabajo es: + +1. Importar la clase `Converter`. +2. Llamar a `Converter.convert(source_path, target_path)`. +3. (Opcional) Ajustar la configuración de conversión, como el tamaño de página o la incrustación de fuentes. + +La biblioteca detecta automáticamente el formato de origen basado en la extensión del archivo, por lo que el mismo método funciona tanto para archivos HTML como EPUB. + +--- + +## Convertir HTML a PDF con Aspose HTML Converter + +### Paso 1: Importar el módulo de conversión Aspose HTML + +La clase `Converter` se encuentra en el espacio de nombres `aspose.html`. Impórtala al inicio de tu script. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Paso 2: Preparar rutas de entrada y salida + +Utiliza rutas absolutas o relativas que tu script pueda leer/escribir. Es una buena práctica validar que el archivo de origen exista antes de intentar la conversión. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Paso 3: Realizar la conversión + +Llamar a `Converter.convert` realiza todo el trabajo pesado: renderiza el HTML, aplica el CSS y escribe un archivo PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Por qué funciona esto + +* **Motor de diseño automático** – Aspose.HTML utiliza un motor de renderizado basado en Chromium, garantizando que CSS, SVG y JavaScript modernos se manejen correctamente. +* **Sin archivos intermedios** – La conversión ocurre en memoria, lo que reduce la sobrecarga de E/S y acelera el procesamiento por lotes. + +### Salida esperada + +Después de ejecutar el script, `output.pdf` contendrá una representación fiel de `input.html`. Ábrelo con cualquier visor de PDF para verificar que las fuentes, imágenes y saltos de página coincidan con la página web original. + +![Diagrama de conversión](https://example.com/conversion-diagram.png "Diagrama que muestra la conversión de archivos HTML y EPUB a PDF usando Aspose HTML Converter") + +*(Texto alternativo de la imagen: Diagrama que muestra la conversión de archivos HTML y EPUB a PDF usando Aspose HTML Converter)* + +--- + +## Generar PDF a partir de HTML con configuraciones personalizadas + +A veces necesitas controlar el tamaño de página, los márgenes o incrustar fuentes específicas. Aspose.HTML expone una clase `PdfSaveOptions` para ese propósito. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*El objeto `options` es opcional; omítelo si estás satisfecho con el diseño predeterminado.* + +--- + +## Cómo convertir EPUB a PDF en Python + +### Paso 1: Ubicar el origen EPUB + +Al igual que con HTML, proporciona la ruta al archivo EPUB que deseas transformar. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Paso 2: Ejecutar la conversión + +El mismo método `Converter.convert` detecta la extensión `.epub` y cambia al pipeline de renderizado de libros electrónicos. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Casos límite a considerar + +| Situación | Manejo recomendado | +|----------------------------------------|--------------------| +| EPUB grande (cientos de capítulos) | Convertir en fragmentos usando `PdfSaveOptions.start_page` y `end_page` para limitar el uso de memoria. | +| Fuentes faltantes en el EPUB | Establecer `PdfSaveOptions.embed_standard_fonts = True` para recurrir a las fuentes del sistema. | +| EPUB protegido con contraseña | Usar `PdfLoadOptions` para proporcionar la contraseña antes de la conversión (no se muestra aquí). | + +--- + +## Ejemplo completo y ejecutable + +A continuación hay un único script que combina todos los pasos anteriores. Guárdalo como `convert_demo.py` y ejecútalo desde la línea de comandos. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Ejecuta el script: + +```bash +python convert_demo.py +``` + +Deberías ver tres mensajes de confirmación y tres archivos PDF en `YOUR_DIRECTORY`. + +--- + +## Errores comunes y cómo evitarlos + +* **Licencia faltante** – Sin una licencia válida de Aspose.HTML, la biblioteca agrega una marca de agua a cada página. Registra tu licencia al inicio del script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Rutas relativas en diferentes sistemas operativos** – Usa `os.path.join` y `os.path.abspath` para construir rutas independientes de la plataforma. + +* **HTML grande con recursos externos** – Asegúrate de que todos los CSS, imágenes y fuentes sean accesibles desde el sistema de archivos o incrústalos usando data URIs. De lo contrario, el PDF puede renderizar marcadores de posición en blanco. + +* **Seguridad en hilos** – `Converter.convert` es seguro para hilos, pero crear muchos convertidores simultáneamente puede consumir mucha memoria. Reutiliza una única instancia de convertidor si procesas cientos de archivos en paralelo. + +--- + +## Conclusión + +Ahora tienes un enfoque completo y listo para producción para **convertir HTML a PDF** y **cómo convertir archivos EPUB** a PDF en Python usando el **Aspose HTML Converter**. El tutorial cubrió: + +* Importar el módulo correcto. +* Validar los archivos de entrada. +* Realizar una conversión básica. +* Personalizar la salida PDF con `PdfSaveOptions`. +* Manejar EPUBs grandes o protegidos con contraseña. + +Desde aquí puedes ampliar la solución para procesar carpetas por lotes, integrar el código en un endpoint Flask o FastAPI, o experimentar con formatos de salida adicionales como DOCX o PNG (Aspose.HTML también los soporta). + +--- + +### Próximos pasos + +* Explora **generar PDF a partir de HTML** con páginas impulsadas por JavaScript habilitando `Converter.convert` con una sesión de navegador sin cabeza. +* Combina este flujo de trabajo con **Aspose.PDF** para tareas de post‑procesamiento como combinar varios PDFs o agregar firmas digitales. +* Revisa las opciones avanzadas de **aspose-html-converter** como `PdfSaveOptions.jpeg_quality` para documentos con muchas imágenes. + +¡Feliz codificación, y disfruta de la fiabilidad de Aspose.HTML para todas tus necesidades de conversión de documentos! + +--- + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que amplían las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Convertir HTML a PDF con Aspose.HTML – Guía completa de manipulación](/html/english/) +- [Convertir EPUB a PDF en .NET con Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/spanish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..c2f345841 --- /dev/null +++ b/html/spanish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Cargar HTML desde un archivo en Python rápidamente. Aprende cómo leer + un archivo HTML usando Python, cargar HTML desde una URL y crear un HTMLDocument + a partir de una cadena en un solo tutorial. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: es +lastmod: 2026-08-12 +og_description: Cargar HTML desde un archivo en Python usando la clase HTMLDocument. + Sigue esta guía para leer un archivo HTML con Python, cargar HTML desde una URL + y crear un HTMLDocument a partir de una cadena para un manejo robusto del contenido + web. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Cargar HTML desde un archivo en Python – guía rápida de programación +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Cargar HTML desde un archivo en Python – guía paso a paso +url: /es/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Cargar html desde archivo en Python – guía paso a paso + +Si necesitas **cargar html desde archivo en Python**, esta guía te muestra exactamente cómo. También aprenderás cómo **leer archivo html usando python**, cargar html desde url, y **crear htmldocument desde cadena** para que puedas manejar cualquier fuente de contenido HTML. + +Los ejemplos usan la clase `HTMLDocument` del paquete `html_document`, que proporciona una API unificada para archivos locales, URLs remotas y cadenas HTML sin procesar. El enfoque funciona con Python 3.8+ e integra limpiamente con bibliotecas estándar como `pathlib` y `requests`. + +![Captura de pantalla del código de cargar html desde archivo en Python](image.png) + +## Cargar html desde archivo en Python – ejemplo básico + +Cargar un archivo HTML desde el sistema de archivos local es el paso inicial más común al procesar páginas estáticas. El constructor `HTMLDocument` acepta una ruta de archivo, detecta automáticamente la codificación del archivo y analiza el marcado. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Por qué esto funciona:** +* `Path` abstrae los separadores de ruta específicos del SO, haciendo que el código sea portátil entre Windows, macOS y Linux. +* `HTMLDocument` lee el archivo en modo binario, detecta BOM UTF‑8 o UTF‑16, y recurre a la codificación predeterminada del sistema cuando es necesario. + +**Salida esperada (suponiendo que el HTML contenga `Example`):** + +``` +Title: Example +``` + +### Errores comunes al cargar un archivo + +* **FileNotFoundError** – Asegúrate de que la ruta sea correcta y el archivo exista. Usa `file_path.is_file()` para pre‑verificar. +* **Encoding errors** – Si la página usa un conjunto de caracteres que no sea UTF‑8, pasa `encoding="iso-8859-1"` al constructor: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Leer archivo html usando python – explicación detallada + +La frase **read html file using python** aparece con frecuencia cuando los desarrolladores necesitan extraer datos de páginas web guardadas. Aunque `HTMLDocument` abstrae la mayor parte del trabajo, también puedes cargar texto sin procesar y pasarlo al analizador manualmente. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Por qué podrías elegir esta ruta:** +* Necesitas preprocesar el HTML (p.ej., eliminar scripts) antes de analizarlo. +* Quieres almacenar en caché el marcado sin procesar para reutilizarlo más tarde sin volver a leer el archivo. + +## Cargar html desde url – obteniendo páginas remotas + +Cargar HTML directamente desde una dirección web amplía el flujo de trabajo a contenido en vivo. El paso **load html from url** depende de la biblioteca `requests` para el manejo HTTP y luego entrega el texto de la respuesta a `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Por qué esto funciona:** +* `requests.get` sigue redirecciones y maneja HTTPS de forma nativa. +* `response.raise_for_status()` garantiza que solo se analicen respuestas exitosas, evitando fallos silenciosos. + +**Casos límite:** +* **Red lenta** – Ajusta el parámetro `timeout` o usa `requests.Session` para el agrupamiento de conexiones. +* **Contenido no‑HTML** – Verifica el encabezado `Content-Type` (`response.headers["Content-Type"]`) antes de analizar. + +## Crear htmldocument desde cadena – trabajando con HTML sin procesar + +A veces generas HTML de forma dinámica (p.ej., desde un motor de plantillas) y necesitas tratarlo como un documento sin escribirlo en disco. La operación **create htmldocument from string** es directa. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Por qué es útil:** +* Elimina la necesidad de archivos temporales, lo que mejora el rendimiento en entornos serverless. +* Te permite validar el marcado generado antes de enviarlo a un cliente o almacenarlo. + +**Consejos para manejar cadenas:** +* Usa cadenas con triple comilla para mantener el marcado legible. +* Si el HTML incluye caracteres Unicode, asegura que el archivo fuente se guarde con codificación UTF‑8. + +## Ejemplo completo de extremo a extremo + +Combinar las cuatro estrategias de carga demuestra una canalización flexible que puede alternar entre fuentes locales, remotas y en memoria. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Lo que este código ilustra:** + +* Una única clase `HTMLDocument` maneja todos los tipos de entrada, reduciendo la superficie de la API. +* Las funciones auxiliares encapsulan el manejo de errores y hacen que el código llamador sea conciso. +* El patrón escala al procesamiento por lotes: iterar sobre una lista de rutas de archivo o URLs y alimentar cada documento a un scraper o transformador. + +## Conclusión + +Ahora sabes cómo **cargar html desde archivo en Python** usando la clase `HTMLDocument`, cómo **leer archivo html usando + +## ¿Qué deberías aprender a continuación? + +Los siguientes tutoriales cubren temas estrechamente relacionados que se basan en las técnicas demostradas en esta guía. Cada recurso incluye ejemplos de código completos y funcionales con explicaciones paso a paso para ayudarte a dominar funciones adicionales de la API y explorar enfoques de implementación alternativos en tus propios proyectos. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/swedish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..fa5a8ef12 --- /dev/null +++ b/html/swedish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-08-12 +description: Konvertera HTML till Markdown med Python. Lär dig ett kommandoradsflöde + för att konvertera webbsidor till Markdown och automatisera dokumentation. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: sv +lastmod: 2026-08-12 +og_description: Konvertera HTML till Markdown med Python. Den här handledningen visar + en kommandoradslösning för att snabbt och pålitligt konvertera en webbsida till + Markdown. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Konvertera HTML till Markdown med Python – steg‑för‑steg guide +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Konvertera HTML till Markdown med Python – komplett programmeringsguide +url: /sv/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konvertera HTML till Markdown med Python – komplett programmeringsguide + +Om du behöver **convert HTML to Markdown**, den här guiden visar dig en färdig‑att‑köra‑lösning. Du kommer att se hur ett kort Python‑skript omvandlar vilken HTML‑fil som helst till ren, Git‑flavored Markdown, och hur du kan anropa samma logik från kommandoraden. + +Att konvertera webbsidor till Markdown är ett vanligt steg när man bygger statiska dokumentationssajter eller förbereder innehåll för versionskontrollerade arkiv. I slutet av den här tutorialen kommer du att ha ett återanvändbart kommandoradsverktyg som hanterar HTML‑kodning, bevarar länkar och följer Git‑flavored Markdown‑konventioner. + +## Förutsättningar + +* Python 3.9 eller nyare installerat på ditt system. +* Python‑paketet `groupdocs-conversion` (eller vilket bibliotek som helst som tillhandahåller `HTMLDocument`, `MarkdownSaveOptions` och `Converter`). Installera det med: + +```bash +pip install groupdocs-conversion +``` + +* En mapp som innehåller källfilen `input.html` som du vill bearbeta. + +Följande avsnitt går igenom varje steg, förklarar varför det är viktigt och ger dig den exakta koden du behöver. + +## Steg 1: Ställ in miljön + +Att skapa en isolerad virtuell miljö förhindrar beroendekonflikter och gör kommandoradsverktyget portabelt. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Varför detta steg?* +En virtuell miljö isolerar `groupdocs-conversion`‑paketet från andra projekt, vilket säkerställer att verktyget `convert html to markdown command line` körs med exakt de versioner du testat. + +## Steg 2: Skriv konverteringsskriptet + +Skapa en fil med namnet `html_to_md.py` och klistra in följande kod. Skriptet accepterar tre argument: sökvägen till inmatnings‑HTML, sökvägen till utdata‑Markdown och en valfri flagga för att välja Git‑flavored‑formatteraren. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Förklaring av skriptet + +| Avsnitt | Syfte | +|---------|---------| +| **Argument parsing** | Aktiverar **convert html to markdown command line**‑användningsmönstret. | +| **HTMLDocument** | Laddar källfilen; biblioteket abstraherar teckenkodning och DOM‑parsning. | +| **MarkdownSaveOptions** | Låter dig växla mellan vanlig och Git‑flavored Markdown (`--git`‑flaggan). | +| **Converter.convert_html** | Utför det tunga arbetet – den traverserar HTML‑trädet, översätter taggar och skriver utdatafilen. | +| **Error handling** | Ger ett tydligt framgångs‑/felmeddelande, vilket är viktigt för CI‑pipelines. | + +## Steg 3: Kör konverteringen från kommandoraden + +Med skriptet sparat kan du konvertera vilken HTML‑fil som helst med ett enda kommando: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Förväntad utdata** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Öppna `output.md` i en textredigerare; du kommer att se rubriker, listor och länkar renderade i ren Markdown‑syntax. Eftersom vi använde Git‑formatteraren visas tabeller med pipe‑(`|`)avgränsare, och uppgiftlistor använder `- [ ]`‑syntax, vilket GitHub och GitLab renderar nativt. + +## Steg 4: Integrera verktyget i automatiseringspipeline + +Om du underhåller dokumentation i ett arkiv kan du lägga till konverteringssteget i ett CI‑arbetsflöde. Nedan är ett exempel på ett GitHub Actions‑jobb som körs vid varje push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Varför detta är viktigt* – Att automatisera steget **convert web page to markdown** garanterar att din dokumentation hålls i synk med käll‑HTML‑filer utan manuellt arbete. + +## Edge‑fall och bästa‑praxis‑tips + +* **Encoding problems** – Om din HTML innehåller icke‑UTF‑8‑tecken, skicka en explicit kodning när du skapar `HTMLDocument` (t.ex. `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – För HTML‑filer större än 50 MB, överväg att strömma konverteringen för att undvika minnesspikar. Biblioteket tillhandahåller en `convert_html_stream`‑metod för detta scenario. +* **Custom CSS handling** – Konverteraren tar bort style‑attribut som standard. Om du behöver bevara specifik formatering, aktivera `md_opts.preserveFormatting = True`. +* **Command‑line shortcut** – Skapa ett litet omslagsskript (`html2md`) som vidarebefordrar argument till `html_to_md.py`. Placera det i `$HOME/.local/bin` och lägg till det i din `PATH` för en ännu kortare **convert html to markdown command line**‑upplevelse. + +## Vanliga frågor + +**Fungerar detta på Windows, macOS och Linux?** +Ja. Skriptet förlitar sig endast på det plattformsoberoende `groupdocs-conversion`‑paketet och standard‑Python‑bibliotek, så det körs oförändrat på alla tre operativsystemen. + +**Kan jag konvertera en fjärrwebbsida direkt?** +Du kan hämta sidan med `requests` och skicka HTML‑strängen till `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Vad händer om jag bara behöver HTML → GitHub‑flavored Markdown?** +Skicka helt enkelt alltid `--git`‑flaggan; formatteraren producerar utdata som är kompatibel med GitHub, GitLab och Bitbucket. + +## Slutsats + +Du har nu en robust **convert HTML to Markdown**‑lösning som fungerar från ett Python‑skript och från kommandoraden. Tutorialen täckte miljöinställning, full källkod, kommandoradsanvändning, CI‑integration och praktisk hantering av edge‑case. + +Nästa steg kan vara att utforska **convert markdown to HTML**, experimentera med Pandoc för avancerade konverteringsalternativ, eller lägga till en front‑matter‑generator för att bädda in metadata direkt i Markdown‑filerna. Varje av dessa tillägg bygger på de grundläggande koncept du just har lärt dig. + +Lycka till med konverteringen! + +## Vad bör du lära dig härnäst? + +Följande tutorials täcker närbesläktade ämnen som bygger på teknikerna som demonstrerats i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationsmetoder i dina egna projekt. + +- [Konvertera HTML till Markdown i Aspose.HTML för Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Konvertera HTML till Markdown i .NET med Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/swedish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..ef4e7be27 --- /dev/null +++ b/html/swedish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Konvertera HTML till PDF i Python med GroupDocs.Viewer. Lär dig hur du + sparar HTML som PDF med flexibla HTML‑till‑PDF‑alternativ för exakt kontroll. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: sv +lastmod: 2026-08-12 +og_description: Konvertera HTML till PDF med GroupDocs.Viewer. Denna guide visar hur + du sparar HTML som PDF, konfigurerar HTML‑till‑PDF‑alternativ och hanterar stora + dokument på ett pålitligt sätt. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Konvertera HTML till PDF – steg-för-steg Python‑handledning +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Konvertera HTML till PDF i Python – komplett programmeringsguide +url: /sv/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konvertera HTML till PDF i Python – komplett programmeringsguide + +Om du behöver **konvertera HTML till PDF** i ett Python‑projekt visar den här guiden en färdig lösning som går att köra direkt. Vi går igenom hur du installerar viewer‑biblioteket, konfigurerar **html to pdf options**, och slutligen **save HTML as PDF** med bara några rader kod. + +Att konvertera HTML‑dokument innebär ofta att hantera länkade resurser som bilder, CSS eller JavaScript. I slutet av den här handledningen kommer du att förstå hur du begränsar resurshierarkin, undviker minnesökningar och skapar en ren PDF‑fil som matchar den ursprungliga sidlayouten. + +## Förutsättningar + +- Python 3.8 eller nyare +- `pip` (Python‑paketinstallatör) +- Tillgång till HTML‑filen du vill konvertera (t.ex. `large_page.html`) + +Inga extra systembibliotek krävs eftersom GroupDocs.Viewer paketera alla nödvändiga renderingsmotorer. + +## Steg 1: Installera GroupDocs.Viewer för Python + +GroupDocs.Viewer erbjuder högkvalitativ konvertering från många format, inklusive HTML, till PDF. Installera det med: + +```bash +pip install groupdocs-viewer +``` + +> **Pro tip:** Använd en virtuell miljö (`python -m venv .venv`) för att hålla beroenden isolerade från andra projekt. + +## Steg 2: Konfigurera **html to pdf options** – begränsa resurshierarkin + +Stora HTML‑sidor kan innehålla djupt nästlade resurser (iframes, CSS‑importer osv.). Genom att sätta ett maximalt hanteringsdjup förhindras att konverteraren rekursivt går oändligt djupt och minnesanvändningen blir förutsägbar. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth`‑egenskapen talar om för viewer hur många nivåer av länkade resurser den ska följa. Ett djup på `3` fungerar bra för de flesta webbsidor samtidigt som nödvändiga bilder och stilar bevaras. + +## Steg 3: Ladda HTML‑dokumentet du vill **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` abstraherar filformatdetektionen, så du behöver inte manuellt instansiera `HtmlDocument`. Detta steg förbereder den interna representationen som konverteraren kommer att arbeta med. + +## Steg 4: **Save HTML as PDF** med de konfigurerade **html to pdf options** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions`‑objektet samlar alla PDF‑specifika inställningar, inklusive `resource_handling_options` som vi definierade tidigare. När `viewer.save` körs renderas HTML‑sidan, resurserna bearbetas upp till det tillåtna djupet, och den slutgiltiga PDF‑filen skrivs till `output_path`. + +### Förväntat resultat + +När skriptet är klart innehåller `output.pdf` en trogen återgivning av `large_page.html`. Öppna PDF‑filen med någon viewer (Adobe Reader, Chrome osv.) och verifiera att: + +- Bilder, tabeller och grundläggande CSS‑stilar visas korrekt. +- Inga oväntade tomma sidor orsakas av djup resurshierarki. + +## Hantera kantfall och vanliga variationer + +| Situation | Rekommenderad justering | +|-----------|------------------------| +| **HTML contains external fonts** | Lägg till `pdf_options.embed_all_fonts = True` för att säkerställa att teckensnitt inbäddas i PDF‑filen. | +| **You need a specific page size** | Sätt `pdf_options.page_width` och `pdf_options.page_height` (t.ex. A4: `595, 842`). | +| **Large files cause out‑of‑memory errors** | Minska `resource_options.max_handling_depth` eller dela upp HTML‑filen i mindre fragment och konvertera varje separat. | +| **You want to password‑protect the PDF** | Använd `pdf_options.password = "YourSecret"` innan du anropar `save`. | + +Dessa justeringar illustrerar flexibiliteten i **html to pdf options** och visar hur du kan anpassa konverteringen efter dina exakta krav. + +## Fullt skript du kan kopiera‑klistra + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Kör skriptet: + +```bash +python convert_html_to_pdf.py +``` + +Du bör se bekräftelsemeddelandet och hitta `output.pdf` i den angivna katalogen. + +## Vanliga frågor + +**Q: Fungerar detta med fjärr‑URL:er istället för lokala filer?** +A: Ja. Skicka URL‑strängen till `Viewer` (t.ex. `Viewer("https://example.com/page.html")`). Viewern laddar ner sidan innan **html to pdf options** tillämpas. + +**Q: Kan jag konvertera flera HTML‑filer i ett batch?** +A: Packa in konverteringskoden i en loop som itererar över en lista med filsökvägar. Återanvänd samma `resource_options`‑ och `pdf_options`‑objekt för effektivitet. + +**Q: Vad händer om HTML använder JavaScript för att modifiera DOM?** +A: GroupDocs.Viewer renderar den statiska HTML‑en; den **utför inte** JavaScript. För dynamiska sidor, rendera sidan i en headless‑browser (t.ex. Selenium) först, och mata sedan den resulterande statiska HTML‑en till konverteraren. + +## Slutsats + +Du har nu en komplett, produktionsklar metod för att **convert HTML to PDF** i Python. Genom att konfigurera **resource handling** styr du hur djupt länkade resurser bearbetas, och `PdfSaveOptions` låter dig **save HTML as PDF** med finjusterade **html to pdf options**. Experimentera med de valfria inställningarna — såsom teckensnittsinbäddning eller sidstorlek — för att matcha de exakta behoven i din applikation. + +--- + +*Nästa steg*: utforska **save HTML document pdf** med lösenordsskydd, eller integrera denna konvertering i ett webb‑API med Flask eller FastAPI för PDF‑generering på begäran. + +## Vad bör du lära dig härnäst? + +Följande handledningar täcker närbesläktade ämnen som bygger på teknikerna som demonstreras i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationsmetoder i dina egna projekt. + +- [Hur man konverterar HTML till PDF Java – Använd Aspose.HTML för Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Konvertera HTML till PDF Java – Konfigurera miljö i Aspose.HTML](/html/english/java/configuring-environment/) +- [Konvertera HTML till PDF – Webbförfrågningsutförande i Aspose.HTML för Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/swedish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..115c74cb9 --- /dev/null +++ b/html/swedish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,331 @@ +--- +category: general +date: 2026-08-12 +description: Konvertera HTML till PDF i Python med Aspose HTML Converter. Lär dig + hur du genererar PDF från HTML och hur du konverterar EPUB till PDF på bara några + rader kod. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: sv +lastmod: 2026-08-12 +og_description: Konvertera HTML till PDF i Python med Aspose HTML Converter. Denna + handledning visar hur du genererar PDF från HTML och hur du konverterar EPUB till + PDF med tydlig, körbar kod. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Konvertera HTML till PDF i Python med Aspose HTML Converter – snabbguide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Konvertera HTML till PDF i Python med Aspose HTML Converter +url: /sv/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Konvertera HTML till PDF i Python med Aspose HTML Converter + +Om du snabbt behöver **konvertera HTML till PDF**, visar den här guiden exakt hur du gör det med Aspose.HTML Python‑biblioteket. Oavsett om du bygger en webbtjänst som omvandlar användarskickade sidor till utskrivbara PDF‑filer eller automatiserar rapportgenerering, ger stegen nedan en komplett, färdigkörningsklar lösning. + +Förutom HTML hanterar Aspose.HTML även e‑bokformat, så du kommer att se **hur man konverterar EPUB**‑filer till PDF utan att lämna Python. I slutet av den här tutorialen kommer du att kunna **generera PDF från HTML** och skapa PDF‑versioner av EPUB‑e‑böcker med bara några rader kod. + +## Förutsättningar + +* Python 3.8 eller nyare installerat. +* En aktiv Aspose.HTML för Python‑licens (gratis provversion fungerar för utvärdering). +* `pip`‑åtkomst för att installera paketet `aspose-html`. +* Exempel‑HTML‑ eller EPUB‑filer som du vill konvertera. + +```bash +pip install aspose-html +``` + +> **Proffstips:** Installera paketet i en virtuell miljö för att hålla beroenden isolerade. + +## Översikt över konverteringsprocessen + +Aspose.HTML tillhandahåller en enda `Converter`‑klass som abstraherar detaljerna för rendering av HTML, CSS och e‑bok‑innehåll till PDF. Arbetsflödet är: + +1. Importera `Converter`‑klassen. +2. Anropa `Converter.convert(source_path, target_path)`. +3. (Valfritt) Justera konverteringsinställningar såsom sidstorlek eller inbäddning av typsnitt. + +Biblioteket upptäcker automatiskt källformatet baserat på filändelsen, så samma metod fungerar för både HTML‑ och EPUB‑filer. + +--- + +## Konvertera HTML till PDF med Aspose HTML Converter + +### Steg 1: Importera Aspose HTML‑konverteringsmodulen + +`Converter`‑klassen finns i `aspose.html`‑namnrymden. Importera den högst upp i ditt skript. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Steg 2: Förbered in- och utdata‑sökvägar + +Använd absoluta eller relativa sökvägar som ditt skript kan läsa/skriva. Det är god praxis att validera att källfilen finns innan du försöker konvertera. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Steg 3: Utför konverteringen + +Att anropa `Converter.convert` sköter allt det tunga arbetet: rendera HTML, tillämpa CSS och skriva en PDF‑fil. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Varför detta fungerar + +* **Automatisk layoutmotor** – Aspose.HTML använder en Chromium‑baserad renderingsmotor, vilket säkerställer att modern CSS, SVG och JavaScript hanteras korrekt. +* **Inga mellanfiler** – Konverteringen sker i minnet, vilket minskar I/O‑belastning och snabbar upp batch‑behandling. + +### Förväntat resultat + +Efter att ha kört skriptet kommer `output.pdf` att innehålla en trogen återgivning av `input.html`. Öppna den med någon PDF‑visare för att verifiera att typsnitt, bilder och sidbrytningar matchar den ursprungliga webbsidan. + +![Konverteringsdiagram](https://example.com/conversion-diagram.png "Diagram som visar konvertering av HTML‑ och EPUB‑filer till PDF med Aspose HTML Converter") + +*(Bildtext: Diagram som visar konvertering av HTML‑ och EPUB‑filer till PDF med Aspose HTML Converter)* + +## Generera PDF från HTML med anpassade inställningar + +Ibland behöver du kontrollera sidstorlek, marginaler eller bädda in specifika typsnitt. Aspose.HTML exponerar en `PdfSaveOptions`‑klass för det ändamålet. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*`options`‑objektet är valfritt; utelämna det om du är nöjd med standardlayouten.* + +## Hur man konverterar EPUB till PDF i Python + +### Steg 1: Hitta EPUB‑källan + +Precis som med HTML, ange sökvägen till den EPUB‑fil du vill omvandla. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Steg 2: Kör konverteringen + +Samma `Converter.convert`‑metod upptäcker `.epub`‑ändelsen och växlar till e‑bok‑renderingspipeline. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Särskilda fall att beakta + +| Situation | Rekommenderad hantering | +|----------------------------------------|--------------------------| +| Stort EPUB (hundratals kapitel) | Konvertera i delar med `PdfSaveOptions.start_page` och `end_page` för att begränsa minnesanvändning. | +| Saknade typsnitt i EPUB | Sätt `PdfSaveOptions.embed_standard_fonts = True` för att falla tillbaka på systemtypsnitt. | +| Lösenordsskyddat EPUB | Använd `PdfLoadOptions` för att ange lösenordet före konvertering (visas inte här). | + +## Fullständigt, körbart exempel + +Nedan är ett enda skript som kombinerar alla stegen ovan. Spara det som `convert_demo.py` och kör det från kommandoraden. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Run the script: + +```bash +python convert_demo.py +``` + +Du bör se tre bekräftelsemeddelanden och tre PDF‑filer i `YOUR_DIRECTORY`. + +## Vanliga fallgropar och hur man undviker dem + +* **Saknad licens** – Utan en giltig Aspose.HTML‑licens lägger biblioteket ett vattenstämpel på varje sida. Registrera din licens tidigt i skriptet: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Relativa sökvägar på olika OS** – Använd `os.path.join` och `os.path.abspath` för att bygga plattformsoberoende sökvägar. + +* **Större HTML med externa resurser** – Säkerställ att all CSS, bilder och typsnitt är åtkomliga från filsystemet eller bädda in dem med data‑URI:er. Annars kan PDF‑filen rendera tomma platshållare. + +* **Trådsäkerhet** – `Converter.convert` är trådsäker, men att skapa många konverterare samtidigt kan förbruka betydande minne. Återanvänd en enda konverterarinstans om du bearbetar hundratals filer parallellt. + +## Slutsats + +Du har nu ett komplett, produktionsklart tillvägagångssätt för att **konvertera HTML till PDF** och **hur man konverterar EPUB**‑filer till PDF i Python med **Aspose HTML Converter**. Tutorialen täckte: + +* Att importera rätt modul. +* Validera indatafiler. +* Utföra en grundläggande konvertering. +* Anpassa PDF‑utdata med `PdfSaveOptions`. +* Hantera stora eller lösenordsskyddade EPUB‑filer. + +Härifrån kan du utöka lösningen för att batch‑processa mappar, integrera koden i en Flask‑ eller FastAPI‑endpoint, eller experimentera med ytterligare utdataformat såsom DOCX eller PNG (Aspose.HTML stödjer även dessa). + +### Nästa steg + +* Utforska **generera PDF från HTML** med JavaScript‑drivna sidor genom att aktivera `Converter.convert` med en headless‑webbläsarsession. +* Kombinera detta arbetsflöde med **Aspose.PDF** för efterbearbetningsuppgifter som att slå ihop flera PDF‑filer eller lägga till digitala signaturer. +* Kolla in **aspose-html-converter** avancerade alternativ såsom `PdfSaveOptions.jpeg_quality` för bildtunga dokument. + +Lycka till med kodningen, och njut av pålitligheten i Aspose.HTML för alla dina dokument‑konverteringsbehov! + +## Vad bör du lära dig härnäst? + +Följande handledningar täcker närliggande ämnen som bygger på teknikerna som demonstrerats i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementeringsmetoder i dina egna projekt. + +- [Konvertera HTML till PDF med Aspose.HTML – Fullständig manipuleringsguide](/html/english/) +- [Konvertera EPUB till PDF i .NET med Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/swedish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..c653845d9 --- /dev/null +++ b/html/swedish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-12 +description: Läs in HTML från fil i Python snabbt. Lär dig hur du läser en HTML-fil + med Python, laddar HTML från en URL och skapar ett HTML-dokument från en sträng + i en enda handledning. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: sv +lastmod: 2026-08-12 +og_description: Läs in HTML från fil i Python med HTMLDocument-klassen. Följ den här + guiden för att läsa HTML-fil med Python, ladda HTML från URL och skapa ett HTMLDocument + från en sträng för robust hantering av webb­innehåll. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Läs in HTML från fil i Python – snabb programmeringsguide +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Läs in HTML från fil i Python – steg‑för‑steg guide +url: /sv/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Ladda html från fil i Python – steg‑för‑steg‑guide + +Om du behöver **ladda html från fil i Python**, visar den här guiden exakt hur du gör. Du får också lära dig hur du **läser html‑fil med python**, laddar html från url och **skapar htmldocument från sträng** så att du kan hantera vilken källa av HTML‑innehåll som helst. + +Exemplen använder klassen `HTMLDocument` från paketet `html_document`, som erbjuder ett enhetligt API för lokala filer, fjärr‑URL:er och råa HTML‑strängar. Tillvägagångssättet fungerar med Python 3.8+ och integreras smidigt med standardbibliotek som `pathlib` och `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Ladda html från fil i Python – grundläggande exempel + +Att läsa en HTML‑fil från det lokala filsystemet är det vanligaste första steget när man bearbetar statiska sidor. Konstruktorn för `HTMLDocument` accepterar en filsökväg, upptäcker automatiskt filens kodning och parsar markupen. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Varför detta fungerar:** +* `Path` abstraherar OS‑specifika sökvägsavgränsare, vilket gör koden portabel mellan Windows, macOS och Linux. +* `HTMLDocument` läser filen i binärt läge, upptäcker UTF‑8‑ eller UTF‑16‑BOM och faller tillbaka på systemets standardkodning när det behövs. + +**Förväntad utskrift (förutsatt att HTML‑filen innehåller `Example`):** + +``` +Title: Example +``` + +### Vanliga fallgropar vid inläsning av en fil + +* **FileNotFoundError** – Säkerställ att sökvägen är korrekt och att filen finns. Använd `file_path.is_file()` för att förkontrollera. +* **Kodningsfel** – Om sidan använder en icke‑UTF‑8‑teckenuppsättning, skicka `encoding="iso-8859-1"` till konstruktorn: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Läs html‑fil med python – detaljerad förklaring + +Uttrycket **read html file using python** förekommer ofta när utvecklare behöver extrahera data från sparade webbsidor. Medan `HTMLDocument` abstraherar det mesta av arbetet, kan du också läsa rå text och mata in den i parsern manuellt. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Varför du kan välja detta tillvägagångssätt:** +* Du behöver förbehandla HTML‑koden (t.ex. ta bort skript) innan parsning. +* Du vill cachea den råa markupen för senare återanvändning utan att läsa om filen. + +## Ladda html från url – hämta fjärrsidor + +Att ladda HTML direkt från en webbadress utökar arbetsflödet till levande innehåll. Steget **load html from url** förlitar sig på biblioteket `requests` för HTTP‑hantering och överlämnar sedan svarstexten till `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Varför detta fungerar:** +* `requests.get` följer omdirigeringar och hanterar HTTPS utan extra konfiguration. +* `response.raise_for_status()` garanterar att endast lyckade svar parsas, vilket förhindrar tysta fel. + +**Edge cases:** +* **Långsam nätverk** – Justera parametern `timeout` eller använd `requests.Session` för anslutningspoolning. +* **Icke‑HTML‑innehåll** – Verifiera `Content-Type`‑headern (`response.headers["Content-Type"]`) innan parsning. + +## Skapa htmldocument från sträng – arbeta med rå HTML + +Ibland genererar du HTML dynamiskt (t.ex. från en mallmotor) och behöver behandla den som ett dokument utan att skriva till disk. Operationen **create htmldocument from string** är enkel. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Varför detta är användbart:** +* Eliminerar behovet av temporära filer, vilket förbättrar prestanda i serverlösa miljöer. +* Gör att du kan validera genererad markup innan du skickar den till en klient eller lagrar den. + +**Tips för stränghantering:** +* Använd trippel‑citat‑strängar för att hålla markupen läsbar. +* Om HTML‑koden innehåller Unicode‑tecken, säkerställ att källfilen sparas med UTF‑8‑kodning. + +## Fullständigt end‑to‑end‑exempel + +Att kombinera alla fyra inläsningsstrategier visar ett flexibelt pipeline som kan växla mellan lokala, fjärr‑ och minnes‑källor. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Vad denna kod illustrerar:** + +* En enda `HTMLDocument`‑klass hanterar alla inmatningstyper, vilket minskar API‑ytan. +* Hjälpfunktioner kapslar in felhantering och gör anropskoden koncis. +* Mönstret skalar till batch‑bearbetning: iterera över en lista med filsökvägar eller URL:er och mata varje dokument i en scraper eller transformer. + +## Slutsats + +Du vet nu hur du **laddar html från fil i Python** med hjälp av `HTMLDocument`‑klassen, hur du **läser html‑fil med + + +## Vad bör du lära dig härnäst? + + +Följande handledningar täcker närbesläktade ämnen som bygger vidare på teknikerna som demonstreras i den här guiden. Varje resurs innehåller kompletta fungerande kodexempel med steg‑för‑steg‑förklaringar för att hjälpa dig bemästra ytterligare API‑funktioner och utforska alternativa implementationsmetoder i dina egna projekt. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/thai/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..1aa98dc30 --- /dev/null +++ b/html/thai/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,254 @@ +--- +category: general +date: 2026-08-12 +description: แปลง HTML เป็น Markdown ด้วย Python. เรียนรู้กระบวนการทำงานผ่านบรรทัดคำสั่งเพื่อแปลงหน้าเว็บเป็น + Markdown และอัตโนมัติการจัดทำเอกสาร. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: th +lastmod: 2026-08-12 +og_description: แปลง HTML เป็น Markdown ด้วย Python. บทเรียนนี้จะแสดงวิธีแก้ปัญหาผ่านบรรทัดคำสั่งเพื่อแปลงหน้าเว็บเป็น + Markdown อย่างรวดเร็วและเชื่อถือได้. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: แปลง HTML เป็น Markdown ด้วย Python – คู่มือขั้นตอนโดยละเอียด +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: แปลง HTML เป็น Markdown ด้วย Python – คู่มือการเขียนโปรแกรมครบถ้วน +url: /th/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# แปลง HTML เป็น Markdown ด้วย Python – คู่มือการเขียนโปรแกรมฉบับสมบูรณ์ + +หากคุณต้องการ **แปลง HTML เป็น Markdown** คู่มือนี้จะแสดงวิธีแก้ที่พร้อมใช้งาน คุณจะได้เห็นว่าสคริปต์ Python สั้น ๆ สามารถแปลงไฟล์ HTML ใด ๆ ให้เป็น Markdown ที่สะอาดและมีรูปแบบตาม Git ได้อย่างไร และคุณสามารถเรียกใช้ตรรกะเดียวกันจากบรรทัดคำสั่งได้อย่างไร + +การแปลงหน้าเว็บเป็น Markdown เป็นขั้นตอนทั่วไปเมื่อสร้างเว็บไซต์เอกสารแบบสแตติกหรือเตรียมเนื้อหาสำหรับที่เก็บเวอร์ชันโดยใช้ระบบควบคุมเวอร์ชัน เมื่อจบบทเรียนนี้คุณจะมีเครื่องมือบรรทัดคำสั่งที่ใช้ซ้ำได้ซึ่งจัดการการเข้ารหัส HTML รักษาลิงก์ และเคารพรูปแบบ Git‑flavored Markdown + +## ข้อกำหนดเบื้องต้น + +ก่อนเริ่มทำตามขั้นตอนต่อไปนี้ให้แน่ใจว่าคุณมี: + +* Python 3.9 หรือใหม่กว่า ติดตั้งอยู่บนระบบของคุณ +* แพ็กเกจ Python `groupdocs-conversion` (หรือไลบรารีใด ๆ ที่ให้ `HTMLDocument`, `MarkdownSaveOptions`, และ `Converter`) ติดตั้งด้วย: + +```bash +pip install groupdocs-conversion +``` + +* โฟลเดอร์ที่มีไฟล์ `input.html` ต้นฉบับที่คุณต้องการประมวลผล + +ส่วนต่อไปนี้จะอธิบายแต่ละขั้นตอน ทำไมจึงสำคัญ และให้โค้ดที่คุณต้องใช้อย่างแม่นยำ + +## ขั้นตอนที่ 1: ตั้งค่าสภาพแวดล้อม + +การสร้างสภาพแวดล้อมเสมือนที่แยกจากกันช่วยป้องกันความขัดแย้งของการพึ่งพาและทำให้เครื่องมือบรรทัดคำสั่งพกพาได้ + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*ทำไมต้องทำขั้นตอนนี้?* +สภาพแวดล้อมเสมือนแยกแพ็กเกจ `groupdocs-conversion` ออกจากโปรเจกต์อื่น ๆ ทำให้ยูทิลิตี้ **convert html to markdown command line** ทำงานด้วยเวอร์ชันที่คุณทดสอบอย่างแม่นยำ + +## ขั้นตอนที่ 2: เขียนสคริปต์การแปลง + +สร้างไฟล์ชื่อ `html_to_md.py` แล้ววางโค้ดต่อไปนี้ สคริปต์รับอาร์กิวเมนต์สามค่า: เส้นทางไฟล์ HTML เข้า, เส้นทางไฟล์ Markdown ออก, และแฟล็กเลือกฟอร์แมตเตอร์แบบ Git‑flavored (เป็นตัวเลือก) + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### คำอธิบายสคริปต์ + +| ส่วน | วัตถุประสงค์ | +|---------|---------| +| **Argument parsing** | เปิดใช้งานรูปแบบการใช้ **convert html to markdown command line** | +| **HTMLDocument** | โหลดไฟล์ต้นฉบับ; ไลบรารีจัดการการเข้ารหัสอักขระและการพาร์ส DOM | +| **MarkdownSaveOptions** | ให้คุณสลับระหว่าง Markdown ธรรมดาและ Markdown แบบ Git (`--git` flag) | +| **Converter.convert_html** | ทำการแปลงหลัก – เดินผ่านโครงสร้าง HTML, แปลแท็ก, และเขียนไฟล์ผลลัพธ์ | +| **Error handling** | ให้ข้อความแจ้งความสำเร็จ/ความล้มเหลวที่ชัดเจน ซึ่งจำเป็นสำหรับ pipeline ของ CI | + +## ขั้นตอนที่ 3: รันการแปลงจากบรรทัดคำสั่ง + +เมื่อบันทึกสคริปต์แล้ว คุณสามารถแปลงไฟล์ HTML ใด ๆ ด้วยคำสั่งเดียว: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**ผลลัพธ์ที่คาดหวัง** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +เปิด `output.md` ในโปรแกรมแก้ไขข้อความ; คุณจะเห็นหัวข้อ รายการ และลิงก์ที่แสดงในไวยากรณ์ Markdown ที่สะอาด เนื่องจากเราใช้ฟอร์แมตเตอร์ Git ตารางจะแสดงด้วยตัวคั่น pipe (`|`) และรายการงานใช้ไวยากรณ์ `- [ ]` ซึ่ง GitHub และ GitLab แสดงผลโดยตรง + +## ขั้นตอนที่ 4: ผสานเครื่องมือเข้ากับ pipeline อัตโนมัติ + +หากคุณดูแลเอกสารในรีโพซิทอรี คุณสามารถเพิ่มขั้นตอนการแปลงนี้เข้าไปใน workflow ของ CI ด้านล่างเป็นตัวอย่างงาน GitHub Actions ที่ทำงานทุกครั้งที่มีการ push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*ทำไมสิ่งนี้ถึงสำคัญ* – การทำอัตโนมัติขั้นตอน **convert web page to markdown** รับประกันว่าเอกสารของคุณจะสอดคล้องกับไฟล์ HTML ต้นฉบับโดยไม่ต้องทำด้วยตนเอง + +## กรณีขอบและเคล็ดลับการปฏิบัติที่ดีที่สุด + +* **Encoding problems** – หาก HTML ของคุณมีอักขระที่ไม่ใช่ UTF‑8 ให้ระบุการเข้ารหัสอย่างชัดเจนเมื่อสร้าง `HTMLDocument` (เช่น `HTMLDocument(input_path, encoding='utf-8')`) +* **Large files** – สำหรับไฟล์ HTML ที่ใหญ่กว่า 50 MB ควรพิจารณาแปลงแบบสตรีมเพื่อหลีกเลี่ยงการใช้หน่วยความจำสูง ไลบรารีมีเมธอด `convert_html_stream` สำหรับกรณีนี้ +* **Custom CSS handling** – ตัวแปลงจะลบแอตทริบิวต์ style โดยค่าเริ่มต้น หากต้องการรักษาการจัดรูปแบบบางอย่าง ให้เปิด `md_opts.preserveFormatting = True` +* **Command‑line shortcut** – สร้างสคริปต์ wrapper เล็ก ๆ (`html2md`) ที่ส่งต่ออาร์กิวเมนต์ไปยัง `html_to_md.py` วางไว้ที่ `$HOME/.local/bin` แล้วเพิ่มลงใน `PATH` เพื่อให้ประสบการณ์ **convert html to markdown command line** สั้นลงอีกขั้น + +## คำถามที่พบบ่อย + +**Does this work on Windows, macOS, and Linux?** +ใช่ สคริปต์พึ่งพาเพียงแพ็กเกจ `groupdocs-conversion` ที่ทำงานข้ามแพลตฟอร์มและไลบรารีมาตรฐานของ Python จึงทำงานได้โดยไม่มีการเปลี่ยนแปลงบนทั้งสามระบบปฏิบัติการ + +**Can I convert a remote web page directly?** +คุณสามารถดึงหน้าเว็บด้วย `requests` แล้วส่งสตริง HTML ให้กับ `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**What if I need HTML → GitHub‑flavored Markdown only?** +เพียงแค่ส่งแฟล็ก `--git` เสมอ ฟอร์แมตเตอร์จะสร้างผลลัพธ์ที่เข้ากันได้กับ GitHub, GitLab, และ Bitbucket + +## สรุป + +คุณมีโซลูชัน **convert HTML to Markdown** ที่แข็งแกร่งซึ่งทำงานจากสคริปต์ Python และจากบรรทัดคำสั่งแล้ว คู่มือได้ครอบคลุมการตั้งค่าสภาพแวดล้อม, โค้ดเต็ม, การใช้บรรทัดคำสั่ง, การผสาน CI, และการจัดการกรณีขอบอย่างเป็นรูปธรรม + +ต่อไปคุณอาจสำรวจ **convert markdown to HTML**, ทดลองใช้ Pandoc สำหรับตัวเลือกการแปลงขั้นสูง, หรือเพิ่มตัวสร้าง front‑matter เพื่อฝังเมตาดาต้าโดยตรงลงในไฟล์ Markdown แต่ละส่วนขยายเหล่านี้สร้างบนแนวคิดหลักที่คุณเพิ่งเรียนรู้ + +ขอให้สนุกกับการแปลง! + +## สิ่งที่คุณควรเรียนต่อไป? + +บทเรียนต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งรวมตัวอย่างโค้ดทำงานครบถ้วนพร้อมคำอธิบายทีละขั้นตอนเพื่อช่วยคุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการนำไปใช้ทางเลือกในโปรเจกต์ของคุณเอง + +- [แปลง HTML เป็น Markdown ด้วย Aspose.HTML สำหรับ Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [แปลง HTML เป็น Markdown ด้วย .NET กับ Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/thai/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..d0bd27833 --- /dev/null +++ b/html/thai/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,211 @@ +--- +category: general +date: 2026-08-12 +description: แปลง HTML เป็น PDF ด้วย Python โดยใช้ GroupDocs.Viewer. เรียนรู้วิธีบันทึก + HTML เป็น PDF พร้อมตัวเลือกการแปลง HTML เป็น PDF ที่ยืดหยุ่นเพื่อการควบคุมที่แม่นยำ. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: th +lastmod: 2026-08-12 +og_description: แปลง HTML เป็น PDF ด้วย GroupDocs.Viewer คู่มือนี้จะแสดงวิธีบันทึก + HTML เป็น PDF ตั้งค่าตัวเลือกการแปลง HTML เป็น PDF และจัดการเอกสารขนาดใหญ่อย่างเชื่อถือได้ +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: แปลง HTML เป็น PDF – สอน Python ทีละขั้นตอน +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: แปลง HTML เป็น PDF ด้วย Python – คู่มือการเขียนโปรแกรมครบถ้วน +url: /th/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# แปลง HTML เป็น PDF ด้วย Python – คู่มือการเขียนโปรแกรมเต็มรูปแบบ + +หากคุณต้องการ **แปลง HTML เป็น PDF** ในโครงการ Python คำแนะนำนี้จะแสดงวิธีแก้ไขที่พร้อมใช้งาน เราจะอธิบายขั้นตอนการติดตั้งไลบรารี viewer, การกำหนดค่า **html to pdf options**, และสุดท้าย **save HTML as PDF** ด้วยเพียงไม่กี่บรรทัดของโค้ด + +การแปลงเอกสาร HTML มักต้องจัดการกับทรัพยากรที่เชื่อมโยงเช่นรูปภาพ, CSS, หรือ JavaScript โดยตอนท้ายของบทเรียนนี้คุณจะเข้าใจวิธีจำกัดการซ้อนของทรัพยากร, ป้องกันการเพิ่มขึ้นของหน่วยความจำ, และสร้างไฟล์ PDF ที่สะอาดและตรงกับเลย์เอาต์ของหน้าเดิม + +## ข้อกำหนดเบื้องต้น + +- Python 3.8 หรือใหม่กว่า +- `pip` (Python package installer) +- เข้าถึงไฟล์ HTML ที่คุณต้องการแปลง (เช่น `large_page.html`) + +ไม่มีไลบรารีระบบเพิ่มเติมที่จำเป็น เนื่องจาก GroupDocs.Viewer รวมเอาเอนจินการเรนเดอร์ที่จำเป็นทั้งหมดไว้แล้ว + +## ขั้นตอนที่ 1: ติดตั้ง GroupDocs.Viewer สำหรับ Python + +GroupDocs.Viewer ให้การแปลงที่มีความแม่นยำสูงจากหลายรูปแบบรวมถึง HTML ไปเป็น PDF ติดตั้งได้ด้วย: + +```bash +pip install groupdocs-viewer +``` + +> **เคล็ดลับ:** ใช้ virtual environment (`python -m venv .venv`) เพื่อแยกการพึ่งพาออกจากโครงการอื่น + +## ขั้นตอนที่ 2: กำหนดค่า **html to pdf options** – จำกัดความลึกของการซ้อนทรัพยากร + +หน้า HTML ขนาดใหญ่สามารถมีทรัพยากรที่ซ้อนกันลึก (iframes, การนำเข้า CSS ฯลฯ) การตั้งค่าความลึกสูงสุดจะป้องกันตัวแปลงจากการทำซ้ำอย่างไม่สิ้นสุดและทำให้การใช้หน่วยความจำคาดเดาได้ + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +คุณสมบัติ `max_handling_depth` บอก viewer ว่าจะติดตามระดับของทรัพยากรที่เชื่อมโยงกี่ระดับ ความลึก `3` ทำงานได้ดีสำหรับหน้าเว็บส่วนใหญ่พร้อมยังคงรักษาภาพและสไตล์ที่จำเป็นไว้ + +## ขั้นตอนที่ 3: โหลดเอกสาร HTML ที่คุณต้องการ **convert HTML to PDF** + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer` จัดการการตรวจจับรูปแบบไฟล์โดยอัตโนมัติ ดังนั้นคุณไม่จำเป็นต้องสร้าง `HtmlDocument` ด้วยตนเอง ขั้นตอนนี้เตรียมการแสดงผลภายในที่ตัวแปลงจะทำงานด้วย + +## ขั้นตอนที่ 4: **Save HTML as PDF** ด้วยการใช้ **html to pdf options** ที่กำหนดค่าไว้ + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +อ็อบเจ็กต์ `PdfSaveOptions` รวมการตั้งค่าเฉพาะ PDF ทั้งหมดรวมถึง `resource_handling_options` ที่เรากำหนดไว้ก่อนหน้านี้ เมื่อ `viewer.save` ทำงาน หน้า HTML จะถูกเรนเดอร์, ทรัพยากรจะถูกประมวลผลจนถึงความลึกที่อนุญาต, และ PDF สุดท้ายจะถูกเขียนไปยัง `output_path` + +### ผลลัพธ์ที่คาดหวัง + +หลังจากสคริปต์ทำงานเสร็จ `output.pdf` จะมีการแสดงผลที่ตรงกับ `large_page.html` เปิด PDF ด้วยโปรแกรมใดก็ได้ (Adobe Reader, Chrome ฯลฯ) และตรวจสอบว่า: + +- รูปภาพ, ตาราง, และสไตล์ CSS พื้นฐานปรากฏอย่างถูกต้อง +- ไม่มีหน้าว่างที่ไม่คาดคิดเกิดจากการทำซ้ำของทรัพยากรที่ลึกเกินไป + +## การจัดการกรณีขอบและความแตกต่างทั่วไป + +| Situation | Recommended tweak | +|-----------|-------------------| +| **HTML มีฟอนต์ภายนอก** | Add `pdf_options.embed_all_fonts = True` to ensure fonts are embedded in the PDF. | +| **คุณต้องการขนาดหน้ากระดาษเฉพาะ** | Set `pdf_options.page_width` and `pdf_options.page_height` (e.g., A4: `595, 842`). | +| **ไฟล์ขนาดใหญ่ทำให้เกิดข้อผิดพลาด out‑of‑memory** | Decrease `resource_options.max_handling_depth` or split the HTML into smaller fragments and convert each separately. | +| **คุณต้องการป้องกัน PDF ด้วยรหัสผ่าน** | Use `pdf_options.password = "YourSecret"` before calling `save`. | + +การปรับแต่งเหล่านี้แสดงให้เห็นถึงความยืดหยุ่นของ **html to pdf options** และวิธีที่คุณสามารถปรับการแปลงให้ตรงกับความต้องการของคุณได้อย่างแม่นยำ + +## สคริปต์เต็มที่คุณสามารถคัดลอกและวางได้ + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +เรียกใช้สคริปต์: + +```bash +python convert_html_to_pdf.py +``` + +คุณควรเห็นข้อความยืนยันและพบ `output.pdf` ในไดเรกทอรีที่ระบุ + +## คำถามที่พบบ่อย + +**Q: วิธีนี้ทำงานกับ URL ระยะไกลแทนไฟล์ในเครื่องได้หรือไม่?** +A: ใช่. ส่งสตริง URL ไปยัง `Viewer` (เช่น `Viewer("https://example.com/page.html")`). Viewer จะดาวน์โหลดหน้าเว็บก่อนนำ **html to pdf options** ไปใช้ + +**Q: ฉันสามารถแปลงไฟล์ HTML หลายไฟล์พร้อมกันได้หรือไม่?** +A: ห่อโค้ดการแปลงไว้ในลูปที่วนผ่านรายการของเส้นทางไฟล์ ใช้ `resource_options` และ `pdf_options` เดียวกันเพื่อประสิทธิภาพ + +**Q: ถ้า HTML ใช้ JavaScript เพื่อแก้ไข DOM จะทำอย่างไร?** +A: GroupDocs.Viewer เรนเดอร์ HTML แบบคงที่; ไม่ **ทำ** การรัน JavaScript สำหรับหน้าแบบไดนามิก ให้เรนเดอร์หน้าในเบราว์เซอร์แบบ headless (เช่น Selenium) ก่อน แล้วจึงส่ง HTML คงที่ที่ได้ให้กับตัวแปลง + +## สรุป + +คุณมีวิธีที่ครบถ้วนและพร้อมใช้งานในระดับ production เพื่อ **แปลง HTML เป็น PDF** ด้วย Python โดยการกำหนดค่า **resource handling** คุณควบคุมความลึกของการประมวลผลทรัพยากรที่เชื่อมโยง, และ `PdfSaveOptions` ให้คุณ **save HTML as PDF** ด้วย **html to pdf options** ที่ละเอียด ทดลองตั้งค่าเพิ่มเติมเช่นการฝังฟอนต์หรือการกำหนดขนาดหน้าเพื่อให้ตรงกับความต้องการของแอปพลิเคชันของคุณ + +--- + +*ขั้นตอนต่อไป*: สำรวจ **save HTML document pdf** พร้อมการป้องกันด้วยรหัสผ่าน, หรือรวมการแปลงนี้เข้าไปใน Web API ด้วย Flask หรือ FastAPI เพื่อสร้าง PDF ตามความต้องการแบบเรียลไทม์ + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งรวมตัวอย่างโค้ดทำงานเต็มรูปแบบพร้อมคำอธิบายทีละขั้นตอนเพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการนำไปใช้แบบต่าง ๆ ในโครงการของคุณ + +- [วิธีแปลง HTML เป็น PDF ด้วย Java – ใช้ Aspose.HTML สำหรับ Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [แปลง HTML เป็น PDF ด้วย Java – การกำหนดค่าสภาพแวดล้อมใน Aspose.HTML](/html/english/java/configuring-environment/) +- [แปลง HTML เป็น PDF – การดำเนินการคำขอเว็บใน Aspose.HTML สำหรับ Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/thai/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..7ca65196f --- /dev/null +++ b/html/thai/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,341 @@ +--- +category: general +date: 2026-08-12 +description: แปลง HTML เป็น PDF ด้วย Python และ Aspose HTML Converter. เรียนรู้วิธีสร้าง + PDF จาก HTML และวิธีแปลง EPUB เป็น PDF เพียงไม่กี่บรรทัดของโค้ด. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: th +lastmod: 2026-08-12 +og_description: แปลง HTML เป็น PDF ใน Python ด้วย Aspose HTML Converter. บทแนะนำนี้แสดงวิธีสร้าง + PDF จาก HTML และวิธีแปลง EPUB เป็น PDF พร้อมโค้ดที่ชัดเจนและสามารถรันได้. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: แปลง HTML เป็น PDF ด้วย Python และ Aspose HTML Converter – คู่มือเร็ว +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: แปลง HTML เป็น PDF ด้วย Python โดยใช้ Aspose HTML Converter +url: /th/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# แปลง HTML เป็น PDF ด้วย Python โดยใช้ Aspose HTML Converter + +หากคุณต้องการ **แปลง HTML เป็น PDF** อย่างรวดเร็ว คู่มือนี้จะแสดงให้คุณเห็นขั้นตอนการทำด้วยไลบรารี Aspose.HTML สำหรับ Python อย่างชัดเจน ไม่ว่าคุณจะกำลังสร้างเว็บ‑เซอร์วิสที่แปลงหน้าที่ผู้ใช้ส่งมาเป็น PDF ที่พิมพ์ได้ หรืออัตโนมัติการสร้างรายงาน ขั้นตอนต่อไปนี้จะให้โซลูชันที่ครบถ้วนและพร้อมใช้งาน + +นอกเหนือจาก HTML แล้ว Aspose.HTML ยังรองรับรูปแบบ e‑book อีกด้วย ดังนั้นคุณจะได้เห็น **วิธีแปลงไฟล์ EPUB** เป็น PDF โดยไม่ต้องออกจาก Python เมื่อจบบทเรียนนี้คุณจะสามารถ **สร้าง PDF จาก HTML** และสร้างเวอร์ชัน PDF ของ e‑book EPUB ได้ด้วยเพียงไม่กี่บรรทัดของโค้ด + +## ข้อกำหนดเบื้องต้น + +ก่อนเริ่มต้น ตรวจสอบว่าคุณมี: + +* Python 3.8 หรือใหม่กว่า ติดตั้งแล้ว +* ไลเซนส์ Aspose.HTML สำหรับ Python ที่ใช้งานได้ (รุ่นทดลองฟรีใช้สำหรับการประเมิน) +* การเข้าถึง `pip` เพื่อติดตั้งแพ็กเกจ `aspose-html` +* ตัวอย่างไฟล์ HTML หรือ EPUB ที่คุณต้องการแปลง + +```bash +pip install aspose-html +``` + +> **เคล็ดลับ:** ติดตั้งแพ็กเกจภายใน virtual environment เพื่อแยกการพึ่งพาออกจากกัน + +## ภาพรวมของกระบวนการแปลง + +Aspose.HTML มีคลาส `Converter` เพียงคลาสเดียวที่ทำหน้าที่ซ่อนรายละเอียดของการเรนเดอร์ HTML, CSS, และเนื้อหา e‑book เป็น PDF ขั้นตอนการทำงานคือ: + +1. นำเข้า (import) คลาส `Converter` +2. เรียก `Converter.convert(source_path, target_path)` +3. (ทางเลือก) ปรับการตั้งค่าการแปลง เช่น ขนาดหน้า หรือการฝังฟอนต์ + +ไลบรารีจะตรวจจับรูปแบบต้นฉบับโดยอัตโนมัติตามนามสกุลไฟล์ ดังนั้นวิธีเดียวกันจึงทำงานได้กับไฟล์ HTML และ EPUB + +--- + +## แปลง HTML เป็น PDF ด้วย Aspose HTML Converter + +### ขั้นตอนที่ 1: นำเข้าโมดูลการแปลง Aspose HTML + +คลาส `Converter` อยู่ใน namespace `aspose.html` ให้นำเข้าที่ส่วนบนของสคริปต์ของคุณ + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### ขั้นตอนที่ 2: เตรียมเส้นทางไฟล์เข้าและออก + +ใช้เส้นทางแบบ absolute หรือ relative ที่สคริปต์ของคุณสามารถอ่าน/เขียนได้ การตรวจสอบว่าไฟล์ต้นทางมีอยู่ก่อนทำการแปลงเป็นแนวปฏิบัติที่ดี + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### ขั้นตอนที่ 3: ดำเนินการแปลง + +การเรียก `Converter.convert` จะทำงานหนักทั้งหมด: เรนเดอร์ HTML, ประยุกต์ CSS, และเขียนไฟล์ PDF + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### ทำไมวิธีนี้ถึงได้ผล + +* **เครื่องยนต์การจัดวางอัตโนมัติ** – Aspose.HTML ใช้เครื่องยนต์เรนเดอร์แบบ Chromium ทำให้ CSS, SVG, และ JavaScript สมัยใหม่ทำงานได้อย่างถูกต้อง +* **ไม่มีไฟล์กลาง** – การแปลงทำในหน่วยความจำ ลดภาระ I/O และเร่งการประมวลผลเป็นชุด + +### ผลลัพธ์ที่คาดหวัง + +หลังจากรันสคริปต์ `output.pdf` จะมีการแสดงผลที่ตรงกับ `input.html` เปิดด้วยโปรแกรมดู PDF ใดก็ได้เพื่อยืนยันว่าฟอนต์, รูปภาพ, และการแบ่งหน้า ตรงกับหน้าเว็บต้นฉบับ + +![แผนภาพการแปลง](https://example.com/conversion-diagram.png "แผนภาพแสดงการแปลงไฟล์ HTML และ EPUB เป็น PDF ด้วย Aspose HTML Converter") + +*(ข้อความแทนรูป: แผนภาพแสดงการแปลงไฟล์ HTML และ EPUB เป็น PDF ด้วย Aspose HTML Converter)* + +--- + +## สร้าง PDF จาก HTML ด้วยการตั้งค่าที่กำหนดเอง + +บางครั้งคุณอาจต้องควบคุมขนาดหน้า, ระยะขอบ, หรือฝังฟอนต์เฉพาะ Aspose.HTML มีคลาส `PdfSaveOptions` สำหรับจุดประสงค์นั้น + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*วัตถุ `options` เป็นทางเลือก; หากพอใจกับการจัดวางค่าเริ่มต้นให้ละเว้น* + +--- + +## วิธีแปลง EPUB เป็น PDF ด้วย Python + +### ขั้นตอนที่ 1: ค้นหาไฟล์ EPUB ต้นฉบับ + +เช่นเดียวกับ HTML ให้ระบุเส้นทางไปยังไฟล์ EPUB ที่ต้องการแปลง + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### ขั้นตอนที่ 2: รันการแปลง + +วิธี `Converter.convert` เดียวกันจะตรวจจับนามสกุล `.epub` และสลับไปใช้ pipeline การเรนเดอร์ e‑book + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### กรณีขอบที่ควรพิจารณา + +| สถานการณ์ | วิธีการแนะนำ | +|----------------------------------------|----------------------| +| EPUB ขนาดใหญ่ (หลายร้อยบท) | แปลงเป็นส่วน ๆ โดยใช้ `PdfSaveOptions.start_page` และ `end_page` เพื่อลดการใช้หน่วยความจำ | +| ฟอนต์หายใน EPUB | ตั้งค่า `PdfSaveOptions.embed_standard_fonts = True` เพื่อใช้ฟอนต์ระบบเป็นสำรอง | +| EPUB ที่มีการป้องกันด้วยรหัสผ่าน | ใช้ `PdfLoadOptions` เพื่อระบุรหัสผ่านก่อนการแปลง (ไม่ได้แสดงในที่นี้) | + +--- + +## ตัวอย่างเต็มที่สามารถรันได้ + +ด้านล่างเป็นสคริปต์เดียวที่รวมทุกขั้นตอนที่กล่าวไว้ บันทึกเป็น `convert_demo.py` แล้วรันจากบรรทัดคำสั่ง + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +รันสคริปต์: + +```bash +python convert_demo.py +``` + +คุณจะเห็นข้อความยืนยันสามข้อความและไฟล์ PDF สามไฟล์ใน `YOUR_DIRECTORY`. + +--- + +## ข้อผิดพลาดทั่วไปและวิธีหลีกเลี่ยง + +* **ไลเซนส์หาย** – หากไม่มีไลเซนส์ Aspose.HTML ที่ถูกต้อง ไลบรารีจะใส่ลายน้ำบนทุกหน้า ลงทะเบียนไลเซนส์ตั้งแต่ต้นสคริปต์: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **เส้นทาง relative บน OS ต่างกัน** – ใช้ `os.path.join` และ `os.path.abspath` เพื่อสร้างเส้นทางที่ไม่ขึ้นกับแพลตฟอร์ม + +* **HTML ขนาดใหญ่ที่มีทรัพยากรภายนอก** – ตรวจสอบให้แน่ใจว่า CSS, รูปภาพ, และฟอนต์ทั้งหมดเข้าถึงได้จากระบบไฟล์หรือฝังด้วย data URI มิฉะนั้น PDF อาจแสดงตำแหน่งว่างเปล่า + +* **ความปลอดภัยของเธรด** – `Converter.convert` ปลอดภัยต่อเธรด แต่การสร้างคอนเวอร์เตอร์หลายตัวพร้อมกันอาจใช้หน่วยความจำมาก ใช้คอนเวอร์เตอร์เดียวซ้ำหากประมวลผลหลายร้อยไฟล์พร้อมกัน + +--- + +## สรุป + +ตอนนี้คุณมีวิธีที่ครบถ้วนและพร้อมใช้งานในระดับผลิตเพื่อ **แปลง HTML เป็น PDF** และ **วิธีแปลงไฟล์ EPUB** เป็น PDF ด้วย Python โดยใช้ **Aspose HTML Converter** บทเรียนครอบคลุม: + +* การนำเข้าโมดูลที่ถูกต้อง +* การตรวจสอบไฟล์เข้า +* การทำการแปลงพื้นฐาน +* การปรับแต่งผลลัพธ์ PDF ด้วย `PdfSaveOptions` +* การจัดการ EPUB ขนาดใหญ่หรือที่มีการป้องกันด้วยรหัสผ่าน + +จากนี้คุณสามารถขยายโซลูชันเพื่อประมวลผลโฟลเดอร์เป็นชุด, ผสานโค้ดเข้ากับ endpoint ของ Flask หรือ FastAPI, หรือทดลองรูปแบบผลลัพธ์เพิ่มเติมเช่น DOCX หรือ PNG (Aspose.HTML รองรับเช่นกัน) + +### ขั้นตอนต่อไป + +* สำรวจ **การสร้าง PDF จาก HTML** ด้วยหน้าที่ขับเคลื่อนโดย JavaScript โดยเปิดใช้งาน `Converter.convert` กับเซสชันเบราว์เซอร์แบบ headless +* ผสานเวิร์กโฟลว์นี้กับ **Aspose.PDF** สำหรับงานหลังการแปลง เช่น การรวม PDF หลายไฟล์หรือเพิ่มลายเซ็นดิจิทัล +* ตรวจสอบตัวเลือกขั้นสูงของ **aspose-html-converter** เช่น `PdfSaveOptions.jpeg_quality` สำหรับเอกสารที่มีรูปภาพจำนวนมาก + +ขอให้เขียนโค้ดอย่างสนุกสนานและเพลิดเพลินกับความน่าเชื่อถือของ Aspose.HTML สำหรับความต้องการแปลงเอกสารทั้งหมดของคุณ! + +## คุณควรเรียนรู้อะไรต่อไป? + +บทเรียนต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดซึ่งต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งข้อมูลมีตัวอย่างโค้ดทำงานครบถ้วนพร้อมคำอธิบายทีละขั้นตอน เพื่อช่วยคุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการนำไปใช้แบบอื่นในโครงการของคุณ + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/thai/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..9f36b21a8 --- /dev/null +++ b/html/thai/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,210 @@ +--- +category: general +date: 2026-08-12 +description: โหลด HTML จากไฟล์ใน Python อย่างรวดเร็ว เรียนรู้วิธีอ่านไฟล์ HTML ด้วย + Python, โหลด HTML จาก URL, และสร้าง htmldocument จากสตริงในบทเรียนเดียว +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: th +lastmod: 2026-08-12 +og_description: โหลด HTML จากไฟล์ใน Python ด้วยคลาส HTMLDocument ทำตามคู่มือนี้เพื่ออ่านไฟล์ + HTML ด้วย Python, โหลด HTML จาก URL, และสร้าง HTMLDocument จากสตริงเพื่อการจัดการเนื้อหาเว็บที่มั่นคง +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: โหลด HTML จากไฟล์ใน Python – คู่มือการเขียนโปรแกรมอย่างรวดเร็ว +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: โหลด HTML จากไฟล์ใน Python – คู่มือแบบขั้นตอนต่อขั้นตอน +url: /th/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# โหลด html จากไฟล์ใน Python – คู่มือขั้นตอนโดยละเอียด + +หากคุณต้องการ **load html from file in Python** คู่มือนี้จะแสดงให้คุณเห็นอย่างละเอียด คุณยังจะได้เรียนรู้วิธี **read html file using python**, โหลด html จาก url, และ **create htmldocument from string** เพื่อให้คุณจัดการกับแหล่งที่มาของเนื้อหา HTML ใด ๆ ได้ + +ตัวอย่างใช้คลาส `HTMLDocument` จากแพ็กเกจ `html_document` ซึ่งให้ API ที่統一สำหรับไฟล์ในเครื่อง, URL ระยะไกล, และสตริง HTML ดิบ วิธีการนี้ทำงานกับ Python 3.8+ และผสานอย่างสะอาดกับไลบรารีมาตรฐานเช่น `pathlib` และ `requests` + +![ภาพหน้าจอโค้ดการโหลด html จากไฟล์ใน Python](image.png) + +## โหลด html จากไฟล์ใน Python – ตัวอย่างพื้นฐาน + +การโหลดไฟล์ HTML จากระบบไฟล์ในเครื่องเป็นขั้นตอนแรกที่พบบ่อยที่สุดเมื่อประมวลผลหน้าเว็บแบบคงที่ คอนสตรัคเตอร์ `HTMLDocument` รับพาธไฟล์, ตรวจจับการเข้ารหัสของไฟล์โดยอัตโนมัติ, และทำการพาร์เซมาร์กอัป + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**ทำไมวิธีนี้ถึงได้ผล:** +* `Path` แยกความแตกต่างของตัวคั่นพาธตามระบบปฏิบัติการ ทำให้โค้ดพกพาได้บน Windows, macOS, และ Linux +* `HTMLDocument` อ่านไฟล์ในโหมดไบนารี, ตรวจจับ BOM ของ UTF‑8 หรือ UTF‑16, และหากจำเป็นจะใช้การเข้ารหัสเริ่มต้นของระบบเป็นค่าเริ่มต้น + +**ผลลัพธ์ที่คาดหวัง (สมมติว่า HTML มี `Example`):** + +``` +Title: Example +``` + +### ข้อผิดพลาดทั่วไปเมื่อโหลดไฟล์ + +* **FileNotFoundError** – ตรวจสอบให้แน่ใจว่าพาธถูกต้องและไฟล์มีอยู่ ใช้ `file_path.is_file()` เพื่อตรวจสอบล่วงหน้า +* **Encoding errors** – หากหน้าใช้ charset ที่ไม่ใช่ UTF‑8 ให้ส่ง `encoding="iso-8859-1"` ไปยังคอนสตรัคเตอร์: `HTMLDocument(file_path, encoding="iso-8859-1")` + +## อ่านไฟล์ html ด้วย python – คำอธิบายโดยละเอียด + +วลี **read html file using python** มักปรากฏเมื่อผู้พัฒนาต้องสกัดข้อมูลจากหน้าเว็บที่บันทึกไว้ แม้ว่า `HTMLDocument` จะทำหน้าที่ส่วนใหญ่ให้คุณได้แล้ว คุณก็สามารถโหลดข้อความดิบและส่งให้พาร์เซอร์ด้วยตนเองได้ + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**ทำไมคุณอาจเลือกวิธีนี้:** +* คุณต้องทำการพรี‑โปรเซส HTML (เช่น ลบสคริปต์) ก่อนการพาร์เซส +* คุณต้องการแคชมาร์กอัปดิบเพื่อใช้ใหม่ในภายหลังโดยไม่ต้องอ่านไฟล์ซ้ำ + +## โหลด html จาก url – ดึงหน้าระยะไกล + +การโหลด HTML โดยตรงจากที่อยู่เว็บทำให้เวิร์กโฟลว์ขยายไปสู่เนื้อหาแบบเรียลไทม์ ขั้นตอน **load html from url** พึ่งพาไลบรารี `requests` สำหรับการจัดการ HTTP แล้วส่งข้อความตอบกลับให้ `HTMLDocument` + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**ทำไมวิธีนี้ถึงได้ผล:** +* `requests.get` รองรับการเปลี่ยนเส้นทางและจัดการ HTTPS โดยอัตโนมัติ +* `response.raise_for_status()` ทำให้มั่นใจว่าเฉพาะการตอบสนองที่สำเร็จเท่านั้นจะถูกพาร์เซส, ป้องกันความล้มเหลวเงียบ + +**กรณีขอบ:** +* **เครือข่ายช้า** – ปรับพารามิเตอร์ `timeout` หรือใช้ `requests.Session` เพื่อทำ connection pooling +* **เนื้อหาไม่ใช่ HTML** – ตรวจสอบหัว `Content-Type` (`response.headers["Content-Type"]`) ก่อนพาร์เซส + +## สร้าง htmldocument จากสตริง – ทำงานกับ HTML ดิบ + +บางครั้งคุณอาจสร้าง HTML แบบไดนามิก (เช่น จากเทมเพลตเอนจิน) และต้องการถือว่าเป็นเอกสารโดยไม่ต้องบันทึกลงดิสก์ การทำ **create htmldocument from string** จึงเป็นเรื่องง่าย + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**ทำไมวิธีนี้จึงมีประโยชน์:** +* ไม่ต้องสร้างไฟล์ชั่วคราว, ช่วยเพิ่มประสิทธิภาพในสภาพแวดล้อมแบบ serverless +* สามารถตรวจสอบมาร์กอัปที่สร้างขึ้นก่อนส่งให้ลูกค้าหรือบันทึกได้ + +**เคล็ดลับการจัดการสตริง:** +* ใช้สตริงแบบ triple‑quoted เพื่อให้มาร์กอัปอ่านง่าย +* หาก HTML มีอักขระ Unicode, ให้แน่ใจว่าไฟล์ซอร์สบันทึกด้วยการเข้ารหัส UTF‑8 + +## ตัวอย่างเต็มแบบ end‑to‑end + +การรวมกลยุทธ์การโหลดสี่แบบเข้าด้วยกันแสดงให้เห็นถึงพายป์ไลน์ที่ยืดหยุ่นซึ่งสามารถสลับระหว่างแหล่งข้อมูลในเครื่อง, ระยะไกล, และในหน่วยความจำได้ + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**สิ่งที่โค้ดนี้แสดงให้เห็น:** + +* คลาส `HTMLDocument` เพียงคลาสเดียวจัดการกับทุกประเภทอินพุต, ลดพื้นที่ผิวของ API +* ฟังก์ชันช่วยเหลือห่อหุ้มการจัดการข้อผิดพลาดและทำให้โค้ดที่เรียกใช้งานสั้นลง +* แพทเทิร์นนี้สามารถขยายเป็นการประมวลผลแบบแบตช์: วนลูปผ่านรายการพาธไฟล์หรือ URL และส่งแต่ละเอกสารให้กับ scraper หรือ transformer + +## สรุป + +คุณตอนนี้รู้วิธี **load html from file in Python** ด้วยคลาส `HTMLDocument`, วิธี **read html file using + +## คุณควรเรียนรู้อะไรต่อไป? + +บทแนะนำต่อไปนี้ครอบคลุมหัวข้อที่เกี่ยวข้องอย่างใกล้ชิดและต่อยอดจากเทคนิคที่แสดงในคู่มือนี้ แต่ละแหล่งรวมตัวอย่างโค้ดทำงานครบถ้วนพร้อมคำอธิบายขั้นตอนเพื่อช่วยให้คุณเชี่ยวชาญฟีเจอร์ API เพิ่มเติมและสำรวจแนวทางการทำงานแบบอื่นในโปรเจกต์ของคุณ + +- [โหลดเอกสาร HTML จาก URL ใน Aspose.HTML สำหรับ Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [โหลดเอกสาร HTML จากสตรีมด้วย Aspose.HTML สำหรับ Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [บันทึกเอกสาร HTML ไปยังไฟล์ใน Aspose.HTML สำหรับ Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/turkish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..eeda4c2f7 --- /dev/null +++ b/html/turkish/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,258 @@ +--- +category: general +date: 2026-08-12 +description: Python kullanarak HTML'yi Markdown'a dönüştürün. Web sayfasını Markdown'a + dönüştürmek ve belgeleri otomatikleştirmek için bir komut satırı iş akışını öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: tr +lastmod: 2026-08-12 +og_description: HTML'yi Python kullanarak Markdown'a dönüştürün. Bu öğretici, web + sayfasını hızlı ve güvenilir bir şekilde Markdown'a dönüştüren bir komut satırı + çözümünü gösterir. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Python ile HTML'yi Markdown'a Dönüştür – adım adım rehber +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Python ile HTML'yi Markdown'a Dönüştür – tam programlama rehberi +url: /tr/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# HTML'yi Markdown'a Python ile Dönüştür – tam programlama rehberi + +HTML'yi **HTML'yi Markdown'a dönüştür** gerekiyorsa, bu rehber size hazır‑çalıştır bir çözüm gösterir. Kısa bir Python betiğinin herhangi bir HTML dosyasını temiz, Git‑tarzı Markdown'a nasıl dönüştürdüğünü ve aynı mantığı komut satırından nasıl çalıştırabileceğinizi göreceksiniz. + +Web sayfalarını Markdown'a dönüştürmek, statik dokümantasyon siteleri oluştururken veya sürüm‑kontrol depoları için içerik hazırlarken yaygın bir adımdır. Bu öğreticinin sonunda, HTML kodlamasını yöneten, bağlantıları koruyan ve Git‑tarzı Markdown kurallarına saygı gösteren yeniden kullanılabilir bir komut‑satırı aracına sahip olacaksınız. + +## Önkoşullar + +Başlamadan önce şunların kurulu olduğundan emin olun: + +* Sisteminizde Python 3.9 veya daha yeni bir sürüm yüklü. +* `groupdocs-conversion` Python paketi (veya `HTMLDocument`, `MarkdownSaveOptions` ve `Converter` sağlayan herhangi bir kütüphane). Paketi şu şekilde kurun: + +```bash +pip install groupdocs-conversion +``` + +* İşlemek istediğiniz `input.html` kaynak dosyasını içeren bir klasör. + +Aşağıdaki bölümler her adımı adım adım gösterir, neden önemli olduğunu açıklar ve ihtiyacınız olan tam kodu verir. + +## Adım 1: Ortamı Kurun + +İzole bir sanal ortam oluşturmak, bağımlılık çakışmalarını önler ve komut‑satırı aracını taşınabilir kılar. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Why this step?* +*A virtual environment isolates the `groupdocs-conversion` package from other projects, ensuring that the `convert html to markdown command line` utility runs with the exact versions you tested.* + +*Why this step?* +*Bir sanal ortam, `groupdocs-conversion` paketini diğer projelerden izole eder ve `convert html to markdown command line` aracının test ettiğiniz tam sürümlerle çalışmasını sağlar.* + +## Adım 2: Dönüştürme betiğini yazın + +`html_to_md.py` adlı bir dosya oluşturun ve aşağıdaki kodu yapıştırın. Betik üç argüman kabul eder: giriş HTML yolu, çıkış Markdown yolu ve isteğe bağlı olarak Git‑tarzı biçimlendiriciyi seçen bir bayrak. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Betiğin Açıklaması + +| Bölüm | Amaç | +|---------|---------| +| **Argument parsing** | **convert html to markdown command line** kullanım desenini etkinleştirir. | +| **HTMLDocument** | Kaynak dosyayı yükler; kütüphane karakter kodlamasını ve DOM ayrıştırmayı soyutlar. | +| **MarkdownSaveOptions** | Düz ve Git‑tarzı Markdown arasında geçiş yapmanızı sağlar (`--git` bayrağı). | +| **Converter.convert_html** | Ağır işi yapar – HTML ağacını dolaşır, etiketleri çevirir ve çıktı dosyasını yazar. | +| **Error handling** | CI boru hatları için kritik olan net bir başarı/başarısızlık mesajı sağlar. | + +## Adım 3: Dönüştürmeyi komut satırından çalıştırın + +Betik kaydedildikten sonra tek bir komutla herhangi bir HTML dosyasını dönüştürebilirsiniz: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Beklenen çıktı** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +`output.md` dosyasını bir metin düzenleyicide açın; başlıklar, listeler ve bağlantıların temiz Markdown sözdizimiyle oluşturulduğunu göreceksiniz. Git biçimlendiriciyi kullandığımız için tablolar boru (`|`) ayırıcılarıyla, görev listeleri ise `- [ ]` sözdizimiyle gösterilir; bu, GitHub ve GitLab tarafından yerel olarak işlenir. + +## Adım 4: Aracı otomasyon boru hatlarına entegre edin + +Belgeleri bir depoda tutuyorsanız, dönüşüm adımını bir CI iş akışına ekleyebilirsiniz. Aşağıda her push işleminde çalışan bir GitHub Actions işi örneği verilmiştir: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Why this matters* – **convert web page to markdown** adımını otomatikleştirmek, belgelerinizin kaynak HTML dosyalarıyla manuel çaba olmadan senkron kalmasını garanti eder. + +## Kenar durumları ve en iyi uygulama ipuçları + +* **Encoding problems** – HTML'niz UTF‑8 dışı karakterler içeriyorsa, `HTMLDocument` oluştururken açık bir kodlama belirtin (ör. `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – 50 MB'den büyük HTML dosyaları için dönüşümü akış olarak gerçekleştirmeyi düşünün; böylece bellek dalgalanmalarının önüne geçilir. Kütüphane bu senaryo için bir `convert_html_stream` yöntemi sunar. +* **Custom CSS handling** – Dönüştürücü varsayılan olarak stil niteliklerini kaldırır. Belirli biçimlendirmeleri korumanız gerekiyorsa `md_opts.preserveFormatting = True` ayarını etkinleştirin. +* **Command‑line shortcut** – Argümanları `html_to_md.py`'ye yönlendiren küçük bir sarmalayıcı betik (`html2md`) oluşturun. `$HOME/.local/bin` içine koyun ve `PATH`'inize ekleyin; böylece **convert html to markdown command line** deneyiminiz daha da kısalır. + +## Sıkça Sorulan Sorular + +**Bu Windows, macOS ve Linux'ta çalışır mı?** +Evet. Betik yalnızca çapraz‑platform `groupdocs-conversion` paketi ve standart Python kütüphanelerine dayanır; bu yüzden üç işletim sisteminde de değişiklik olmadan çalışır. + +**Uzak bir web sayfasını doğrudan dönüştürebilir miyim?** +Sayfayı `requests` ile çekebilir ve HTML dizesini `HTMLDocument`'e besleyebilirsiniz: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Sadece HTML → GitHub‑tarzı Markdown ihtiyacım olursa ne yapmalıyım?** +Her zaman `--git` bayrağını geçin; biçimlendirici GitHub, GitLab ve Bitbucket ile uyumlu bir çıktı üretir. + +## Sonuç + +Artık Python betiği ve komut satırından çalışan sağlam bir **convert HTML to Markdown** çözümünüz var. Eğitim, ortam kurulumunu, tam kaynak kodunu, komut‑satırı kullanımını, CI entegrasyonunu ve pratik kenar‑durum yönetimini kapsadı. + +Sonraki adımda **convert markdown to HTML**'i keşfedebilir, gelişmiş dönüşüm seçenekleri için Pandoc deneyebilir veya Markdown dosyalarına doğrudan meta veri eklemek için bir front‑matter üreticisi ekleyebilirsiniz. Bu uzantıların her biri, az önce edindiğiniz temel kavramlar üzerine inşa edilir. + +İyi dönüşümler! + +## Sonra Ne Öğrenmelisiniz? + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanarak yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini ustalaşmanız ve projelerinizde alternatif uygulama yaklaşımlarını keşfetmeniz için adım‑adım açıklamalı tam çalışan kod örnekleri içerir. + +- [Java için Aspose.HTML'de HTML'yi Markdown'a Dönüştür](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [.NET ile Aspose.HTML'de HTML'yi Markdown'a Dönüştür](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/turkish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..3196e1777 --- /dev/null +++ b/html/turkish/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,214 @@ +--- +category: general +date: 2026-08-12 +description: GroupDocs.Viewer kullanarak Python'da HTML'yi PDF'ye dönüştürün. Esnek + HTML'den PDF'ye seçeneklerle HTML'yi PDF olarak kaydetmeyi ve hassas kontrolü öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: tr +lastmod: 2026-08-12 +og_description: GroupDocs.Viewer ile HTML'yi PDF'ye dönüştürün. Bu kılavuz, HTML'yi + PDF olarak kaydetmeyi, HTML'den PDF'ye seçenekleri yapılandırmayı ve büyük belgeleri + güvenilir bir şekilde işlemeyi gösterir. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: HTML'yi PDF'ye Dönüştür – Adım Adım Python Öğreticisi +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Python’da HTML’yi PDF’ye Dönüştür – tam programlama rehberi +url: /tr/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python'da HTML'yi PDF'ye Dönüştür – tam programlama rehberi + +Eğer bir Python projesinde **HTML'yi PDF'ye dönüştürmeniz** gerekiyorsa, bu rehber size çalıştırmaya hazır bir çözüm gösterir. Görüntüleyici kütüphanesinin kurulumunu, **html to pdf options** yapılandırmasını ve son olarak sadece birkaç satır kodla **HTML'yi PDF olarak kaydetmeyi** adım adım anlatacağız. + +HTML belgelerini dönüştürmek genellikle resimler, CSS veya JavaScript gibi bağlı kaynakların işlenmesini gerektirir. Bu öğreticinin sonunda kaynak iç içe geçmesini nasıl sınırlayacağınızı, bellek dalgalanmalarından nasıl kaçınacağınızı ve orijinal sayfa düzenine uygun temiz bir PDF dosyası nasıl üreteceğinizi anlayacaksınız. + +## Önkoşullar + +- Python 3.8 veya daha yeni bir sürüm +- `pip` (Python paket yöneticisi) +- Dönüştürmek istediğiniz HTML dosyasına erişim (ör. `large_page.html`) + +Ek sistem kütüphanelerine ihtiyaç yoktur; çünkü GroupDocs.Viewer gerekli tüm render motorlarını içinde barındırır. + +## Adım 1: Python için GroupDocs.Viewer'ı Kurun + +GroupDocs.Viewer, HTML dahil birçok formattan PDF'ye yüksek doğrulukta dönüşüm sağlar. Şu komutla kurun: + +```bash +pip install groupdocs-viewer +``` + +> **Pro ipucu:** Bağımlılıkları diğer projelerden izole tutmak için bir sanal ortam (`python -m venv .venv`) kullanın. + +## Adım 2: **html to pdf options**'ı yapılandırın – kaynak iç içe derinliğini sınırlayın + +Büyük HTML sayfaları, iframe'ler, CSS importları vb. gibi derinlemesine iç içe geçmiş kaynaklar içerebilir. Maksimum işleme derinliğini ayarlamak, dönüştürücünün sınırsız şekilde yinelemesini önler ve bellek kullanımını öngörülebilir kılar. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +`max_handling_depth` özelliği, görüntüleyicinin kaç seviyedeki bağlı kaynağı takip etmesi gerektiğini belirtir. Çoğu web sayfası için `3` derinlik, gerekli resim ve stilleri korurken iyi çalışır. + +## Adım 3: **HTML'yi PDF'ye dönüştürmek** istediğiniz HTML belgesini yükleyin + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +`Viewer`, dosya formatı algılamasını soyutlar; bu sayede `HtmlDocument`'i manuel olarak örneklemenize gerek kalmaz. Bu adım, dönüştürücünün çalışacağı iç temsilin hazırlanmasını sağlar. + +## Adım 4: Yapılandırılmış **html to pdf options** kullanarak **HTML'yi PDF olarak kaydedin** + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +`PdfSaveOptions` nesnesi, daha önce tanımladığımız `resource_handling_options` dahil olmak üzere tüm PDF‑özel ayarları bir araya getirir. `viewer.save` çalıştığında, HTML sayfası render edilir, kaynaklar izin verilen derinliğe kadar işlenir ve son PDF `output_path` konumuna yazılır. + +### Beklenen sonuç + +Betik tamamlandığında, `output.pdf` dosyası `large_page.html`'nin eksiksiz bir temsilini içerir. PDF'yi herhangi bir görüntüleyicide (Adobe Reader, Chrome vb.) açın ve şunları doğrulayın: + +- Resimler, tablolar ve temel CSS stilleri doğru şekilde görünür. +- Derin kaynak yinelemesinden kaynaklanan beklenmedik boş sayfalar yoktur. + +## Köşe durumları ve yaygın varyasyonların ele alınması + +| Durum | Önerilen ayar | +|-----------|-------------------| +| **HTML dış fontlar içeriyorsa** | PDF'de fontların gömülü olmasını sağlamak için `pdf_options.embed_all_fonts = True` ekleyin. | +| **Belirli bir sayfa boyutuna ihtiyacınız varsa** | `pdf_options.page_width` ve `pdf_options.page_height` değerlerini ayarlayın (ör. A4: `595, 842`). | +| **Büyük dosyalar bellek yetersizliği hatalarına yol açıyorsa** | `resource_options.max_handling_depth` değerini azaltın veya HTML'yi daha küçük parçalara bölüp her birini ayrı ayrı dönüştürün. | +| **PDF'yi şifreyle korumak istiyorsanız** | `save` çağrısından önce `pdf_options.password = "YourSecret"` kullanın. | + +Bu ayarlamalar, **html to pdf options**'ın esnekliğini gösterir ve dönüşümü tam gereksinimlerinize göre nasıl özelleştirebileceğinizi ortaya koyar. + +## Kopyalayıp yapıştırabileceğiniz tam betik + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Betik çalıştırın: + +```bash +python convert_html_to_pdf.py +``` + +Onay mesajını görmeli ve belirtilen dizinde `output.pdf` dosyasını bulmalısınız. + +## Sıkça Sorulan Sorular + +**Q: Bu, yerel dosyalar yerine uzak URL'lerle çalışır mı?** +A: Evet. URL dizesini `Viewer`'a aktarın (ör. `Viewer("https://example.com/page.html")`). Görüntüleyici, **html to pdf options** uygulanmadan önce sayfayı indirir. + +**Q: Bir seferde birden fazla HTML dosyasını dönüştürebilir miyim?** +A: Dönüştürme kodunu, dosya yolu listesi üzerinde dönen bir döngüye yerleştirin. Verimlilik için aynı `resource_options` ve `pdf_options` nesnelerini yeniden kullanın. + +**Q: HTML, DOM'u değiştiren JavaScript içeriyorsa ne olur?** +A: GroupDocs.Viewer statik HTML'yi render eder; **JavaScript çalıştırmaz**. Dinamik sayfalar için önce bir başsız tarayıcıda (ör. Selenium) sayfayı render edin, ardından elde edilen statik HTML'yi dönüştürücüye besleyin. + +## Sonuç + +Artık Python'da **HTML'yi PDF'ye dönüştürmek** için eksiksiz, üretim‑hazır bir yönteme sahipsiniz. **resource handling**'i yapılandırarak bağlı kaynakların ne kadar derin işleneceğini kontrol edebilir, `PdfSaveOptions` ile **HTML'yi PDF olarak kaydedebilir** ve ince ayarlı **html to pdf options** sayesinde dönüşümü tam ihtiyacınıza göre özelleştirebilirsiniz. Font gömme veya sayfa boyutu gibi isteğe bağlı ayarlarla uygulamanızın gereksinimlerine tam uyum sağlayın. + +--- + +*Sonraki adımlar*: **save HTML document pdf**'yi şifre korumasıyla keşfedin veya bu dönüşümü Flask ya da FastAPI kullanan bir web API'sine entegre ederek isteğe bağlı PDF üretimi yapın. + + +## Sonra Ne Öğrenmelisiniz? + + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanarak yakından ilgili konuları kapsar. Her kaynak, ek API özelliklerini öğrenmenize ve kendi projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olacak tam çalışan kod örnekleri ve adım adım açıklamalar içerir. + +- [Java'da HTML'yi PDF'ye Dönüştürme – Aspose.HTML for Java Kullanarak](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Java'da HTML'yi PDF'ye Dönüştürme – Aspose.HTML'de Ortamı Yapılandırma](/html/english/java/configuring-environment/) +- [Java'da HTML'yi PDF'ye Dönüştürme – Aspose.HTML for Java'da Web İsteği Çalıştırma](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/turkish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..7f04f907a --- /dev/null +++ b/html/turkish/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,345 @@ +--- +category: general +date: 2026-08-12 +description: Aspose HTML Dönüştürücü ile Python’da HTML’yi PDF’ye dönüştürün. HTML’den + PDF oluşturmayı ve EPUB’u sadece birkaç satır kodla PDF’ye dönüştürmeyi öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: tr +lastmod: 2026-08-12 +og_description: Aspose HTML Dönüştürücü kullanarak Python'da HTML'yi PDF'ye dönüştürün. + Bu öğreticide, HTML'den PDF oluşturma ve EPUB'yi PDF'ye dönüştürme işlemleri, net + ve çalıştırılabilir kodlarla gösterilmektedir. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Aspose HTML Dönüştürücü ile Python'da HTML'yi PDF'ye Dönüştürme – hızlı + rehber +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Aspose HTML Converter kullanarak Python'da HTML'yi PDF'ye dönüştür +url: /tr/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Python’da Aspose HTML Converter ile HTML’yi PDF’e Dönüştürme + +HTML’yi **PDF’e hızlıca dönüştürmeniz** gerektiğinde, bu kılavuz Aspose.HTML Python kütüphanesiyle bunu nasıl yapacağınızı adım adım gösterir. Kullanıcıların gönderdiği sayfaları yazdırılabilir PDF’lere dönüştüren bir web‑servisi oluşturuyor ya da rapor üretimini otomatikleştiriyor olun, aşağıdaki adımlar tam, çalıştırılabilir bir çözüm sunar. + +HTML’e ek olarak Aspose.HTML, e‑kitap formatlarını da destekler; bu yüzden **EPUB dosyalarını** Python’dan çıkmadan **PDF’e nasıl dönüştüreceğinizi** de göreceksiniz. Bu öğreticinin sonunda **HTML’den PDF oluşturma** ve birkaç satır kodla EPUB e‑kitapların PDF sürümlerini üretme yeteneğine sahip olacaksınız. + +## Önkoşullar + +Başlamadan önce şunların yüklü olduğundan emin olun: + +* Python 3.8 veya daha yeni bir sürüm. +* Aktif bir Aspose.HTML for Python lisansı (değerlendirme için ücretsiz deneme sürümü yeterli). +* `aspose-html` paketini kurmak için `pip` erişimi. +* Dönüştürmek istediğiniz örnek HTML veya EPUB dosyaları. + +```bash +pip install aspose-html +``` + +> **İpucu:** Bağımlılıkları izole tutmak için paketi bir sanal ortam içinde kurun. + +## Dönüştürme sürecinin genel görünümü + +Aspose.HTML, HTML, CSS ve e‑kitap içeriğini PDF’e dönüştürme ayrıntılarını soyutlayan tek bir `Converter` sınıfı sağlar. İş akışı şu şekildedir: + +1. `Converter` sınıfını içe aktarın. +2. `Converter.convert(source_path, target_path)` metodunu çağırın. +3. (İsteğe bağlı) Sayfa boyutu veya font gömme gibi dönüşüm ayarlarını düzenleyin. + +Kütüphane, dosya uzantısına göre kaynak formatını otomatik olarak algılar; bu yüzden aynı yöntem HTML ve EPUB dosyaları için çalışır. + +--- + +## Aspose HTML Converter ile HTML’yi PDF’e Dönüştürme + +### Adım 1: Aspose HTML dönüşüm modülünü içe aktarın + +`Converter` sınıfı `aspose.html` ad alanında bulunur. Betiğinizin en üst kısmına şu satırı ekleyin. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Adım 2: Giriş ve çıkış yollarını hazırlayın + +Betik tarafından okunup yazılabilecek mutlak ya da göreli yollar kullanın. Dönüştürmeye çalışmadan önce kaynak dosyanın varlığını doğrulamak iyi bir uygulamadır. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Adım 3: Dönüştürmeyi gerçekleştirin + +`Converter.convert` çağrısı tüm ağır işi yapar: HTML’i render eder, CSS’i uygular ve bir PDF dosyası yazar. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Bunun neden çalıştığı + +* **Otomatik yerleşim motoru** – Aspose.HTML, modern CSS, SVG ve JavaScript’i doğru şekilde işleyen Chromium‑tabanlı bir render motoru kullanır. +* **Ara dosyalar yok** – Dönüştürme bellek içinde gerçekleşir, bu da I/O yükünü azaltır ve toplu işleme hızını artırır. + +### Beklenen çıktı + +Betik çalıştırıldıktan sonra `output.pdf`, `input.html` dosyasının sadık bir temsilini içerir. Fontların, görsellerin ve sayfa sonlarının orijinal web sayfasıyla eşleştiğini doğrulamak için herhangi bir PDF görüntüleyicide açın. + +![Conversion diagram](https://example.com/conversion-diagram.png "HTML ve EPUB dosyalarının Aspose HTML Converter kullanılarak PDF’e dönüştürülmesini gösteren diyagram") + +*(Görsel alt metni: HTML ve EPUB dosyalarının Aspose HTML Converter kullanılarak PDF’e dönüştürülmesini gösteren diyagram)* + +--- + +## Özel ayarlarla HTML’den PDF Oluşturma + +Bazen sayfa boyutu, kenar boşlukları ya da belirli fontların gömülmesi gibi kontroller gerekir. Aspose.HTML bu amaçla bir `PdfSaveOptions` sınıfı sunar. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*`options` nesnesi isteğe bağlıdır; varsayılan yerleşimden memnunsanız atlayabilirsiniz.* + +--- + +## Python’da EPUB’u PDF’e Dönüştürme + +### Adım 1: EPUB kaynağını bulun + +HTML’de olduğu gibi, dönüştürmek istediğiniz EPUB dosyasının yolunu belirtin. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Adım 2: Dönüştürmeyi çalıştırın + +Aynı `Converter.convert` metodu `.epub` uzantısını algılar ve e‑kitap render hattına geçiş yapar. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Dikkate alınması gereken kenar durumları + +| Durum | Önerilen çözüm | +|-----------------------------------------|----------------| +| Yüzlerce bölümü olan büyük EPUB | Bellek kullanımını sınırlamak için `PdfSaveOptions.start_page` ve `end_page` ile parçalar halinde dönüştürün. | +| EPUB içinde eksik fontlar | Sistem fontlarına geri dönmek için `PdfSaveOptions.embed_standard_fonts = True` ayarlayın. | +| Şifre korumalı EPUB | Dönüştürmeden önce şifreyi sağlamak için `PdfLoadOptions` kullanın (burada gösterilmemiştir). | + +--- + +## Tam, çalıştırılabilir örnek + +Aşağıda yukarıdaki tüm adımları birleştiren tek bir betik yer alıyor. `convert_demo.py` olarak kaydedin ve komut satırından çalıştırın. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Betik çalıştırma: + +```bash +python convert_demo.py +``` + +`YOUR_DIRECTORY` içinde üç onay mesajı ve üç PDF dosyası görmelisiniz. + +--- + +## Yaygın hatalar ve nasıl önlenir + +* **Lisans eksikliği** – Geçerli bir Aspose.HTML lisansı olmadan kütüphane her sayfaya bir filigran ekler. Lisansı betiğin başında kaydedin: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Farklı işletim sistemlerinde göreli yollar** – Platform bağımsız yollar oluşturmak için `os.path.join` ve `os.path.abspath` kullanın. + +* **Harici kaynakları olan büyük HTML** – Tüm CSS, görsel ve fontların dosya sisteminden erişilebilir olduğundan ya da veri URI’larıyla gömülü olduğundan emin olun. Aksi takdirde PDF boş yer tutucular gösterebilir. + +* **İş parçacığı güvenliği** – `Converter.convert` iş parçacığı‑güvenlidir, ancak aynı anda çok sayıda dönüştürücü oluşturmak önemli bellek tüketimine yol açabilir. Yüzlerce dosyayı paralel işliyorsanız tek bir dönüştürücü örneğini yeniden kullanın. + +--- + +## Sonuç + +Artık **HTML’yi PDF’e dönüştürme** ve **EPUB dosyalarını PDF’e dönüştürme** işlemlerini Python’da **Aspose HTML Converter** kullanarak tam, üretim‑hazır bir yaklaşımla yapabiliyorsunuz. Eğitimde şunlar ele alındı: + +* Doğru modülün içe aktarılması. +* Giriş dosyalarının doğrulanması. +* Temel bir dönüşümün gerçekleştirilmesi. +* `PdfSaveOptions` ile PDF çıktısının özelleştirilmesi. +* Büyük veya şifre korumalı EPUB’ların işlenmesi. + +Buradan itibaren çözümü klasörleri toplu işlemek, kodu bir Flask ya da FastAPI uç noktasına entegre etmek ya da DOCX veya PNG gibi ek çıktı formatlarıyla (Aspose.HTML bunları da destekler) denemeler yapmak için genişletebilirsiniz. + +--- + +### Sonraki adımlar + +* **JavaScript‑odaklı sayfalar** için `Converter.convert`’i başsız tarayıcı oturumu ile etkinleştirerek **HTML’den PDF oluşturma**’yı keşfedin. +* **Aspose.PDF** ile birleştirerek birden fazla PDF’i birleştirme veya dijital imza ekleme gibi son‑işlem görevlerini gerçekleştirin. +* **aspose-html-converter** gelişmiş seçeneklerine göz atın; örneğin yoğun görsel içeren belgeler için `PdfSaveOptions.jpeg_quality` gibi ayarlar. + +Kodlamanın tadını çıkarın ve tüm belge‑dönüştürme ihtiyaçlarınızda Aspose.HTML’in güvenilirliğinden faydalanın! + +## Bir Sonraki Öğrenmeniz Gerekenler + +Aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanan ve ilgili konuları derinlemesine ele alan örnekler içerir. Her kaynak, adım adım açıklamalar ve tam çalışan kod örnekleri sunar; böylece ek API özelliklerini öğrenebilir ve projelerinizde alternatif uygulama yaklaşımlarını keşfedebilirsiniz. + +- [Aspose.HTML ile HTML’yi PDF’e Dönüştürme – Tam Manipülasyon Kılavuzu](/html/english/) +- [.NET’te Aspose.HTML ile EPUB’u PDF’e Dönüştürme](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/turkish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..39240aae8 --- /dev/null +++ b/html/turkish/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,212 @@ +--- +category: general +date: 2026-08-12 +description: Python’da HTML dosyasını hızlıca yükleyin. Python kullanarak HTML dosyasını + nasıl okuyacağınızı, URL’den HTML nasıl yükleneceğini ve tek bir öğreticide dizeden + HTMLDocument nasıl oluşturulacağını öğrenin. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: tr +lastmod: 2026-08-12 +og_description: HTMLDocument sınıfını kullanarak Python’da dosyadan HTML yükleyin. + Bu kılavuzu izleyerek Python ile HTML dosyasını okuyun, URL’den HTML yükleyin ve + sağlam web içeriği yönetimi için dizeden HTMLDocument oluşturun. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Python’da dosyadan HTML yükle – hızlı programlama rehberi +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Python’da dosyadan HTML yükleme – adım adım rehber +url: /tr/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Dosyadan HTML Yükleme Python’da – adım adım rehber + +Python’da **dosyadan html yüklemek** istiyorsanız, bu rehber size tam olarak nasıl yapılacağını gösterir. Ayrıca **python kullanarak html dosyasını okuma**, url’den html yükleme ve **string’den htmldocument oluşturma** konularını da öğrenecek ve HTML içeriğinin herhangi bir kaynağını yönetebileceksiniz. + +Örnekler, yerel dosyalar, uzak URL’ler ve ham HTML stringleri için birleşik bir API sağlayan `html_document` paketindeki `HTMLDocument` sınıfını kullanır. Bu yaklaşım Python 3.8+ ile çalışır ve `pathlib` ve `requests` gibi standart kütüphanelerle sorunsuz bir şekilde bütünleşir. + +![Python’da dosyadan HTML yükleme kod ekran görüntüsü](image.png) + +## Python’da dosyadan HTML yükleme – temel örnek + +Yerel dosya sisteminden bir HTML dosyası yüklemek, statik sayfaları işlerken en yaygın ilk adımdır. `HTMLDocument` yapıcı bir dosya yolu alır, dosyanın kodlamasını otomatik olarak algılar ve işaretlemi ayrıştırır. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Neden bu çalışır:** +* `Path`, OS‑özel yol ayırıcılarını soyutlayarak kodun Windows, macOS ve Linux arasında taşınabilir olmasını sağlar. +* `HTMLDocument`, dosyayı ikili (binary) modda okur, UTF‑8 veya UTF‑16 BOM’u algılar ve gerektiğinde sistemin varsayılan kodlamasına geri döner. + +**Beklenen çıktı (HTML `Example` içerdiği varsayılarak):** + +``` +Title: Example +``` + +### Dosya yüklerken yaygın tuzaklar + +* **FileNotFoundError** – Yolun doğru olduğundan ve dosyanın mevcut olduğundan emin olun. Ön kontrol için `file_path.is_file()` kullanın. +* **Kodlama hataları** – Sayfa UTF‑8 olmayan bir karakter seti kullanıyorsa, yapıcıya `encoding="iso-8859-1"` parametresini geçin: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Python kullanarak html dosyasını okuma – detaylı açıklama + +**read html file using python** ifadesi, geliştiricilerin kaydedilmiş web sayfalarından veri çıkarması gerektiğinde sıkça görülür. `HTMLDocument` çoğu işi soyutlasa da, ham metni yükleyip manuel olarak ayrıştırıcıya besleyebilirsiniz. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Neden bu yolu seçebilirsiniz:** +* HTML’i ayrıştırmadan önce ön işleme (ör. scriptleri kaldırma) yapmanız gerekiyorsa. +* Dosyayı yeniden okumadan ham işaretlemi daha sonra kullanmak üzere önbelleğe almak istiyorsanız. + +## URL’den html yükleme – uzak sayfaları çekme + +HTML’i doğrudan bir web adresinden yüklemek, iş akışını canlı içeriğe genişletir. **load html from url** adımı, HTTP işlemleri için `requests` kütüphanesine dayanır ve ardından yanıt metnini `HTMLDocument`’e verir. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Neden bu çalışır:** +* `requests.get`, yönlendirmeleri takip eder ve HTTPS’yi kutudan çıkar çıkmaz yönetir. +* `response.raise_for_status()` sadece başarılı yanıtların ayrıştırılmasını garanti eder, sessiz hataları önler. + +**Köşe durumları:** +* **Yavaş ağ** – `timeout` parametresini ayarlayın veya bağlantı havuzu için `requests.Session` kullanın. +* **HTML olmayan içerik** – Ayrıştırmadan önce `Content-Type` başlığını (`response.headers["Content-Type"]`) doğrulayın. + +## String’den htmldocument oluşturma – ham HTML ile çalışma + +Bazen HTML’i dinamik olarak (ör. bir şablon motorundan) oluşturursunuz ve diske yazmadan bir belge gibi işlemelisiniz. **create htmldocument from string** işlemi oldukça basittir. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Neden bu faydalıdır:** +* Geçici dosyalara ihtiyaç duyulmaz, bu da sunucusuz ortamların performansını artırır. +* Oluşturulan işaretlemi bir istemciye göndermeden veya depolamadan önce doğrulamanıza olanak tanır. + +**String işleme ipuçları:** +* İşaretlemi okunabilir tutmak için üç tırnaklı stringler kullanın. +* HTML Unicode karakterler içeriyorsa, kaynak dosyanın UTF‑8 kodlamasıyla kaydedildiğinden emin olun. + +## Tam uçtan uca örnek + +Bu dört yükleme stratejisini bir araya getirerek, yerel, uzak ve bellek içi kaynaklar arasında geçiş yapabilen esnek bir işlem hattı gösterilir. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Bu kodun gösterdiği:** + +* Tek bir `HTMLDocument` sınıfı tüm giriş tiplerini yönetir, API yüzey alanını azaltır. +* Yardımcı fonksiyonlar hata yönetimini kapsüller ve çağıran kodu özlü hâle getirir. +* Bu desen toplu işleme ölçeklenebilir: dosya yolu veya URL listesi üzerinde döngü kurup her belgeyi bir kazıyıcıya veya dönüştürücüye besleyin. + +## Sonuç + +Artık `HTMLDocument` sınıfını kullanarak **Python’da dosyadan html yükleme**, **python kullanarak html dosyasını okuma** ve ... + +## Sonra Ne Öğrenmelisiniz? + +İlgili konuları daha derinlemesine ele alan aşağıdaki öğreticiler, bu rehberde gösterilen tekniklere dayanmaktadır. Her kaynak, adım adım açıklamalarla tam çalışan kod örnekleri içerir ve ek API özelliklerini öğrenmenize ve projelerinizde alternatif uygulama yaklaşımlarını keşfetmenize yardımcı olur. + +- [Aspose.HTML for Java’da URL’den HTML Belgeleri Yükleme](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Aspose.HTML for Java’da Akıştan HTML Belgeleri Yükleme](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Aspose.HTML for Java’da HTML Belgesini Dosyaya Kaydetme](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md b/html/vietnamese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md new file mode 100644 index 000000000..46050011b --- /dev/null +++ b/html/vietnamese/python/general/convert-html-to-markdown-with-python-complete-programming-gu/_index.md @@ -0,0 +1,253 @@ +--- +category: general +date: 2026-08-12 +description: Chuyển đổi HTML sang Markdown bằng Python. Tìm hiểu quy trình làm việc + trên dòng lệnh để chuyển đổi trang web sang Markdown và tự động hoá tài liệu. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to markdown +- convert web page to markdown +- convert html to markdown command line +language: vi +lastmod: 2026-08-12 +og_description: Chuyển đổi HTML sang Markdown bằng Python. Hướng dẫn này cho bạn giải + pháp dòng lệnh để chuyển đổi trang web sang Markdown một cách nhanh chóng và đáng + tin cậy. +og_image_alt: Screenshot of Python script that converts HTML to Markdown +og_title: Chuyển đổi HTML sang Markdown bằng Python – hướng dẫn từng bước +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to Markdown using Python. Learn a command‑line workflow + to convert web page to Markdown and automate documentation. + headline: Convert HTML to Markdown with Python – complete programming guide + type: TechArticle +tags: +- HTML +- Markdown +- Python +- CLI +title: Chuyển đổi HTML sang Markdown bằng Python – hướng dẫn lập trình hoàn chỉnh +url: /vi/python/general/convert-html-to-markdown-with-python-complete-programming-gu/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Chuyển đổi HTML sang Markdown với Python – hướng dẫn lập trình đầy đủ + +Nếu bạn cần **convert HTML to Markdown**, hướng dẫn này sẽ cho bạn một giải pháp sẵn sàng chạy. Bạn sẽ thấy cách một đoạn script Python ngắn chuyển bất kỳ tệp HTML nào thành Markdown sạch, có định dạng Git, và cách bạn có thể gọi cùng logic này từ dòng lệnh. + +Việc chuyển đổi các trang web sang Markdown là một bước phổ biến khi xây dựng các trang tài liệu tĩnh hoặc chuẩn bị nội dung cho các kho lưu trữ có kiểm soát phiên bản. Khi kết thúc hướng dẫn này, bạn sẽ có một công cụ dòng lệnh có thể tái sử dụng, xử lý mã hoá HTML, bảo tồn liên kết và tuân thủ các quy ước Markdown có định dạng Git. + +## Yêu cầu trước + +* Python 3.9 hoặc mới hơn đã được cài đặt trên hệ thống của bạn. +* Gói Python `groupdocs-conversion` (hoặc bất kỳ thư viện nào cung cấp `HTMLDocument`, `MarkdownSaveOptions`, và `Converter`). Cài đặt nó bằng: + +```bash +pip install groupdocs-conversion +``` + +* Một thư mục chứa tệp `input.html` nguồn mà bạn muốn xử lý. + +Các phần sau sẽ hướng dẫn từng bước, giải thích lý do quan trọng và cung cấp cho bạn đoạn mã chính xác mà bạn cần. + +## Bước 1: Thiết lập môi trường + +Tạo một môi trường ảo riêng biệt giúp ngăn ngừa xung đột phụ thuộc và làm cho công cụ dòng lệnh trở nên di động. + +```bash +# Create a virtual environment in the project folder +python -m venv .venv + +# Activate the environment (Windows) +.\.venv\Scripts\activate + +# Activate the environment (macOS / Linux) +source .venv/bin/activate + +# Install the required library +pip install groupdocs-conversion +``` + +*Why this step?* +*Một môi trường ảo tách biệt gói `groupdocs-conversion` khỏi các dự án khác, đảm bảo rằng tiện ích `convert html to markdown command line` chạy với các phiên bản chính xác mà bạn đã kiểm thử.* + +## Bước 2: Viết script chuyển đổi + +Tạo một tệp có tên `html_to_md.py` và dán đoạn mã sau. Script này nhận ba đối số: đường dẫn HTML đầu vào, đường dẫn Markdown đầu ra, và một cờ tùy chọn để chọn bộ định dạng Git‑flavored. + +```python +"""html_to_md.py – Convert HTML to Markdown from the command line. + +Usage: + python html_to_md.py INPUT_HTML OUTPUT_MD [--git] + +Arguments: + INPUT_HTML Path to the source HTML file. + OUTPUT_MD Desired path for the generated Markdown file. + --git Optional flag to use Git‑flavored Markdown (default is plain). + +The script uses GroupDocs.Conversion to read the HTML document, +configure Markdown save options, and write the result to disk. +""" + +import argparse +import sys +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + + +def parse_arguments() -> argparse.Namespace: + parser = argparse.ArgumentParser(description="Convert HTML to Markdown.") + parser.add_argument("input_html", help="Path to the HTML file to convert.") + parser.add_argument("output_md", help="Path where the Markdown file will be saved.") + parser.add_argument( + "--git", + action="store_true", + help="Use Git‑flavored Markdown (adds tables, task lists, etc.).", + ) + return parser.parse_args() + + +def convert_html_to_markdown(input_path: str, output_path: str, use_git: bool) -> None: + """Perform the conversion and write the Markdown file.""" + # Load the HTML document + html_doc = HTMLDocument(input_path) + + # Configure save options + md_opts = MarkdownSaveOptions() + if use_git: + md_opts.formatter = MarkdownSaveOptions.Formatter.GIT + + # Execute the conversion + Converter.convert_html(html_doc, md_opts, output_path) + + +def main() -> None: + args = parse_arguments() + try: + convert_html_to_markdown(args.input_html, args.output_md, args.git) + print(f"✅ Conversion succeeded: '{args.output_md}'") + except Exception as exc: + print(f"❌ Conversion failed: {exc}", file=sys.stderr) + sys.exit(1) + + +if __name__ == "__main__": + main() +``` + +### Giải thích script + +| Phần | Mục đích | +|---------|---------| +| **Argument parsing** | Cho phép mẫu sử dụng **convert html to markdown command line**. | +| **HTMLDocument** | Tải tệp nguồn; thư viện trừu tượng hoá việc mã hoá ký tự và phân tích DOM. | +| **MarkdownSaveOptions** | Cho phép bạn chuyển đổi giữa Markdown thuần và Markdown có định dạng Git (`--git` flag). | +| **Converter.convert_html** | Thực hiện công việc nặng – duyệt cây HTML, chuyển đổi các thẻ, và ghi tệp đầu ra. | +| **Error handling** | Cung cấp thông báo thành công/ thất bại rõ ràng, điều này rất quan trọng cho các pipeline CI. | + +## Bước 3: Chạy chuyển đổi từ dòng lệnh + +Sau khi lưu script, bạn có thể chuyển đổi bất kỳ tệp HTML nào bằng một lệnh duy nhất: + +```bash +# Basic conversion (plain Markdown) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md + +# Git‑flavored conversion (adds tables, task lists, etc.) +python html_to_md.py YOUR_DIRECTORY/input.html YOUR_DIRECTORY/output.md --git +``` + +**Kết quả mong đợi** + +``` +✅ Conversion succeeded: 'YOUR_DIRECTORY/output.md' +``` + +Mở `output.md` trong trình soạn thảo văn bản; bạn sẽ thấy các tiêu đề, danh sách và liên kết được hiển thị dưới dạng cú pháp Markdown sạch. Vì chúng tôi đã sử dụng bộ định dạng Git, các bảng xuất hiện với dấu ống (`|`) làm dấu phân cách, và danh sách công việc sử dụng cú pháp `- [ ]`, mà GitHub và GitLab hiển thị một cách tự nhiên. + +## Bước 4: Tích hợp công cụ vào quy trình tự động + +Nếu bạn duy trì tài liệu trong một kho lưu trữ, bạn có thể thêm bước chuyển đổi vào quy trình CI. Dưới đây là một ví dụ cho công việc GitHub Actions chạy trên mỗi lần push: + +```yaml +name: Convert HTML docs to Markdown + +on: + push: + paths: + - 'docs/**/*.html' + +jobs: + convert: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: pip install groupdocs-conversion + - name: Convert HTML to Markdown + run: | + python html_to_md.py docs/input.html docs/output.md --git + - name: Commit converted files + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: "Auto‑convert HTML to Markdown" +``` + +*Why this matters* – Tự động hoá bước **convert web page to markdown** đảm bảo tài liệu của bạn luôn đồng bộ với các tệp HTML nguồn mà không cần thao tác thủ công. + +## Các trường hợp đặc biệt và mẹo thực hành tốt nhất + +* **Encoding problems** – Nếu HTML của bạn chứa các ký tự không phải UTF‑8, hãy truyền mã hoá rõ ràng khi tạo `HTMLDocument` (ví dụ, `HTMLDocument(input_path, encoding='utf-8')`). +* **Large files** – Đối với các tệp HTML lớn hơn 50 MB, hãy cân nhắc chuyển đổi dạng stream để tránh tăng đột biến bộ nhớ. Thư viện cung cấp phương thức `convert_html_stream` cho trường hợp này. +* **Custom CSS handling** – Bộ chuyển đổi mặc định loại bỏ các thuộc tính style. Nếu bạn cần bảo tồn định dạng cụ thể, bật `md_opts.preserveFormatting = True`. +* **Command‑line shortcut** – Tạo một script wrapper nhỏ (`html2md`) chuyển tiếp các đối số tới `html_to_md.py`. Đặt nó trong `$HOME/.local/bin` và thêm vào `PATH` của bạn để có trải nghiệm **convert html to markdown command line** ngắn gọn hơn. + +## Câu hỏi thường gặp + +**Câu hỏi này có hoạt động trên Windows, macOS và Linux không?** +Có. Script chỉ phụ thuộc vào gói `groupdocs-conversion` đa nền tảng và các thư viện chuẩn của Python, vì vậy nó chạy mà không thay đổi trên cả ba hệ điều hành. + +**Tôi có thể chuyển đổi một trang web từ xa trực tiếp không?** +Bạn có thể lấy trang bằng `requests` và truyền chuỗi HTML cho `HTMLDocument`: + +```python +import requests +from groupdocs.conversion import HTMLDocument, MarkdownSaveOptions, Converter + +response = requests.get("https://example.com") +html_doc = HTMLDocument.from_string(response.text) +# Continue with the same md_opts and Converter.convert_html call +``` + +**Nếu tôi chỉ cần chuyển HTML → GitHub‑flavored Markdown thì sao?** +Chỉ cần luôn luôn truyền cờ `--git`; bộ định dạng sẽ tạo ra đầu ra tương thích với GitHub, GitLab và Bitbucket. + +## Kết luận + +Bây giờ bạn đã có một giải pháp **convert HTML to Markdown** mạnh mẽ hoạt động từ script Python và từ dòng lệnh. Hướng dẫn đã bao gồm việc thiết lập môi trường, mã nguồn đầy đủ, cách sử dụng dòng lệnh, tích hợp CI, và xử lý các trường hợp đặc biệt thực tế. + +Tiếp theo, bạn có thể khám phá **convert markdown to HTML**, thử nghiệm Pandoc cho các tùy chọn chuyển đổi nâng cao, hoặc thêm một trình tạo front‑matter để nhúng siêu dữ liệu trực tiếp vào các tệp Markdown. Mỗi phần mở rộng này dựa trên các khái niệm cốt lõi mà bạn vừa nắm vững. + +Chúc bạn chuyển đổi vui vẻ! + +## Bạn nên học gì tiếp theo? + +Các hướng dẫn sau đây bao gồm các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm các ví dụ mã hoàn chỉnh hoạt động cùng với giải thích từng bước để giúp bạn nắm vững các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Chuyển đổi HTML sang Markdown trong Aspose.HTML cho Java](/html/english/java/saving-html-documents/convert-html-to-markdown/) +- [Chuyển đổi HTML sang Markdown trong .NET với Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-html-to-markdown/) + +{{< /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/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md b/html/vietnamese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md new file mode 100644 index 000000000..98df83f6f --- /dev/null +++ b/html/vietnamese/python/general/convert-html-to-pdf-in-python-complete-programming-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Chuyển đổi HTML sang PDF trong Python bằng GroupDocs.Viewer. Tìm hiểu + cách lưu HTML dưới dạng PDF với các tùy chọn chuyển đổi HTML sang PDF linh hoạt + để kiểm soát chính xác. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- save html as pdf +- html to pdf options +- save html document pdf +language: vi +lastmod: 2026-08-12 +og_description: Chuyển đổi HTML sang PDF với GroupDocs.Viewer. Hướng dẫn này chỉ cho + bạn cách lưu HTML dưới dạng PDF, cấu hình các tùy chọn chuyển HTML sang PDF và xử + lý tài liệu lớn một cách đáng tin cậy. +og_image_alt: Screenshot of Python code converting HTML to PDF with GroupDocs.Viewer +og_title: Chuyển đổi HTML sang PDF – hướng dẫn Python từng bước +schemas: +- author: GroupDocs + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python using GroupDocs.Viewer. Learn how to + save HTML as PDF with flexible html to pdf options for precise control. + headline: Convert HTML to PDF in Python – complete programming guide + type: TechArticle +- questions: + - answer: Yes. Pass the URL string to `Viewer` (e.g., `Viewer("https://example.com/page.html")`). + The viewer will download the page before applying the **html to pdf options**. + question: Does this work with remote URLs instead of local files? + - answer: Wrap the conversion code in a loop that iterates over a list of file paths. + Re‑use the same `resource_options` and `pdf_options` objects for efficiency. + question: Can I convert multiple HTML files in a batch? + - answer: 'GroupDocs.Viewer renders the static HTML; it does **not** execute JavaScript. + For dynamic pages, render the page in a headless browser (e.g., Selenium) first, + then feed the resulting static HTML to the converter. ## Conclusion You now + have a complete, production‑ready method to **convert HTML to PDF' + question: What if the HTML uses JavaScript to modify the DOM? + type: FAQPage +tags: +- Python +- PDF conversion +- HTML processing +title: Chuyển đổi HTML sang PDF trong Python – hướng dẫn lập trình đầy đủ +url: /vi/python/general/convert-html-to-pdf-in-python-complete-programming-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Chuyển đổi HTML sang PDF trong Python – hướng dẫn lập trình đầy đủ + +Nếu bạn cần **chuyển đổi HTML sang PDF** trong một dự án Python, hướng dẫn này sẽ cho bạn một giải pháp sẵn sàng chạy. Chúng tôi sẽ hướng dẫn cài đặt thư viện viewer, cấu hình **html to pdf options**, và cuối cùng **save HTML as PDF** chỉ với vài dòng mã. + +Việc chuyển đổi tài liệu HTML thường liên quan đến việc xử lý các tài nguyên liên kết như hình ảnh, CSS hoặc JavaScript. Khi kết thúc tutorial, bạn sẽ hiểu cách giới hạn độ sâu tài nguyên, tránh tăng đột biến bộ nhớ, và tạo ra một tệp PDF sạch sẽ phù hợp với bố cục trang gốc. + +## Yêu cầu trước + +- Python 3.8 hoặc mới hơn +- `pip` (trình cài đặt gói Python) +- Truy cập vào tệp HTML bạn muốn chuyển đổi (ví dụ: `large_page.html`) + +Không cần thư viện hệ thống bổ sung vì GroupDocs.Viewer đã gói sẵn tất cả các engine render cần thiết. + +## Bước 1: Cài đặt GroupDocs.Viewer cho Python + +GroupDocs.Viewer cung cấp chuyển đổi độ chính xác cao từ nhiều định dạng, bao gồm HTML, sang PDF. Cài đặt nó bằng: + +```bash +pip install groupdocs-viewer +``` + +> **Mẹo chuyên nghiệp:** Sử dụng môi trường ảo (`python -m venv .venv`) để giữ các phụ thuộc tách biệt khỏi các dự án khác. + +## Bước 2: Cấu hình **html to pdf options** – giới hạn độ sâu lồng tài nguyên + +Các trang HTML lớn có thể chứa các tài nguyên lồng sâu (iframe, import CSS, v.v.). Đặt độ sâu xử lý tối đa ngăn bộ chuyển đổi đệ quy vô hạn và giữ việc sử dụng bộ nhớ dự đoán được. + +```python +from groupdocs.viewer import ResourceHandlingOptions + +# Create options object and restrict nesting to three levels +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # prevents excessive recursion +``` + +Thuộc tính `max_handling_depth` cho viewer biết bao nhiêu mức độ tài nguyên liên kết cần theo dõi. Độ sâu `3` hoạt động tốt cho hầu hết các trang web đồng thời vẫn giữ lại các hình ảnh và kiểu cần thiết. + +## Bước 3: Tải tài liệu HTML bạn muốn **chuyển đổi HTML sang PDF** + +`Viewer` trừu tượng hoá việc phát hiện định dạng tệp, vì vậy bạn không cần tự khởi tạo `HtmlDocument`. Bước này chuẩn bị biểu diễn nội bộ mà bộ chuyển đổi sẽ làm việc. + +```python +from groupdocs.viewer import Viewer, HtmlDocument + +# Path to the source HTML file +html_path = "YOUR_DIRECTORY/large_page.html" + +# Load the document; Viewer automatically detects the format +viewer = Viewer(html_path) +``` + +## Bước 4: **Save HTML as PDF** sử dụng **html to pdf options** đã cấu hình + +Đối tượng `PdfSaveOptions` gói tất cả các cài đặt riêng cho PDF, bao gồm `resource_handling_options` mà chúng ta đã định nghĩa trước đó. Khi `viewer.save` được thực thi, trang HTML được render, các tài nguyên được xử lý tới độ sâu cho phép, và tệp PDF cuối cùng được ghi vào `output_path`. + +```python +from groupdocs.viewer import PdfSaveOptions + +# Attach the previously defined resource handling options +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Destination PDF file +output_path = "YOUR_DIRECTORY/output.pdf" + +# Perform the conversion +viewer.save(output_path, pdf_options) +``` + +### Kết quả mong đợi + +Sau khi script hoàn thành, `output.pdf` chứa một bản sao chính xác của `large_page.html`. Mở PDF bằng bất kỳ trình xem nào (Adobe Reader, Chrome, v.v.) và kiểm tra rằng: + +- Hình ảnh, bảng và các kiểu CSS cơ bản hiển thị đúng. +- Không có trang trắng không mong muốn do đệ quy tài nguyên sâu. + +## Xử lý các trường hợp đặc biệt và biến thể phổ biến + +| Tình huống | Điều chỉnh đề xuất | +|-----------|-------------------| +| **HTML chứa phông chữ bên ngoài** | Thêm `pdf_options.embed_all_fonts = True` để đảm bảo phông chữ được nhúng trong PDF. | +| **Bạn cần kích thước trang cụ thể** | Đặt `pdf_options.page_width` và `pdf_options.page_height` (ví dụ, A4: `595, 842`). | +| **Các tệp lớn gây lỗi hết bộ nhớ** | Giảm `resource_options.max_handling_depth` hoặc chia HTML thành các đoạn nhỏ hơn và chuyển đổi từng phần riêng biệt. | +| **Bạn muốn bảo vệ PDF bằng mật khẩu** | Sử dụng `pdf_options.password = "YourSecret"` trước khi gọi `save`. | + +Những điều chỉnh này minh họa tính linh hoạt của **html to pdf options** và cho thấy cách bạn có thể tùy chỉnh quá trình chuyển đổi theo yêu cầu chính xác của mình. + +## Đoạn mã đầy đủ bạn có thể sao chép‑dán + +```python +# convert_html_to_pdf.py +# ------------------------------------------------- +# This script demonstrates how to convert an HTML +# file to PDF using GroupDocs.Viewer for Python. +# ------------------------------------------------- + +from groupdocs.viewer import Viewer, PdfSaveOptions, ResourceHandlingOptions + +# ---------- 1. Configure resource handling ---------- +resource_options = ResourceHandlingOptions() +resource_options.max_handling_depth = 3 # limit nested resource processing + +# ---------- 2. Load the HTML document ---------- +html_path = "YOUR_DIRECTORY/large_page.html" +viewer = Viewer(html_path) + +# ---------- 3. Prepare PDF save options ---------- +pdf_options = PdfSaveOptions(resource_handling_options=resource_options) + +# Optional: customize PDF appearance +# pdf_options.embed_all_fonts = True +# pdf_options.page_width = 595 # A4 width in points +# pdf_options.page_height = 842 # A4 height in points + +# ---------- 4. Save HTML as PDF ---------- +output_path = "YOUR_DIRECTORY/output.pdf" +viewer.save(output_path, pdf_options) + +print(f"Conversion complete – PDF saved to: {output_path}") +``` + +Chạy script: + +```bash +python convert_html_to_pdf.py +``` + +Bạn sẽ thấy thông báo xác nhận và tìm thấy `output.pdf` trong thư mục đã chỉ định. + +## Câu hỏi thường gặp + +**Q: Điều này có hoạt động với URL từ xa thay vì tệp cục bộ không?** +A: Có. Gửi chuỗi URL tới `Viewer` (ví dụ, `Viewer("https://example.com/page.html")`). Viewer sẽ tải trang trước khi áp dụng **html to pdf options**. + +**Q: Tôi có thể chuyển đổi nhiều tệp HTML trong một lô không?** +A: Đặt mã chuyển đổi trong một vòng lặp duyệt qua danh sách các đường dẫn tệp. Tái sử dụng cùng các đối tượng `resource_options` và `pdf_options` để tăng hiệu suất. + +**Q: Nếu HTML sử dụng JavaScript để thay đổi DOM thì sao?** +A: GroupDocs.Viewer render HTML tĩnh; nó **không** thực thi JavaScript. Đối với các trang động, hãy render trang trong trình duyệt không giao diện (ví dụ, Selenium) trước, sau đó đưa HTML tĩnh đã tạo vào bộ chuyển đổi. + +## Kết luận + +Bạn giờ đã có một phương pháp hoàn chỉnh, sẵn sàng sản xuất để **convert HTML to PDF** trong Python. Bằng cách cấu hình **resource handling** bạn kiểm soát mức độ sâu tài nguyên liên kết được xử lý, và `PdfSaveOptions` cho phép bạn **save HTML as PDF** với các **html to pdf options** chi tiết. Hãy thử các cài đặt tùy chọn—như nhúng phông chữ hoặc kích thước trang—để đáp ứng nhu cầu chính xác của ứng dụng. + +--- + +*Bước tiếp theo*: khám phá **save HTML document pdf** với bảo vệ mật khẩu, hoặc tích hợp chuyển đổi này vào một API web sử dụng Flask hoặc FastAPI để tạo PDF theo yêu cầu. + +## Bạn Nên Học Gì Tiếp Theo? + +Các tutorial sau đây bao quát các chủ đề liên quan chặt chẽ và xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm mã mẫu hoàn chỉnh với các giải thích từng bước để giúp bạn làm chủ các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Cách Chuyển Đổi HTML Sang PDF Java – Sử Dụng Aspose.HTML cho Java](/html/english/java/conversion-html-to-other-formats/convert-html-to-pdf/) +- [Chuyển Đổi HTML Sang PDF Java – Cấu Hình Môi Trường trong Aspose.HTML](/html/english/java/configuring-environment/) +- [Chuyển Đổi HTML Sang PDF – Thực Thi Yêu Cầu Web trong Aspose.HTML cho Java](/html/english/java/message-handling-networking/web-request-execution/) + +{{< /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/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md b/html/vietnamese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md new file mode 100644 index 000000000..410f5e6d4 --- /dev/null +++ b/html/vietnamese/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/_index.md @@ -0,0 +1,345 @@ +--- +category: general +date: 2026-08-12 +description: Chuyển đổi HTML sang PDF trong Python với Aspose HTML Converter. Tìm + hiểu cách tạo PDF từ HTML và cách chuyển đổi EPUB sang PDF chỉ trong vài dòng mã. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- convert html to pdf +- generate pdf from html +- how to convert epub +- aspose html converter +- epub to pdf python +language: vi +lastmod: 2026-08-12 +og_description: Chuyển đổi HTML sang PDF trong Python bằng Aspose HTML Converter. + Hướng dẫn này cho thấy cách tạo PDF từ HTML và cách chuyển đổi EPUB sang PDF với + mã rõ ràng, có thể chạy được. +og_image_alt: Diagram showing conversion of HTML and EPUB files to PDF using Aspose + HTML Converter +og_title: Chuyển đổi HTML sang PDF trong Python với Aspose HTML Converter – hướng + dẫn nhanh +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + headline: Convert HTML to PDF in Python using Aspose HTML Converter + type: TechArticle +- description: Convert HTML to PDF in Python with Aspose HTML Converter. Learn how + to generate PDF from HTML and how to convert EPUB to PDF in just a few lines of + code. + name: Convert HTML to PDF in Python using Aspose HTML Converter + steps: + - name: Import the Aspose HTML conversion module + text: The `Converter` class lives in the `aspose.html` namespace. Import it at + the top of your script. + - name: Prepare input and output paths + text: Use absolute or relative paths that your script can read/write. It’s good + practice to validate that the source file exists before attempting conversion. + - name: Perform the conversion + text: 'Calling `Converter.convert` does all the heavy lifting: rendering the HTML, + applying CSS, and writing a PDF file.' + - name: Expected output + text: After running the script, `output.pdf` will contain a faithful representation + of `input.html`. Open it with any PDF viewer to verify that fonts, images, and + page breaks match the original web page. + - name: Locate the EPUB source + text: Just like with HTML, provide the path to the EPUB file you want to transform. + - name: Run the conversion + text: The same `Converter.convert` method detects the `.epub` extension and switches + to the e‑book rendering pipeline. + - name: Next steps + text: '* Explore **generate PDF from HTML** with JavaScript‑driven pages by enabling + `Converter.convert` with a headless browser session. * Combine this workflow + with **Aspose.PDF** for post‑processing tasks like merging multiple PDFs or + adding digital signatures. * Check out **aspose-html-converter** adva' + type: HowTo +tags: +- Aspose +- Python +- PDF conversion +title: Chuyển đổi HTML sang PDF trong Python bằng Aspose HTML Converter +url: /vi/python/general/convert-html-to-pdf-in-python-using-aspose-html-converter/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Chuyển đổi HTML sang PDF trong Python bằng Aspose HTML Converter + +Nếu bạn cần **chuyển đổi HTML sang PDF** nhanh chóng, hướng dẫn này sẽ chỉ cho bạn cách thực hiện bằng thư viện Aspose.HTML cho Python. Dù bạn đang xây dựng một dịch vụ web chuyển các trang do người dùng gửi thành PDF có thể in được hay tự động tạo báo cáo, các bước dưới đây cung cấp một giải pháp hoàn chỉnh, sẵn sàng chạy. + +Ngoài HTML, Aspose.HTML còn hỗ trợ các định dạng sách điện tử, vì vậy bạn sẽ thấy **cách chuyển đổi tệp EPUB** sang PDF mà không rời khỏi Python. Khi kết thúc tutorial này, bạn sẽ có thể **tạo PDF từ HTML** và tạo phiên bản PDF của các ebook EPUB chỉ trong vài dòng mã. + +## Yêu cầu trước + +Trước khi bắt đầu, hãy chắc chắn rằng bạn có: + +* Python 3.8 hoặc mới hơn đã được cài đặt. +* Giấy phép Aspose.HTML for Python đang hoạt động (bản dùng thử miễn phí đủ cho việc đánh giá). +* Quyền truy cập `pip` để cài đặt gói `aspose-html`. +* Các tệp HTML hoặc EPUB mẫu mà bạn muốn chuyển đổi. + +```bash +pip install aspose-html +``` + +> **Mẹo chuyên nghiệp:** Cài đặt gói trong một môi trường ảo để giữ các phụ thuộc được cô lập. + +## Tổng quan về quy trình chuyển đổi + +Aspose.HTML cung cấp một lớp `Converter` duy nhất để trừu tượng hoá việc render HTML, CSS và nội dung sách điện tử thành PDF. Quy trình làm việc như sau: + +1. Nhập lớp `Converter`. +2. Gọi `Converter.convert(source_path, target_path)`. +3. (Tùy chọn) Điều chỉnh các thiết lập chuyển đổi như kích thước trang hoặc nhúng phông chữ. + +Thư viện tự động phát hiện định dạng nguồn dựa trên phần mở rộng tệp, vì vậy cùng một phương pháp hoạt động cho cả tệp HTML và EPUB. + +--- + +## Chuyển đổi HTML sang PDF với Aspose HTML Converter + +### Bước 1: Nhập mô-đun chuyển đổi Aspose HTML + +Lớp `Converter` nằm trong không gian tên `aspose.html`. Nhập nó ở đầu script của bạn. + +```python +# Step 1: Import the Aspose.HTML conversion module +from aspose.html import Converter +``` + +### Bước 2: Chuẩn bị đường dẫn đầu vào và đầu ra + +Sử dụng đường dẫn tuyệt đối hoặc tương đối mà script của bạn có thể đọc/ghi. Thực hành tốt là kiểm tra xem tệp nguồn có tồn tại trước khi thực hiện chuyển đổi. + +```python +import os + +# Define your working directory +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# Paths for HTML input and PDF output +html_input = os.path.join(BASE_DIR, "input.html") +pdf_output = os.path.join(BASE_DIR, "output.pdf") + +# Verify that the HTML file is present +if not os.path.isfile(html_input): + raise FileNotFoundError(f"HTML file not found: {html_input}") +``` + +### Bước 3: Thực hiện chuyển đổi + +Gọi `Converter.convert` sẽ thực hiện toàn bộ công việc nặng: render HTML, áp dụng CSS và ghi tệp PDF. + +```python +# Step 3: Convert the HTML file to PDF +Converter.convert(html_input, pdf_output) + +print(f"✅ HTML successfully converted to PDF: {pdf_output}") +``` + +#### Tại sao cách này hoạt động + +* **Công cụ bố cục tự động** – Aspose.HTML sử dụng engine render dựa trên Chromium, đảm bảo CSS hiện đại, SVG và JavaScript được xử lý đúng. +* **Không có tệp trung gian** – Quá trình chuyển đổi diễn ra trong bộ nhớ, giảm tải I/O và tăng tốc xử lý hàng loạt. + +### Đầu ra dự kiến + +Sau khi chạy script, `output.pdf` sẽ chứa một bản sao trung thực của `input.html`. Mở nó bằng bất kỳ trình xem PDF nào để xác nhận rằng phông chữ, hình ảnh và ngắt trang khớp với trang web gốc. + +![Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter](https://example.com/conversion-diagram.png "Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter") + +*(Văn bản thay thế hình ảnh: Diagram showing conversion of HTML and EPUB files to PDF using Aspose HTML Converter)* + +--- + +## Tạo PDF từ HTML với các thiết lập tùy chỉnh + +Đôi khi bạn cần kiểm soát kích thước trang, lề, hoặc nhúng các phông chữ cụ thể. Aspose.HTML cung cấp lớp `PdfSaveOptions` cho mục đích này. + +```python +from aspose.html import Converter, PdfSaveOptions + +options = PdfSaveOptions() +options.page_width = 595 # A4 width in points +options.page_height = 842 # A4 height in points +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(html_input, pdf_output, options) + +print("✅ PDF generated with custom page settings.") +``` + +*Đối tượng `options` là tùy chọn; bỏ qua nếu bạn hài lòng với bố cục mặc định.* + +--- + +## Cách chuyển đổi EPUB sang PDF trong Python + +### Bước 1: Xác định nguồn EPUB + +Giống như với HTML, cung cấp đường dẫn tới tệp EPUB bạn muốn chuyển đổi. + +```python +epub_input = os.path.join(BASE_DIR, "book.epub") +epub_pdf_output = os.path.join(BASE_DIR, "book.pdf") + +if not os.path.isfile(epub_input): + raise FileNotFoundError(f"EPUB file not found: {epub_input}") +``` + +### Bước 2: Thực hiện chuyển đổi + +Phương thức `Converter.convert` sẽ tự động phát hiện phần mở rộng `.epub` và chuyển sang pipeline render sách điện tử. + +```python +# Convert the EPUB ebook to PDF +Converter.convert(epub_input, epub_pdf_output) + +print(f"✅ EPUB successfully converted to PDF: {epub_pdf_output}") +``` + +#### Các trường hợp đặc biệt cần lưu ý + +| Tình huống | Xử lý đề xuất | +|----------------------------------------|----------------------| +| EPUB lớn (hàng trăm chương) | Chuyển đổi theo từng phần bằng cách sử dụng `PdfSaveOptions.start_page` và `end_page` để giới hạn bộ nhớ. | +| Thiếu phông chữ trong EPUB | Đặt `PdfSaveOptions.embed_standard_fonts = True` để fallback về phông chữ hệ thống. | +| EPUB được bảo vệ bằng mật khẩu | Sử dụng `PdfLoadOptions` để cung cấp mật khẩu trước khi chuyển đổi (không được hiển thị ở đây). | + +--- + +## Ví dụ đầy đủ, có thể chạy ngay + +Dưới đây là một script duy nhất kết hợp tất cả các bước ở trên. Lưu lại với tên `convert_demo.py` và chạy từ dòng lệnh. + +```python +""" +convert_demo.py +A complete example that shows how to: +- Convert HTML to PDF +- Generate PDF from HTML with custom page options +- Convert EPUB to PDF +using Aspose.HTML for Python. +""" + +import os +from aspose.html import Converter, PdfSaveOptions + +# ---------------------------------------------------------------------- +# Configuration +# ---------------------------------------------------------------------- +BASE_DIR = os.path.abspath("YOUR_DIRECTORY") + +# HTML conversion paths +HTML_INPUT = os.path.join(BASE_DIR, "input.html") +HTML_PDF_OUTPUT = os.path.join(BASE_DIR, "output.pdf") + +# EPUB conversion paths +EPUB_INPUT = os.path.join(BASE_DIR, "book.epub") +EPUB_PDF_OUTPUT = os.path.join(BASE_DIR, "book.pdf") + +# ---------------------------------------------------------------------- +# Helper: verify that a file exists +# ---------------------------------------------------------------------- +def ensure_file(path: str) -> None: + if not os.path.isfile(path): + raise FileNotFoundError(f"File not found: {path}") + +# ---------------------------------------------------------------------- +# 1️⃣ Convert HTML to PDF (default settings) +# ---------------------------------------------------------------------- +ensure_file(HTML_INPUT) +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT) +print(f"✅ Default HTML → PDF: {HTML_PDF_OUTPUT}") + +# ---------------------------------------------------------------------- +# 2️⃣ Generate PDF from HTML with custom page size +# ---------------------------------------------------------------------- +options = PdfSaveOptions() +options.page_width = 595 # A4 width (points) +options.page_height = 842 # A4 height (points) +options.margin_top = 36 +options.margin_bottom = 36 +options.embed_standard_fonts = True + +Converter.convert(HTML_INPUT, HTML_PDF_OUTPUT, options) +print("✅ HTML → PDF with custom settings completed.") + +# ---------------------------------------------------------------------- +# 3️⃣ Convert EPUB to PDF +# ---------------------------------------------------------------------- +ensure_file(EPUB_INPUT) +Converter.convert(EPUB_INPUT, EPUB_PDF_OUTPUT) +print(f"✅ EPUB → PDF: {EPUB_PDF_OUTPUT}") +``` + +Chạy script: + +```bash +python convert_demo.py +``` + +Bạn sẽ thấy ba thông báo xác nhận và ba tệp PDF trong `YOUR_DIRECTORY`. + +--- + +## Những lỗi thường gặp và cách tránh + +* **Thiếu giấy phép** – Nếu không có giấy phép Aspose.HTML hợp lệ, thư viện sẽ thêm watermark vào mỗi trang. Đăng ký giấy phép ngay trong script: + + ```python + from aspose.html import License + license = License() + license.set_license("Aspose.Total.Python.lic") + ``` + +* **Đường dẫn tương đối trên các hệ điều hành khác nhau** – Sử dụng `os.path.join` và `os.path.abspath` để xây dựng đường dẫn độc lập nền tảng. + +* **HTML lớn có tài nguyên bên ngoài** – Đảm bảo tất cả CSS, hình ảnh và phông chữ có thể truy cập từ hệ thống tệp hoặc nhúng chúng bằng data URI. Nếu không, PDF có thể hiển thị các placeholder trống. + +* **An toàn đa luồng** – `Converter.convert` là thread‑safe, nhưng tạo nhiều converter đồng thời có thể tiêu tốn đáng kể bộ nhớ. Hãy tái sử dụng một instance converter nếu bạn xử lý hàng trăm tệp song song. + +--- + +## Kết luận + +Bạn đã có một phương pháp hoàn chỉnh, sẵn sàng cho môi trường production để **chuyển đổi HTML sang PDF** và **cách chuyển đổi EPUB** sang PDF trong Python bằng **Aspose HTML Converter**. Tutorial đã bao gồm: + +* Nhập module đúng. +* Kiểm tra tính hợp lệ của tệp đầu vào. +* Thực hiện chuyển đổi cơ bản. +* Tùy chỉnh đầu ra PDF bằng `PdfSaveOptions`. +* Xử lý EPUB lớn hoặc được bảo vệ bằng mật khẩu. + +Từ đây, bạn có thể mở rộng giải pháp để xử lý hàng loạt thư mục, tích hợp mã vào endpoint Flask hoặc FastAPI, hoặc thử nghiệm các định dạng đầu ra khác như DOCX hoặc PNG (Aspose.HTML cũng hỗ trợ). + +--- + +### Các bước tiếp theo + +* Khám phá **generate PDF from HTML** cho các trang được điều khiển bằng JavaScript bằng cách bật `Converter.convert` với một phiên bản trình duyệt không giao diện. +* Kết hợp quy trình này với **Aspose.PDF** để thực hiện các tác vụ hậu xử lý như hợp nhất nhiều PDF hoặc thêm chữ ký số. +* Xem các tùy chọn nâng cao của **aspose-html-converter** như `PdfSaveOptions.jpeg_quality` cho các tài liệu nặng hình ảnh. + +Chúc bạn lập trình vui vẻ và tận hưởng độ tin cậy của Aspose.HTML cho mọi nhu cầu chuyển đổi tài liệu của mình! + +## Bạn nên học gì tiếp theo? + +Các tutorial sau đây đề cập đến các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật đã được trình bày trong hướng dẫn này. Mỗi tài nguyên bao gồm các ví dụ mã hoàn chỉnh, hoạt động được với giải thích từng bước để giúp bạn làm chủ các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Convert HTML to PDF with Aspose.HTML – Full Manipulation Guide](/html/english/) +- [Convert EPUB to PDF in .NET with Aspose.HTML](/html/english/net/html-extensions-and-conversions/convert-epub-to-pdf/) + +{{< /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/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md b/html/vietnamese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md new file mode 100644 index 000000000..4f87709ea --- /dev/null +++ b/html/vietnamese/python/general/load-html-from-file-in-python-step-by-step-guide/_index.md @@ -0,0 +1,213 @@ +--- +category: general +date: 2026-08-12 +description: Tải HTML từ tệp trong Python nhanh chóng. Tìm hiểu cách đọc tệp HTML + bằng Python, tải HTML từ URL và tạo htmldocument từ chuỗi trong một hướng dẫn duy + nhất. +draft: false +images: +- PLACEHOLDER_URL/og-image.png +keywords: +- load html from file +- read html file using python +- how to load html in python +- load html from url +- create htmldocument from string +language: vi +lastmod: 2026-08-12 +og_description: Tải HTML từ tệp trong Python bằng lớp HTMLDocument. Tham khảo hướng + dẫn này để đọc tệp HTML bằng Python, tải HTML từ URL và tạo HTMLDocument từ chuỗi + nhằm xử lý nội dung web một cách mạnh mẽ. +og_image_alt: Screenshot of Python code that loads html from file using HTMLDocument +og_title: Tải HTML từ tệp trong Python – hướng dẫn lập trình nhanh +schemas: +- author: Aspose + dateModified: '2026-08-12' + description: Load html from file in Python quickly. Learn how to read html file + using python, load html from url, and create htmldocument from string in a single + tutorial. + headline: Load html from file in Python – step‑by‑step guide + type: TechArticle +tags: +- HTML +- Python +- File I/O +- Web scraping +title: Tải HTML từ tệp trong Python – hướng dẫn từng bước +url: /vi/python/general/load-html-from-file-in-python-step-by-step-guide/ +--- + +{{< blocks/products/pf/main-wrap-class >}} +{{< blocks/products/pf/main-container >}} +{{< blocks/products/pf/tutorial-page-section >}} + +# Tải html từ tệp trong Python – hướng dẫn chi tiết + +Nếu bạn cần **tải html từ tệp trong Python**, hướng dẫn này sẽ chỉ cho bạn cách thực hiện. Bạn cũng sẽ học cách **đọc tệp html bằng python**, tải html từ url, và **tạo htmldocument từ chuỗi** để có thể xử lý bất kỳ nguồn nội dung HTML nào. + +Các ví dụ sử dụng lớp `HTMLDocument` từ gói `html_document`, cung cấp một API thống nhất cho tệp cục bộ, URL từ xa và chuỗi HTML thô. Cách tiếp cận này hoạt động với Python 3.8+ và tích hợp mượt mà với các thư viện chuẩn như `pathlib` và `requests`. + +![Load html from file in Python code screenshot](image.png) + +## Tải html từ tệp trong Python – ví dụ cơ bản + +Tải một tệp HTML từ hệ thống tệp cục bộ là bước đầu tiên phổ biến nhất khi xử lý các trang tĩnh. Hàm khởi tạo `HTMLDocument` nhận một đường dẫn tệp, tự động phát hiện mã hoá của tệp và phân tích cú pháp markup. + +```python +from html_document import HTMLDocument +from pathlib import Path + +# Step 1: Define the path to the HTML file +file_path = Path("YOUR_DIRECTORY/page.html") + +# Step 2: Create an HTMLDocument instance from the file +doc_from_file = HTMLDocument(file_path) + +# Verify that the document was loaded +print("Title:", doc_from_file.title) +``` + +**Tại sao cách này hoạt động:** +* `Path` trừu tượng hoá các dấu phân cách đường dẫn theo hệ điều hành, giúp mã chạy được trên Windows, macOS và Linux. +* `HTMLDocument` đọc tệp ở chế độ nhị phân, phát hiện BOM UTF‑8 hoặc UTF‑16, và sẽ quay lại mã hoá mặc định của hệ thống khi cần. + +**Kết quả mong đợi (giả sử HTML chứa `Example`):** + +``` +Title: Example +``` + +### Những lỗi thường gặp khi tải tệp + +* **FileNotFoundError** – Đảm bảo đường dẫn đúng và tệp tồn tại. Sử dụng `file_path.is_file()` để kiểm tra trước. +* **Lỗi mã hoá** – Nếu trang sử dụng charset không phải UTF‑8, truyền `encoding="iso-8859-1"` vào hàm khởi tạo: `HTMLDocument(file_path, encoding="iso-8859-1")`. + +## Đọc tệp html bằng python – giải thích chi tiết + +Cụm từ **read html file using python** thường xuất hiện khi các nhà phát triển cần trích xuất dữ liệu từ các trang web đã lưu. Mặc dù `HTMLDocument` đã trừu tượng hoá phần lớn công việc, bạn vẫn có thể tải văn bản thô và truyền nó cho bộ phân tích một cách thủ công. + +```python +# Alternative: read the file yourself and pass the string +with open(file_path, "r", encoding="utf-8") as f: + raw_html = f.read() + +doc_from_string = HTMLDocument(raw_html) + +print("Number of

tags:", len(doc_from_string.find_all("p"))) +``` + +**Lý do bạn có thể chọn cách này:** +* Bạn cần tiền xử lý HTML (ví dụ: loại bỏ script) trước khi phân tích. +* Bạn muốn lưu trữ markup thô để tái sử dụng sau mà không cần đọc lại tệp. + +## Tải html từ url – lấy trang từ xa + +Tải HTML trực tiếp từ một địa chỉ web mở rộng quy trình làm việc sang nội dung sống. Bước **load html from url** dựa vào thư viện `requests` để xử lý HTTP và sau đó chuyển văn bản phản hồi cho `HTMLDocument`. + +```python +import requests +from html_document import HTMLDocument + +# Step 1: Request the remote page +response = requests.get("https://example.com", timeout=10) + +# Raise an exception for HTTP errors (4xx, 5xx) +response.raise_for_status() + +# Step 2: Create an HTMLDocument from the response text +doc_from_url = HTMLDocument(response.text) + +print("Page title:", doc_from_url.title) +``` + +**Tại sao cách này hoạt động:** +* `requests.get` tự động theo dõi chuyển hướng và hỗ trợ HTTPS ngay từ đầu. +* `response.raise_for_status()` đảm bảo chỉ những phản hồi thành công mới được phân tích, tránh lỗi im lặng. + +**Các trường hợp đặc biệt:** +* **Mạng chậm** – Điều chỉnh tham số `timeout` hoặc sử dụng `requests.Session` để gộp kết nối. +* **Nội dung không phải HTML** – Kiểm tra header `Content-Type` (`response.headers["Content-Type"]`) trước khi phân tích. + +## Tạo htmldocument từ chuỗi – làm việc với HTML thô + +Đôi khi bạn tạo HTML một cách động (ví dụ: từ một engine mẫu) và cần xử lý nó như một tài liệu mà không ghi ra đĩa. Hoạt động **create htmldocument from string** rất đơn giản. + +```python +from html_document import HTMLDocument + +# Step 1: Define raw HTML content +html_content = """ + + + Inline Demo +

Hello

Generated on the fly.

+ +""" + +# Step 2: Instantiate HTMLDocument directly from the string +doc_from_string = HTMLDocument(html_content) + +print("Header text:", doc_from_string.find("h1").text) +``` + +**Lý do tính năng này hữu ích:** +* Loại bỏ nhu cầu tạo tệp tạm thời, cải thiện hiệu suất trong môi trường serverless. +* Cho phép bạn xác thực markup đã tạo trước khi gửi cho client hoặc lưu trữ. + +**Mẹo xử lý chuỗi:** +* Sử dụng chuỗi ba dấu nháy để giữ markup dễ đọc. +* Nếu HTML chứa ký tự Unicode, hãy chắc chắn tệp nguồn được lưu với mã hoá UTF‑8. + +## Ví dụ toàn diện từ đầu đến cuối + +Kết hợp bốn chiến lược tải lên nhau cho thấy một pipeline linh hoạt có thể chuyển đổi giữa nguồn cục bộ, từ xa và trong bộ nhớ. + +```python +from pathlib import Path +import requests +from html_document import HTMLDocument + +def load_from_file(path_str: str) -> HTMLDocument: + return HTMLDocument(Path(path_str)) + +def load_from_url(url: str) -> HTMLDocument: + resp = requests.get(url, timeout=10) + resp.raise_for_status() + return HTMLDocument(resp.text) + +def load_from_string(html: str) -> HTMLDocument: + return HTMLDocument(html) + +# Example usage +file_doc = load_from_file("samples/local_page.html") +url_doc = load_from_url("https://example.com") +string_doc = load_from_string("

Inline

") + +print("File title:", file_doc.title) +print("URL title:", url_doc.title) +print("String heading:", string_doc.find("h2").text) +``` + +**Điều mã này minh họa:** + +* Một lớp `HTMLDocument` duy nhất xử lý mọi loại đầu vào, giảm diện tích bề mặt API. +* Các hàm trợ giúp bao bọc xử lý lỗi và làm cho mã gọi ngắn gọn hơn. +* Mô hình này mở rộng cho việc xử lý hàng loạt: lặp qua danh sách đường dẫn tệp hoặc URL và đưa mỗi tài liệu vào scraper hoặc transformer. + +## Kết luận + +Bạn giờ đã biết cách **load html from file in Python** bằng lớp `HTMLDocument`, cách **read html file using + +## Bạn nên học gì tiếp theo? + + +Các hướng dẫn sau đây bao gồm các chủ đề liên quan chặt chẽ, xây dựng trên các kỹ thuật được trình bày trong hướng dẫn này. Mỗi tài nguyên đều có mã mẫu hoàn chỉnh với các giải thích từng bước để giúp bạn làm chủ các tính năng API bổ sung và khám phá các cách triển khai thay thế trong dự án của mình. + +- [Load HTML Documents from URL in Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-url/) +- [Load HTML Documents from Stream with Aspose.HTML for Java](/html/english/java/creating-managing-html-documents/load-html-documents-from-stream/) +- [Save HTML Document to File in Aspose.HTML for Java](/html/english/java/saving-html-documents/save-html-to-file/) + +{{< /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