ホームページ >バックエンド開発 >Golang >Javaを使用してPDFファイルをHTMLファイルに変換する方法

Javaを使用してPDFファイルをHTMLファイルに変換する方法

PHPz
PHPzオリジナル
2023-04-26 18:00:163387ブラウズ

現代のシナリオでは、PDF ファイルは広く使用されているドキュメント形式です。ただし、Web ページ上でより適切に表示するために、PDF ファイルを HTML 形式に変換する必要がある場合があります。幸いなことに、Java プログラミング言語を使用すると、PDF ファイルを HTML ファイルに変換するのが簡単です。

この記事では、Java プログラミング言語を使用して PDF ファイルを HTML ファイルに変換するプロセスを紹介し、次の内容を取り上げます。

  1. 基本概念と PDF ファイルと HTML ファイルの違い
  2. Java による PDF ファイルから HTML ファイルへの変換に関する基本的な知識
  3. PDFBox ライブラリとその使用法
  4. HTML ファイル生成
  5. プロセス全体の Java 実装
  6. PDF ファイルと HTML ファイルの基本概念と違い

PDF ファイル (Portable Document Format) は、さまざまなプラットフォームでファイルを表示、印刷、共有するための形式です。 PDF ファイルのレイアウトと形式はプラットフォーム間で一貫しているため、PDF ファイルは通常、発行、印刷、電子フォームに使用できます。

HTML ファイル (Hypertext Markup Language) は、Web ページを構築するための標準言語であり、テキスト、画像、リンクなどで構成されています。ブラウザは HTML ファイルを解析し、Web ページにレンダリングできます。

PDF ファイルと HTML ファイルの主な違いは、形式のレイアウトです。 PDF ファイルのレイアウトは固定されていますが、HTML ファイルのレイアウトはブラウザで使用される画面サイズやユーザーの設定に基づいて動的に調整されます。

  1. Java PDF ファイルを HTML ファイルに変換するための基本

Java は、強力な API と大規模なオープン ソース コミュニティを備えた、広く使用されているプログラミング言語です。さまざまなアプリケーション。 PDF ファイルを HTML ファイルに変換するには、Java の PDF ライブラリを使用する必要があります。

PDF ライブラリは PDF ファイルを解析し、編集可能なオブジェクト モデルに変換できます。このようにして、PDF ファイルのサイズ変更、拡張、または変換を行うことができます。 Java で使用される PDF ライブラリには多くのオプションがありますが、この記事では Apache の PDFBox ライブラリを使用します。

  1. 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 ファイルの各ページを個別に処理し、テキストに変換します。

  1. HTML ファイルの生成

HTML は、Web ページの構築に使用される標準マークアップ言語です。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} 変数に変換します。

  1. プロセス全体の Java 実装

必要な手順をすべて紹介したので、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 ファイルの変換中に CSS ファイルを生成します。最後に、このコンテンツすべてを完全な HTML ファイルに書き込みます。

使用例:

java PDFToHTMLConverter.java input.pdf

この例では、PDF ファイルを入力として受け取り、テキストと CSS を含む HTML ファイルを生成します。 ######終わり! PDF ファイルを HTML ファイルに正常に変換しました。

この記事では、Java プログラミング言語を使用して PDF ファイルを HTML ファイルに変換する方法について説明します。 PDF ファイルと HTML ファイルの違いを詳しく調べ、PDFBox ライブラリを紹介し、HTML ファイルを生成するためのサンプル コードを提供しました。読者の皆さんは PDF ファイルを HTML ファイルに変換するスキルを習得し、実際に使用できると思います。

以上がJavaを使用してPDFファイルをHTMLファイルに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。