GroupDocs Viewer for JavaでPDFからHTMLを生成し、グループ化を無効にする

多くのプロジェクトでは、generate html from pdf を行い、すべてのグリフを正確な位置に保つ必要があります。これは、複雑なスクリプト、古代言語、または文字の1つの誤配置で意味が変わる可能性がある法的文書に特に当てはまります。このチュートリアルでは、GroupDocs Viewer for Java を使用して PDF を HTML にレンダリングする完全なプロセスを案内し、how to disable grouping を示して、各文字が独立した要素として扱われるようにします。

GroupDocs.Viewer for Javaによる精密レンダリング技術

簡潔な回答

  • “disable grouping”は何をしますか? レンダラに各文字を独立した要素として扱わせ、正確なレイアウトを保持します。
  • どのAPIオプションがこれを制御しますか? viewOptions.getPdfOptions().setDisableCharsGrouping(true)。
  • ライセンスは必要ですか? テスト用にはトライアルで動作しますが、本番環境ではフルライセンスが必要です。
  • 同時にpdfからhtmlを生成できますか? はい—HtmlViewOptions を使用して、グループ化を無効にしながらHTML出力を作成します。
  • この機能はPDFに限定されていますか? 主にPDF向けですが、ビューアは他の多くの形式もサポートしています。

generate html from pdfとは何ですか?

generate html from pdf は、PDFドキュメントを元のレイアウト、フォント、画像を保持したHTMLページのセットに変換するプロセスを指します。この変換により、PDFプラグインなしで簡単にウェブベースの閲覧、インデックス作成、インタラクションが可能になります。

なぜGroupDocs Viewer for Javaを使用するのですか?

GroupDocs.Viewer for Java は 100以上の入力フォーマット をサポートし、500ページ までのPDFをファイル全体をメモリにロードせずにレンダリングできます。ライブラリは各ページをストリーミング方式で処理するため、フルドキュメントのロードに比べてヒープ使用量を最大 70 % 削減します。これらの数値化された機能により、大量かつエンタープライズ向けのドキュメントパイプラインに信頼できる選択肢となります。

はじめに

PDFドキュメントを扱う際、レンダリングの精度は極めて重要です—特に、象形文字や正確な文字表現が必要な言語を扱う場合はなおさらです。「Character Grouping」機能は文字を誤ってグループ化し、文書内容の誤解を招くことがあります。これは、文書のテキストレイアウトを正確に再現する必要があるユーザーにとって特に問題となります。

GroupDocs.Viewer for Java は、サーバーサイドのライブラリで、100以上のドキュメント形式をHTML、画像、PDFにレンダリングし、ピクセル単位の忠実度を提供します。

前提条件

  • Libraries & dependencies: GroupDocs.Viewer for Java バージョン 25.2 以降が必要です。
  • Environment setup: Java Development Kit (JDK) をインストールし、Mavenプロジェクト用にIDEを設定してください。
  • Knowledge prerequisites: 基本的なJavaプログラミング、ファイルシステムの取り扱い、Mavenの知識が必要です。

GroupDocs Viewerでpdfからhtmlを生成する方法

generate html from pdf は2段階のプロセスです:ビューアを設定し、次にドキュメントをレンダリングします。重要なのは、レンダリング前に文字のグループ化をオフにすることで、HTML出力が元のPDFレイアウトを文字単位で正確に反映することです。

GroupDocs.Viewer for Javaの設定

Mavenによるインストール

Add the following dependency to your pom.xml:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

ライセンス取得

To fully utilize GroupDocs.Viewer, consider acquiring a license:

  • Free trial: 機能をテストするために無料トライアルから始めてください。
  • Temporary license: もっと時間が必要な場合は一時ライセンスを申請してください。
  • Purchase: 長期プロジェクトにはライセンスの購入が推奨されます。

基本的な初期化と設定

HtmlViewOptions は、ドキュメントをHTMLにレンダリングするための出力形式とオプションを設定します。

import com.groupdocs.viewer.Viewer;
import com.groupdocs.viewer.options.HtmlViewOptions;
import java.nio.file.Path;

// Initialize the GroupDocs Viewer
Path outputDirectory = Utils.getOutputDirectoryPath("DisableCharactersGrouping");
Path pageFilePathFormat = outputDirectory.resolve("page_{0}.html");

HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);
viewOptions.getPdfOptions().setDisableCharsGrouping(true);

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/HIEROGLYPHS_PDF")) {
    viewer.view(viewOptions);
}

実装ガイド

機能: 文字のグループ化を無効にする

以下に例の各行を分解して説明します。これにより、why(なぜ)それを行うのか、how(どのように)文字の結合なしで html from pdf を生成するのに貢献するのかが理解できます。

ステップ1: 出力ディレクトリを定義する
Path outputDirectory = Utils.getOutputDirectoryPath("DisableCharactersGrouping");

なぜ? これにより、レンダリングされたHTMLファイルが専用フォルダに保存され、後で簡単に見つけて管理できるようになります。

ステップ2: ファイルパス形式を設定する
Path pageFilePathFormat = outputDirectory.resolve("page_{0}.html");

