0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaでPDFのページサイズを変更する方法

Last updated at Posted at 2023-07-04

PDF文書のページサイズは、文書の体裁や読みやすさに影響します。異なるページサイズは、異なる文書の使用シナリオに適しています。ページサイズを調整することで、文書を特定のシナリオの使用に適したものにするだけでなく、用紙を節約したり、印刷の品質を確保したり、その他の利点を得ることができます。この記事では、無料のFree Spire.PDF for Javaを使用して、プログラムを通じてPDF文書のページサイズを変更する方法を紹介します。
- PDFのページサイズを標準用紙サイズに変更する
- PDFのページサイズをカスタム用紙サイズに変更する

依存関係の追加

Spire.PDF for Javaは、公式サイトから手動でダウンロードしてプロジェクトに導入するか、Mavenで以下のコードを入力してインストールすることが可能です。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

PDFのページサイズを標準用紙サイズに変更する

指定されたページサイズで新しいPDF文書を作成し、元の文書のページを新しい文書のページにコピーし、レイアウトを変更することで、PDFのページサイズを変更することができます。PDF文書のページサイズを指定された標準用紙サイズに変更する手順は次のとおりです。

  • ステップ1
    PdfDocument のオブジェクトを作成し、PdfDocument.loadFromFile() メソッドを使ってPDF文書を読み込みます。
  • ステップ 2
    新しいPDF文書を作成します。
  • ステップ 3
    元の文書内のページをループして、それらに基づいてテンプレートを作成し、指定された標準用紙サイズで新しい文書内に新しいページを作成し、レイアウトの種類を設定し、新しい文書内のページにテンプレートを描画します。
  • ステップ 4
    PdfDocument.saveToFile() メソッドを使って新しい文書を保存します。

コード例

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.PdfLayoutType;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;
import com.spire.pdf.graphics.PdfTextLayout;

import java.awt.geom.Point2D;

public class StandardPaperSize {
    public static void main(String[] args) {
        //PdfDocumentのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDF文書を読み込む
        pdf.loadFromFile("サンプル.pdf");

        //新しいPDF文書を作成する
        PdfDocument newPdf = new PdfDocument();

        //元の文書のページをループする
        for (PdfPageBase page : (Iterable<? extends PdfPageBase>) pdf.getPages()
             ) {
            //新しい文書に、指定したページサイズで新しいページを作成する
            PdfPageBase newPage = newPdf.getPages().add(PdfPageSize.A1, new PdfMargins(0));
            //PdfTextLayoutのオブジェクトを作成する
            PdfTextLayout layout = new PdfTextLayout();
            //レイアウトの種類を設定する
            layout.setLayout(PdfLayoutType.One_Page);
            //元文書のページをもとにテンプレートを作成する
            PdfTemplate template = page.createTemplate();
            //新しい文書のページにテンプレートを描く
            template.draw(newPage, new Point2D.Float(0, 0), layout);
        }

        //結果文書を保存する
        newPdf.saveToFile("標準用紙サイズ.pdf");
        pdf.dispose();
        newPdf.dispose();
    }
}

PDFのページサイズを標準用紙サイズに変更する

PDFのページサイズをカスタム用紙サイズに変更する

PDFのページサイズをカスタム用紙サイズに変更する手順は以下の通りです。

  • ステップ 1
    PdfDocument のオブジェクトを作成し、PdfDocument.loadFromFile() メソッドを使ってPDF文書を読み込みます。
  • ステップ 2
    新しいPDF文書を作成します。
  • ステップ 3
    PdfUnitConvertor.convertUnits() メソッドを使用して、カスタムの幅と高さをインチからポイントに変換します。
  • ステップ 4
    用紙サイズとして使用されている幅と高さに基づいて、Dimension2D のオブジェクトを作成します。
  • ステップ 5
    元の文書内のページをループして、それらに基づいてテンプレートを作成し、指定されたカスタム用紙サイズで新しい文書内に新しいページを作成し、レイアウトの種類を設定し、新しい文書内のページにテンプレートを描画します。
  • ステップ 6
    PdfDocument.saveToFile() メソッドを使って新しい文書を保存します。

コード例

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;

public class CustomPaperSize {
    public static void main(String[] args) {
        //PdfDocumentのオブジェクトを作成する
        PdfDocument pdf = new PdfDocument();

        //PDF文書を読み込む
        pdf.loadFromFile("サンプル.pdf");

        //新しいPDF文書を作成する
        PdfDocument newPdf = new PdfDocument();

        //カスタムの幅と高さをインチからポイントに変換する
        PdfUnitConvertor convertor = new PdfUnitConvertor();
        float width = convertor.convertUnits(7.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
        float height = convertor.convertUnits(9.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);

        //用紙サイズとして使用されている幅と高さに基づいて、Dimension2Dのオブジェクトを作成する
        Dimension2D size = new Dimension();
        size.setSize(width, height);

        //元の文書のページをループする
        for (PdfPageBase page : (Iterable<? extends PdfPageBase>) pdf.getPages()
        ) {
            //新しい文書に、指定したページサイズで新しいページを作成する
            PdfPageBase newPage = newPdf.getPages().add(size, new PdfMargins(0));
            //PdfTextLayoutのオブジェクトを作成する
            PdfTextLayout layout = new PdfTextLayout();
            //レイアウトの種類を設定する
            layout.setLayout(PdfLayoutType.One_Page);
            //元文書のページをもとにテンプレートを作成する
            PdfTemplate template = page.createTemplate();
            //新しい文書のページにテンプレートを描く
            template.draw(newPage, new Point2D.Float(0, 0), layout);
        }

        //結果文書を保存する
        newPdf.saveToFile("カスタム用紙サイズ.pdf");
        pdf.dispose();
        newPdf.dispose();
    }
}

PDFのページサイズをカスタム用紙サイズに変更する

この記事では、Free Spire.PDF for Javaを使ってPDF文書のページサイズを変更する方法について説明します。 このライブラリは、手動でダウンロードしてプロジェクトに追加するか、Maven経由でインストールすることができます。 PDFのページサイズを変更するには、新しい文書を作成し、元の文書のページを新しい文書のページにコピーしてレイアウトを変更します。 ユーザーは、PDFページサイズを標準用紙サイズまたはカスタム用紙サイズに変更することを選択できます。

この記事で説明した以外にも、Free Spire.PDF for Javaは以下のような多くの機能を提供しています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?