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’)에 맞게 수정하고 다시 검증하며, applied(수행된 수정 작업), unresolved(수정할 수 없었던 문제) 및 passed를 포함한 ConversionReport를 반환합니다. 복사본에서 실행하십시오 — 예를 들어 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())를 내보내고 FDF 및 XFDF (exportFdfFile(), exportXfdfFile(), importFdfFile(), importXfdfFile())에서 AcroForm 필드 값을 가져오고 내보냅니다 — PDF 자체와 별도로 채워진 양식 데이터를 교환하는 데 유용합니다.
팁 및 모범 사례
Document.ConvertToPdfA()을(를) 복사본에서 실행하세요(예:Document.ExtractPages()에서), 변환되지 않은 상태로 저장해야 하는 라이브 문서에서는 절대 실행하지 마세요.ConversionReport.unresolved을(를)passed이(가)true일 때도 더 느슨한 검증 수준을 위해 확인하세요 — 일부 수정 작업은 더 엄격한 수준에서만 완전히 해결됩니다.mode: 'textbox'을(를)DocxOptions에 사용하세요, DOCX 출력이 각 페이지의 정확한 시각적 레이아웃을 유지해야 할 때; 일반 워드 프로세싱 문서처럼 흐르게 해야 할 경우 기본'flow'모드를 사용하세요.- 대용량 문서의 경우 기본 인라인 데이터 URI 대신
MarkdownExportOptions에images: 'external'와imageDir을 전달하여 Markdown 파일 자체를 작게 유지하세요.
일반적인 문제
| 문제 | 원인 | 해결 방법 |
|---|---|---|
ConvertToPdfA()이(가) 여전히 passed: false을 보고합니다 | 모든 ConversionReport.unresolved 목록의 문제가 자동으로 복구될 수 있는 것은 아닙니다 (예: 포함된 글꼴이 없거나 /OutputIntent이 누락된 경우) | 특정 unresolved 규칙을 수동으로 처리한 후, ConvertToPdfA()을 다시 실행하십시오 |
| 실시간 문서가 PDF/A 변환 시도 후 예기치 않게 수정되었습니다 | ConvertToPdfA()이(가) 복사본이 아닌 작업 문서에 직접 호출되었습니다 | 복사본을 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 및 FDF/XFDF 폼 데이터 내보내기.
PDF/A(으)로 변환하면 원본 문서가 수정되나요?
직접 ConvertToPdfA()을(를) 호출할 경우에만 그렇습니다. 복사본에 호출하세요 — 예를 들어 doc.ExtractPages(doc.Pages.map((_, i) => i + 1)) — 원본 문서를 변환되지 않은 상태로 유지하려면.
PDF/A 변환이 실제로 성공했는지 어떻게 알 수 있나요?
ConversionReport.passed을 확인하세요. applied은 변환이 수정한 항목을 나열하고, unresolved은 수정하지 못한 항목을 나열합니다 — passed가 true일 때도 unresolved을 확인하세요.
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 로 내보내기 또는 가져오기 |