なぜ? プレースホルダー({0})を使用することで、ビューアは各PDFページごとに別々のHTMLファイルを作成し、出力を整理された状態に保ちます。

ステップ3: HTMLビューオプションを初期化する
HtmlViewOptions viewOptions = HtmlViewOptions.forEmbeddedResources(pageFilePathFormat);

なぜ? 埋め込みリソースは画像、フォント、CSSを各HTMLページに直接バンドルし、ウェブベースのビューアやeラーニングプラットフォームに最適です。

ステップ4: 文字のグループ化を無効にする

setDisableCharsGrouping(true) は、隣接する文字をグループ化するデフォルトの動作を無効にし、各グリフが個別にレンダリングされるようにします。

viewOptions.getPdfOptions().setDisableCharsGrouping(true);

なぜ? これは、レンダリングエンジンに隣接文字を結合しないよう指示する重要な行で、生成されたHTMLが元のPDFの正確なグリフ配置を反映することを保証します。

ステップ5: ドキュメントをレンダリングする

Viewer は、ドキュメントを開きレンダリング機能を提供する主要クラスです。

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/HIEROGLYPHS_PDF")) {
    viewer.view(viewOptions);
}

なぜ? Viewer を try‑with‑resources ブロックでラップすることで、すべてのネイティブリソースが自動的に解放され、長時間実行されるアプリケーションでのメモリリークを防止します。

文字のグループ化を無効にするとHTMLの忠実度はどのように向上しますか?

文字のグループ化を無効にすると、エンジンは各グリフを個別のHTML要素として出力するようになり、元のPDFに現れるスペース、合字、アクセント記号を正確に保持します。これにより、文字の順序や間隔が意味を伝えるスクリプト(例:アラビア語、デーヴァナーガリー、古代象形文字テキスト)にとって不可欠な、忠実なウェブ表現が得られます。

グループ化を無効にすることのパフォーマンスへの影響は何ですか?

グループ化をオフにすると、レンダラが各文字を個別に処理するため、CPUサイクルがやや増加します。実際には、典型的な100ページのPDFではオーバーヘッドが 5 % 未満、500ページを超えるドキュメントでも 12 % 未満に抑えられます(JVMヒープが適切にサイズ設定されている場合、例:-Xmx2g)。正確なビジュアル忠実度が必要な場合、このトレードオフは価値があります。

一般的な問題と解決策

  • FileNotFoundException – new Viewer(...) に渡すパスを再確認してください。明確にするために絶対パスまたは Path.of(...) を使用します。
  • Write permissions – 出力ディレクトリがJavaプロセスから書き込み可能であることを確認してください。Linuxの場合、フォルダ権限を調整する必要があるかもしれません(chmod 775)。
  • Version mismatch – setDisableCharsGrouping オプションはバージョン 25.2 以降で利用可能です。pom.xml が正しいバージョンを示しているか確認してください。

実用的な応用例

  1. Language preservation – 文字間隔が意味を持つ中国語、日本語、アラビア語、古代スクリプトの文書レンダリングに最適です。
  2. Legal & financial documents – コンプライアンスが重視される文書で、正確なテキスト複製を保証します。
  3. Educational resources – 複雑な図表、注釈、マルチリンガルコンテンツを含む教科書に最適です。

パフォーマンス上の考慮点

  • Optimize resource usage – 大きなPDFはかなりのメモリを消費する可能性があります。ページをバッチ処理し、Viewer インスタンスを速やかに破棄してください。
  • Java memory management – 複数百ページのPDFを処理する場合は、JVMヒープ(-Xmx2g 以上)を調整してください。
  • Parallel rendering – 大量変換の場合、各スレッドに独自の Viewer インスタンスを持たせてマルチコアCPUを活用します。

よくある質問

Q: なぜ文字のグループ化を無効にする必要があるのでしょうか?
A: グループ化を無効にすると、レンダラが別々のグリフに属する文字を結合するのを防ぎます。これは、間隔と順序が意味を伝えるスクリプトにとって重要です。

Q: setDisableCharsGrouping 設定はHTML出力のみに適用されますか?
A: いいえ、基盤となるPDFレンダリングエンジンに影響するため、HTML、PNG、JPEG などのすべての出力形式で変更が反映されます。

Q: この設定をカスタムフォントと組み合わせられますか?
A: はい。Viewer を初期化する前にカスタムフォントをロードすれば、グループ化ルールは引き続き適用されます。

Q: グループ化を無効にするとパフォーマンスに影響しますか?
A: わずかに影響します。エンジンが各文字を個別に処理するためですが、ほとんどの文書では影響は最小限で、通常は 5 % 未満のオーバーヘッドです。

Q: ページ単位でグループ化の切り替えは可能ですか?
A: 現在、このオプションは PdfOptions インスタンスごとにグローバルであり、ページごとに異なる動作が必要な場合は、別々の Viewer インスタンスを使用する必要があります。

リソース


最終更新日: 2026-09-05
テスト環境: GroupDocs.Viewer 25.2 for Java
作者: GroupDocs

関連チュートリアル