PDF를 Excel 및 Markdown으로 변환

PDF를 Excel 및 Markdown으로 변환

PDF를 Excel 및 Markdown으로 변환

이 가이드는 PDF를 Excel (.xlsx) 워크북 또는 Markdown으로 변환하는 방법과 두 형식 중 어느 하나에서 PDF를 다시 로드하는 방법을 보여줍니다. Document은 양방향 변환을 수행합니다; ExcelSaveOptions와 MarkdownSaveOptions은 내보내기를 조정하고, ExcelLoadOptions와 MarkdownLoadOptions는 가져오기를 조정합니다. 26.9.0부터.


PDF를 XLSX로

PDF에서 감지된 테이블은 형식이 지정된 셀을 가진 워크시트 그리드로 변환됩니다 — 숫자, 날짜, 불리언, 통화 및 백분율은 텍스트가 아니라 실제 Excel 값으로 기록됩니다 — 그리고 원본 스타일링(글꼴 종류/크기, 텍스트 색상, 셀 채우기, 테두리, 행 높이, 열 너비, 정렬, 병합 셀)이 그대로 유지됩니다. 테이블 셀 내부의 이미지는 그림으로 삽입됩니다.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelSaveOptions;

try (Document doc = new Document("report.pdf")) {
    ExcelSaveOptions options = new ExcelSaveOptions();
    options.setFormat(ExcelSaveOptions.ExcelFormat.XLSX); // default
    options.setMinimizeTheNumberOfWorksheets(true);        // merge pages onto fewer sheets
    options.setInsertBlankColumnAtFirst(false);            // no leading spacer column
    options.setUniformWorksheets(false);                   // allow per-sheet column widths
    options.setStructuralHeuristics(true);                 // recover tables on untagged PDFs
    options.setSuppressRunningHeadersFooters(true);         // drop repeated page furniture
    doc.save("report.xlsx", options);
}

SaveFormat.Xlsx(별칭인 SaveFormat.Excel도 허용됩니다)는 기본 옵션으로 동일한 결과를 제공합니다: doc.save("report.xlsx", SaveFormat.Xlsx). ExcelSaveOptions의 자체 ExcelFormat 열거형은 XmlSpreadSheet2003, CSV, ODS을 Aspose.PDF API 호환성을 위해 허용하지만, 이 라이브러리는 설정된 값에 관계없이 항상 .xlsx 패키지를 기록합니다. 또한 doc.save(OutputStream, ExcelSaveOptions)를 사용하여 스트림에 기록할 수 있습니다.


XLSX를 PDF로, 실시간 양식 포함

.xlsx 워크북을 ExcelLoadOptions를 받는 Document 생성자를 통해 로드합니다. 각 시트는 내보내기 방향과 동일한 셀 형식 및 스타일 지원을 갖는 PDF 테이블로 변환됩니다.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

try (Document doc = new Document("book.xlsx", new ExcelLoadOptions())) {
    doc.save("book.pdf");
}

Setting ExcelLoadOptions.setInteractiveForms(true)은(는) 숫자 및 레이블 셀을 정적 텍스트가 아닌 “실시간” PDF 양식으로 변환합니다: 숫자 셀은 편집 가능한 텍스트 필드가 되고, 수식 셀은 입력값에 따라 재계산되는 읽기 전용 필드가 되며, 레이블 또는 상수 셀은 다른 수식이 참조하지 않는 한 정적 텍스트로 유지됩니다. ExcelFormulaTranslator은 각 수식을 Acrobat JavaScript로 변환합니다; 지원되지 않는 함수가 포함된 수식은 마지막으로 계산된 정적 값으로 대체되어 필드에 올바른 숫자가 표시됩니다. 재계산은 forms/JavaScript 엔진이 있는 뷰어(Adobe Acrobat 또는 Foxit)에서만 실행되며, 해당 엔진이 없는 뷰어는 실시간 재계산 없이 미리 삽입된 값만 표시합니다.

import org.aspose.pdf.Document;
import org.aspose.pdf.ExcelLoadOptions;

ExcelLoadOptions options = new ExcelLoadOptions();
options.setInteractiveForms(true); // cells → fields, formulas → calculate actions

try (Document doc = new Document("invoice.xlsx", options)) {
    doc.save("invoice-live.pdf");
}

PDF를 Markdown으로

Document은(는) PDF를 CommonMark / GitHub-형식의 Markdown으로 변환합니다: 제목, 단락, 목록, 표, 강조(굵게/기울임/취소선), 인라인 및 블록 코드, 링크, 이미지, 그리고 각주.

import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownSaveOptions;

