현대 시나리오에서 PDF 파일은 널리 사용되는 문서 형식입니다. 그러나 웹 페이지에서 더 나은 프레젠테이션을 위해 PDF 파일을 HTML 형식으로 변환해야 하는 경우도 있습니다. 다행히도 Java 프로그래밍 언어를 사용하면 PDF 파일을 HTML 파일로 쉽게 변환할 수 있습니다.
이 기사에서는 Java 프로그래밍 언어를 사용하여 PDF 파일을 HTML 파일로 변환하는 프로세스를 소개하며 다음 내용을 다룹니다.
PDF 파일(Portable Document Format)은 일종의 형식입니다. 다양한 플랫폼에서 사용할 수 있는 파일 보기, 인쇄 및 공유를 위한 형식입니다. PDF 파일의 레이아웃과 형식은 플랫폼 전반에서 일관되므로 PDF 파일은 일반적으로 출판, 인쇄 및 전자 양식에 사용할 수 있습니다.
HTML 파일(Hypertext Markup Language)은 웹 페이지를 구축하기 위한 표준 언어입니다. HTML 파일은 텍스트, 이미지, 링크 등으로 구성됩니다. 브라우저는 HTML 파일을 구문 분석하여 웹 페이지로 렌더링할 수 있습니다.
PDF 파일과 HTML 파일의 주요 차이점은 형식 레이아웃입니다. PDF 파일의 레이아웃은 고정되어 있는 반면, HTML 파일의 레이아웃은 브라우저에서 사용되는 화면 크기와 사용자 기본 설정에 따라 동적으로 조정됩니다.
Java는 다양한 애플리케이션을 구축하는 데 사용할 수 있는 강력한 API와 대규모 오픈 소스 커뮤니티를 갖춘 널리 사용되는 프로그래밍 언어입니다. PDF 파일을 HTML 파일로 변환하려면 Java의 PDF 라이브러리를 사용해야 합니다.
PDF 라이브러리는 PDF 파일을 구문 분석하고 편집 가능한 개체 모델로 변환할 수 있습니다. 이러한 방식으로 PDF 파일의 크기를 조정하거나 향상하거나 변환할 수 있습니다. Java에서 사용되는 PDF 라이브러리에는 다양한 옵션이 있지만 이 기사에서는 Apache의 PDFBox 라이브러리를 사용합니다.
PDFBox는 PDF 파일을 처리하는 데 사용할 수 있는 Apache Software Foundation의 오픈 소스 Java 라이브러리입니다. PDF 파일 구문 분석, 생성 및 편집을 포함한 많은 기능을 제공합니다.
이 예에서는 PDFBox 버전 2.x를 사용합니다. PDFBox 2.x 종속성에는 Java 1.8 이상이 필요합니다.
PDFBox 라이브러리를 사용하기 위해 빌드 도구에 다음 Maven 종속성을 추가할 수 있습니다.
<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <version>2.0.21</version> </dependency> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox-tools</artifactId> <version>2.0.21</version> </dependency>
선택한 버전에서 필요한 모든 종속성을 다운로드한 후 PDFBox 라이브러리를 사용하여 PDF 파일을 처리할 수 있습니다. 다음 단계는 PDF 파일의 각 페이지를 개별적으로 처리하여 텍스트로 변환하는 것입니다.
HTML은 웹 페이지를 구축하는 데 사용되는 표준 마크업 언어이며 HTML 코드와 외부 CSS 및 JavaScript 파일로 구성됩니다. 이 예에서는 Java 코드를 사용하여 완전한 HTML 파일을 생성합니다.
우리는 Freemarker 템플릿 엔진을 사용하여 HTML 코드에 동적 콘텐츠를 도입합니다. Freemarker는 템플릿과 데이터를 결합하여 최종 HTML 파일을 생성하는 널리 사용되는 템플릿 엔진입니다. HTML 템플릿은 다음과 같습니다.
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>${title}</title> <style> ${css} </style> </head> <body> <div class="content"> ${content} </div> </body> <script> ${javascript} </script> </html>
이 템플릿을 사용하면 PDF 페이지의 모든 텍스트 내용을 ${content}
변수에 넣을 수 있고 스타일시트와 스크립트 코드를 ${ css}
및 ${javascript}
변수. ${content}
变量中,并将样式表和脚本代码放入 ${css}
和 ${javascript}
变量中。
现在我们已经介绍了所有必要的步骤,可以开始编写转换 PDF 文件的 Java 代码了。
import java.io.File; import java.io.IOException; import java.io.StringWriter; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.text.PDFTextStripper; import org.apache.pdfbox.tools.PDFToHTML; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; public class PDFToHTMLConverter { private static final String TEMPLATE_FILE = "src/main/resources/template.html"; private static final String OUTPUT_DIRECTORY = "./out/"; public static void main(String[] args) throws IOException, TemplateException { String sourcePdf = args[0]; File file = new File(sourcePdf); PDDocument document = PDDocument.load(file); PDFTextStripper pdfStripper = new PDFTextStripper(); int startPage = 1; int endPage = document.getNumberOfPages(); pdfStripper.setStartPage(startPage); pdfStripper.setEndPage(endPage); StringWriter writer = new StringWriter(); pdfStripper.writeText(document, writer); Configuration freemarkerCfg = new Configuration(Configuration.VERSION_2_3_28); freemarkerCfg.setDirectoryForTemplateLoading(new File("")); Template template = freemarkerCfg.getTemplate(TEMPLATE_FILE); String title = file.getName().replace(".pdf", ""); String content = writer.toString(); StringWriter cssWriter = new StringWriter(); PDFToHTML pdfToHtml = new PDFToHTML(); pdfToHtml.startConversion(document, cssWriter); String css = cssWriter.toString(); String javascript = ""; File outputDirectory = new File(OUTPUT_DIRECTORY); outputDirectory.mkdirs(); String htmlFileName = title + ".html"; File htmlFile = new File(outputDirectory, htmlFileName); StringWriter writerHtml = new StringWriter(); template.process( ImmutableMap.of("title", title, "content", content, "css", css, "javascript", javascript), writerHtml ); FileUtils.write(htmlFile, writerHtml.toString(), StandardCharsets.UTF_8); document.close(); } }
在这段代码中,我们首先使用 PDFBox 库的 PDDocument
类加载 PDF 文件。然后,我们使用 PDFBox 库的 PDFTextStripper
类从 PDF 文件中提取文本内容。
接下来,我们使用 Freemarker 模板引擎从 HTML 模板中生成 HTML 文件。我们还使用 PDFBox 库的 PDFToHTML
이제 필요한 모든 단계를 소개했으므로 PDF 파일을 변환하는 Java 코드 작성을 시작할 수 있습니다.
java PDFToHTMLConverter.java input.pdf
이 코드에서는 먼저 PDFBox 라이브러리의 PDDocument
클래스를 사용하여 PDF 파일을 로드합니다. 그런 다음 PDFBox 라이브러리의 PDFTextStripper
클래스를 사용하여 PDF 파일에서 텍스트 내용을 추출합니다.
다음으로 Freemarker 템플릿 엔진을 사용하여 HTML 템플릿에서 HTML 파일을 생성합니다. 또한 PDFBox 라이브러리의 PDFToHTML
클래스를 사용하여 PDF 파일을 변환하는 동안 CSS 파일을 생성합니다. 마지막으로 이 모든 콘텐츠를 완전한 HTML 파일에 작성합니다.
위 내용은 Java를 사용하여 PDF 파일을 HTML 파일로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!