Conversion

Conversion

דף זה מתאר רינדור של PDF לפורמטים אחרים והמרת מסמך לכיוון התאמה ל-PDF/A. Document מציג שיטה אחת של To*() לכל פורמט פלט עבור כל המסמך; השיטות זהות קיימות ב-Page כדי לרנדר דף יחיד.


רינדור לפורמטים אחרים של מסמך

Document.ToHtml(), Document.ToDocx() ו-Document.ToMarkdown() מרנדים כל דף; Page.ToSvg() ו-Page.ToImage() מרנדים דף אחד למחרוזת SVG נפרדת או לבייטים של PNG. כל אחד מקבל את האפשרויות שלו — mode על DocxOptions (‘flow’ מחזיר תוכן, ’textbox’ משאיר את הגאומטריה של כל דף) ו-images על MarkdownExportOptions (‘inline’ משלב נתוני תמונה ב-URI, ’external’ כותב קבצים נפרדים ל-imageDir).

const doc = Document.OpenFile('in.pdf');
const svg = doc.Pages[0].ToSvg();               // standalone <svg> string
const png = doc.Pages[0].ToImage({ scale: 2 }); // Uint8Array of PNG bytes @144 DPI
const html = doc.ToHtml();                      // standalone semantic HTML, all pages
const md = doc.ToMarkdown();                    // GFM Markdown, all pages
const docx = doc.ToDocx();                      // .docx bytes, reflowed, images in the package
const fixed = doc.ToDocx({ mode: 'textbox' });  // .docx keeping each page's own geometry

ImageOptions (ל-Page.ToImage()) גם מקבל format, quality, scale, width / height מפורש, ו-background (‘white’ או ’transparent’).


המרה לכיוון PDF/A

Document.ConvertToPdfA() מנסה לתקן מסמך לכיוון PDF/A level (‘b’ או ‘u’) ולבצע אימות מחדש, ומחזיר ConversionReport עם applied (פעולות התיקון שבוצעו), unresolved (בעיות שלא ניתן לתקן), ו-passed. יש להריץ זאת על עותק — למשל אחד שנוצר עם Document.ExtractPages() — כך שהמסמך החי והפעיל לא ישתנה לעולם על ידי ההמרה.

// ExtractPages gives an independent copy; ConvertToPdfA never touches the original.
const copy = doc.ExtractPages(doc.Pages.map((_, i) => i + 1));
const conversion = copy.ConvertToPdfA('2b');

console.log(`applied ${conversion.applied.length} action(s), `
  + `${conversion.unresolved.length} unresolved, `
  + `result: ${conversion.passed ? 'passes' : 'still fails'} PDF/A-2b`);
copy.WriteTo('output-pdfa.pdf');

פורמטים אחרים של יצוא

מעבר ל-HTML, Markdown, DOCX, SVG ו-PNG, הספרייה גם מייצאת TIFF (TiffExportOptions, encodeTiff()) ומייבאת/מייצאת ערכי שדות AcroForm ב-FDF ו-XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile()) — שימושי להחלפת נתוני טפסים ממולאים בנפרד מה-PDF עצמו.


טיפים ושיטות מומלצות

  • הפעל את Document.ConvertToPdfA() על עותק (למשל מ-Document.ExtractPages()), לעולם לא על המסמך החי שעדיין צריך לשמור ללא המרה.
  • בדוק את ConversionReport.unresolved גם כאשר passed הוא true ברמת אימות רפה יותר — חלק מפעולות התיקון נפתרות במלואן רק ברמה קפדנית יותר.
  • השתמש ב-mode: 'textbox' על DocxOptions כאשר פלט ה-DOCX צריך לשמור על הגיאומטריה הוויזואלית המדויקת של כל דף; השתמש במצב ברירת המחדל 'flow' כאשר הוא צריך להתפזר כמו מסמך עיבוד תמלילים רגיל.
  • העבר את images: 'external' ו-imageDir על MarkdownExportOptions עבור מסמכים גדולים, במקום להשתמש ב-URIs של נתונים משולבים כברירת מחדל, כדי לשמור על קובץ ה-Markdown קטן.

בעיות נפוצות

בעיהסיבהתיקון
ConvertToPdfA() עדיין מדווח על passed: falseלא כל הבעיות ברשימות ConversionReport.unresolved ניתנות לתיקון אוטומטי (למשל גופנים מוטמעים חסרים או /OutputIntent חסר)טפל בכללי unresolved הספציפיים ידנית, ואז הפעל מחדש את ConvertToPdfA()
המסמך החי שונה באופן בלתי צפוי לאחר ניסיון המרת PDF/AConvertToPdfA() נקרא ישירות על המסמך הפעיל במקום על עותקהפעל אותו על עותק שנוצר באמצעות Document.ExtractPages()
ייצוא Markdown מייצר קובץ ענק אחדה-images: 'inline' ברירת המחדל משבץ כל תמונה כ-URI של נתוניםהעבר { images: 'external', imageDir: '...' } כדי לכתוב תמונות כקבצים נפרדים
פלט DOCX מאבד את פריסת העמוד המקוריתה-mode: 'flow' ברירת המחדל מארגן מחדש את התוכן כמו מעבד תמליליםהעבר { mode: 'textbox' } כדי לשמור על הגאומטריה של כל עמוד בנפרד

FAQ

לאילו פורמטים ניתן להמיר PDF?

HTML, Markdown ו-DOCX לכל המסמך (Document.ToHtml() / ToMarkdown() / ToDocx()); SVG ו-PNG לעמוד בנפרד (Page.ToSvg() / Page.ToImage()); בנוסף ל-TIFF ולייצוא form-data של FDF/XFDF.

האם המרתו ל-PDF/A משנה את המסמך המקורי שלי?

רק אם אתה קורא ל-ConvertToPdfA() עליו ישירות. קרא לו על עותק — לדוגמה doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — כדי שהמסמך המקורי יישאר ללא המרה.

איך אני יודע אם המרת PDF/A הצליחה באמת?

בדוק את ConversionReport.passed. applied מציג מה ההמרה תקנה, ו-unresolved מציג מה היא לא יכלה — בחן את unresolved גם כאשר passed הוא true.

האם אפשר לייצא רק את ערכי השדות הממולאים בטופס, בלי קובץ ה-PDF עצמו?

כן — exportFdfFile() ו-exportXfdfFile() כותבים את ערכי השדה AcroForm הנוכחיים לקובץ FDF או XFDF נפרד; importFdfFile() / importXfdfFile() קוראים אותם חזרה למסמך.


סיכום API Reference

מחלקה/מתודהתיאור
Document.ToHtml() / Document.ToDocx() / Document.ToMarkdown()המרת כל דף לפורמט מסמך אחר
Page.ToSvg() / Page.ToImage()המרת דף יחיד ל-SVG או PNG
DocxOptions / MarkdownExportOptions / ImageOptionsאפשרויות המרה לפי פורמט
Document.ConvertToPdfA()תקן מסמך לרמת PDF/A ובצע אימות מחדש
ConversionReportתוצאת ההמרה: applied, unresolved, passed
TiffExportOptions / encodeTiff()ייצא ל-TIFF
exportFdfFile() / exportXfdfFile() / importFdfFile() / importXfdfFile()ייצא או ייבא ערכי השדה AcroForm כ־FDF/XFDF

ראה גם

 עברית