try (Document doc = new Document("article.pdf")) {
    MarkdownSaveOptions options = new MarkdownSaveOptions();
    options.setStructuralHeuristics(true);          // recover headings/lists/tables
    options.setSuppressRunningHeadersFooters(true);  // drop repeated page furniture
    options.setRasterizeVectorGraphics(true);        // charts/shapes -> referenced images
    doc.save("article.md", options);
}

SaveFormat.Markdown은(는) 기본 옵션인 doc.save("article.md", SaveFormat.Markdown)을 사용해 동일한 결과를 제공합니다. Document.markdownText(MarkdownSaveOptions)는 파일을 쓰는 대신 Markdown을 String으로 반환합니다(별도의 “Markdown text” 접근자는 없으며, 메모리 내 결과를 얻기 위해 호출해야 하는 메서드입니다).


Markdown을 PDF로

Document 생성자를 통해 MarkdownLoadOptions을(를) 받아 Markdown 파일을 로드합니다. 손으로 작성한 CommonMark/GFM 부분 파서가 소스를 읽어들여 제목, 단락, 목록, 표, 강조, 코드, 링크, 이미지, 인용 블록 및 각주를 처리합니다. Markdown에 포함된 특수 HTML는 완전히 재현되지 않습니다.

import org.aspose.pdf.Document;
import org.aspose.pdf.MarkdownLoadOptions;

try (Document doc = new Document("README.md", new MarkdownLoadOptions())) {
    doc.save("README.pdf");
}

팁 및 모범 사례

  • 정밀도는 구조적이며, 두 형식 모두 픽셀 단위로 정확하지 않습니다: 변환은 내용, 구조, 이미지 및 페이지 기하학을 보존하지만 정확한 렌더링 모습은 유지하지 않습니다.
  • ExcelSaveOptions.ExcelFormat 그리고 MarkdownSaveOptions 구조 플래그는 오직 output 패키지 형식이나 휴리스틱만 변경합니다 — PDF에 태그된 실제 값이 여전히 표, 헤딩 또는 리스트로 감지되는 방식을 결정합니다.
  • 실시간 XLSX 양식의 경우, 내장된 셀 값을 올바른 대체값으로 간주하세요: 열 때 수식을 다시 계산하는 것은 양식 지원 뷰어만 가능합니다.

일반적인 문제

문제원인수정
XLSX 출력은 ExcelFormat.CSV 또는 ODS를 설정한 후에도 항상 .xlsx 확장자를 가집니다.FOSS 라이터는 항상 OOXML .xlsx 패키지를 직렬화합니다; 다른 ExcelFormat 값은 Aspose.PDF API 호환성을 위해서만 존재합니다.출력은 설정한 ExcelFormat 값에 관계없이 .xlsx 로 취급합니다.
재계산되는 XLSX 양식이 실시간 수식 대신 정적 숫자를 표시합니다.PDF 뷰어에는 forms/JavaScript 엔진이 없습니다.실시간 재계산을 보려면 파일을 Adobe Acrobat 또는 Foxit에서 엽니다.
수식 셀이 오래된 것처럼 보이는 값을 표시합니다.ExcelFormulaTranslator은(는) 해당 수식의 기능을 지원하지 않습니다.이것이 문서화된 폴백이며, 필드는 마지막으로 계산된 정적 값을 유지합니다.

FAQ

파일 대신 String 형태의 Markdown을 받을 수 있나요?

네 — Document.markdownText(MarkdownSaveOptions)을 호출하세요; 파일에 쓰는 대신 Markdown 텍스트를 바로 반환합니다.

XLSX 가져오기 도구가 실제 Excel 수식을 지원하나요?

ExcelLoadOptions.setInteractiveForms(true)가 설정된 경우에만, 그리고 ExcelFormulaTranslator이 Acrobat JavaScript로 변환할 수 있는 함수 집합만 지원됩니다. 그 외의 경우는 소스 워크북에서 마지막으로 계산된 정적 값으로 대체됩니다.


API Reference 요약

클래스/메서드설명
ExcelSaveOptionsPDF를 XLSX로 내보내는 기능을 조정합니다
ExcelLoadOptionsXLSX를 PDF로 가져오는 기능을, 실시간 양식을 포함하여 조정합니다
ExcelFormat대상 스프레드시트 형식은 ExcelSaveOptions에서 허용됩니다
ExcelFormulaTranslator실시간 양식을 위해 Excel 수식을 Acrobat JavaScript으로 변환합니다
MarkdownSaveOptionsPDF를 Markdown으로 내보내는 기능을 조정합니다
MarkdownLoadOptionsMarkdown을 PDF로 가져오는 기능을 조정합니다
Document.save(String, SaveFormat) / `Document.save(String, ExcelSaveOptionsMarkdownSaveOptions)`
Document.markdownText(MarkdownSaveOptions)Markdown을 String로 반환합니다.

참조

 한국어