チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
適切な背景を使用することで、PDF 文書内の異なるコンテンツ要素がより一致し、PDF 文書の視覚的印象や読みやすさが向上します。さらに、異なる使用シナリオに応じて PDF 文書に異なる背景を追加することで、文書の専門性も高めることができます。この記事では、Spire.PDF for Java を使用して PDF ドキュメントの背景色と背景画像を設定する方法を紹介します。
まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>9.6.2</version>
</dependency>
</dependencies>
PDF の背景を設定するには、各ページを処理する必要があります。PDF 内のすべてのページをループし、PdfPageBase.setBackgroundColor() メソッドを使用して各ページの背景色を設定することができます。以下が詳細な手順です。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import java.awt.*;
public class SetPDFBackgroundColor {
public static void main(String[] args) {
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルをロードする
pdf.loadFromFile("sample.pdf");
//PDFのページをループする
for(int i = pdf.getPages().getCount()-1; i>=0; i--)
{
PdfPageBase page = pdf.getPages().get(i);
//ページの背景色を設定する
page.setBackgroundColor(Color.PINK);
//背景の透明度を設定する
page.setBackgroudOpacity(0.2f);
}
//PDFファイルを保存する
pdf.saveToFile("BackgroundColor.pdf");
pdf.dispose();
}
}
Spire.PDF for Java は、PdfPageBase.setBackgroundImage() メソッドを提供し、PDF ページに背景画像を設定することができます。PDF 文書に背景画像を追加するための詳細な手順は以下の通りです。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class SetPDFBackgroundColor {
public static void main(String[] args) throws IOException {
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルをロードする
pdf.loadFromFile("sample.pdf");
//画像をロードする
BufferedImage background = ImageIO.read(new File("background.jpg"));
//PDFのページをループする
for(int i = pdf.getPages().getCount()-1; i>=0; i--)
{
PdfPageBase page = pdf.getPages().get(i);
//ロードされた画像をページの背景画像に設定する
page.setBackgroundImage(background);
//背景の透明度を設定する
page.setBackgroudOpacity(0.4f);
}
//PDFファイルを保存する
pdf.saveToFile("BackgroundImage.pdf);
pdf.dispose();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
余白とは、PDF ドキュメントのページの周りにある空白部分のことです。 ページの内容をより多く表示するためにドキュメントの余白を増やしたり、ページの内容をよりコンパクトに見せるためにドキュメントの余白を減らしたりすることができます。 この記事では、Spire.PDF for Java を使用してプログラムで PDF ドキュメントの余白を調整する方法を紹介します。
まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>8.11.8</version>
</dependency>
</dependencies>
より大きなページを持つ PDF ドキュメントを作成し、元の PDF ドキュメントのページを新しいドキュメントページに描画することで、PDF ドキュメントの余白を拡大することができます。 以下、詳しい手順を説明します。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class enlargePDFMargins {
public static void main(String[] args) {
//PdfDocumentのオブジェクトを作成する
PdfDocument originalPdf = new PdfDocument();
//既存のPDFドキュメントを読み込む
originalPdf.loadFromFile("C:/クライアント向け通話サンプル.pdf");
//ドキュメントの最初のページを取得する
PdfPageBase firstPage = originalPdf.getPages().get(0);
//PdfDocumentの別のオブジェクトを作成する
PdfDocument newPdf = new PdfDocument();
//追加する余白の値を設定する
PdfMargins margins = newPdf.getPageSettings().getMargins();
margins.setTop(40);
margins.setBottom(40);
margins.setLeft(40);
margins.setRight(40);
//新規PDFドキュメントのページサイズを設定する
Dimension2D dimension2D = new Dimension();
dimension2D.setSize(firstPage.getSize().getWidth() + margins.getLeft() + margins.getRight(), firstPage.getSize().getHeight() + margins.getTop() + margins.getBottom());
//元のPDFドキュメント内の全ページをループする
for (int i = 0; i < originalPdf.getPages().getCount(); i++) {
//元のドキュメントのページをもとに、テンプレートを作成する
PdfTemplate template = originalPdf.getPages().get(i).createTemplate();
//新しいPDFドキュメントに新しいページを追加する
PdfPageBase page = newPdf.getPages().add(dimension2D);
//追加されたページでテンプレートを描画する
template.draw(page.getCanvas(), new Point2D.Float(0, 0));
}
//新しいPDFドキュメントを保存する
newPdf.saveToFile("マージンの拡大.pdf", FileFormat.PDF);
}
}
同様の方法で、PDF ドキュメントの余白を減らすには、まずページを小さくしたPDF ドキュメントを作成する必要があります。 次に、指定した座標から新しい PDF ドキュメントのページに元の PDF ドキュメントのページを描画します。 詳しい操作手順は以下の通りです。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfMargins;
import com.spire.pdf.graphics.PdfTemplate;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Point2D;
public class reducePDFMargins {
public static void main(String[] args) {
//PdfDocumentのオブジェクトを作成する
PdfDocument originalPdf = new PdfDocument();
//既存のPDFドキュメントを読み込む
originalPdf.loadFromFile("C:/クライアント向け通話サンプル.pdf");
//ドキュメントの最初のページを取得する
PdfPageBase firstPage = originalPdf.getPages().get(0);
//PdfDocumentの別のオブジェクトを作成する
PdfDocument newPdf = new PdfDocument();
//縮小する余白の値を設定する
double left = -20;
double right = -20;
double top = -20;
double bottom = -20;
//新規PDFドキュメントのページサイズを設定する
Dimension2D dimension2D = new Dimension();
dimension2D.setSize(originalPdf.getPages().get(0).getSize().getWidth() + left + right, originalPdf.getPages().get(0).getSize().getHeight() + top + bottom);
//元のPDFドキュメント内の全ページをループする
for (int i = 0; i < originalPdf.getPages().getCount(); i++) {
//元のドキュメントのページをもとに、テンプレートを作成する
PdfTemplate template = originalPdf.getPages().get(i).createTemplate();
//新しいPDFドキュメントにページを追加する
PdfPageBase page = newPdf.getPages().add(dimension2D, new PdfMargins(0));
//追加されたページでテンプレートを描画する
template.draw(page.getCanvas(), new Point2D.Float((float) left, (float) top));
}
//新しいPDFドキュメントを保存する
newPdf.saveToFile("余白の削減.pdf", FileFormat.PDF);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF の1ページの内容を分離して表示、分離印刷などの操作を行う必要がある場合、内容の再編集が面倒になることがあります。 このような場合、1つのページを直接複数のページに分割することで、表示や印刷などの操作を容易にすることができます。 今回は、Spire.PDF for Java を使用して、PDF ドキュメントのページを分割する方法を紹介します。
まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>9.3.11</version>
</dependency>
</dependencies>
Spire.PDF for Java では、PDF ページの内容を新しい PDF ページに描画するための PdfPageBase.createTemplate().draw() メソッドを提供しています。 このメソッドを使って、元のページの内容を複数ページに分けて描画することで、PDF ページを分割する目的を達成することができます。 以下は、PDF ページを3ページに分割する、詳細な操作手順です。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.geom.Point2D;
public class splitPDFPage {
public static void main(String[] args) {
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("C:/4月.pdf");
//PDFドキュメントの最初のページを取得する
PdfPageBase page = pdf.getPages().get(0);
//新規にPDFドキュメントを作成し、余白を削除する
PdfDocument newPdf = new PdfDocument();
newPdf.getPageSettings().getMargins().setAll(0);
//水平分割
newPdf.getPageSettings().setWidth((float) page.getSize().getWidth());
newPdf.getPageSettings().setHeight((float) page.getSize().getHeight()/3);
//垂直分割
//newPdf.getPageSettings().setWidth((float) page.getSize().getWidth()/2);
//newPdf.getPageSettings().setHeight((float) page.getSize().getHeight());
//新規作成したPDFドキュメントにページを追加する
PdfPageBase newPage = newPdf.getPages().add();
//PdfLayoutTypeの設定をPaginateにすることで、コンテンツが自動的にページングされるようになる
PdfTextLayout layout = new PdfTextLayout();
layout.setBreak(PdfLayoutBreakType.Fit_Page);
layout.setLayout(PdfLayoutType.Paginate);
//元のページの内容を新しいドキュメントページにプロットする
page.createTemplate().draw(newPage, new Point2D.Float(0, 0), layout);
//ドキュメントを保存する
newPdf.saveToFile("PDFページの分割.pdf");
newPdf.close();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
スキャンした PDF ドキュメントは、間違ったページの向き(逆さまなど)で作成されることがあり、読むのに非常に不便なことがあります。 PDF のページを回転させることで、ドキュメントページの向きを揃え、読書体験を最適化することができます。 この記事では、Spire.PDF for Java を使用して、プログラムで PDF ドキュメントのページを回転させる方法を説明します。
まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>9.3.11</version>
</dependency>
</dependencies>
PDF のページを回転させる場合、回転角度は90度刻みとなります。 回転角度は、0度、90度、180度、270度のいずれかに設定することができます。 以下は、指定した PDF ページを回転させるための詳細な手順です。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageRotateAngle;
public class rotatePDFPage {
public static void main(String []args){
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("C:/予算の概要.pdf");
//ドキュメントの2ページ目を取得する
PdfPageBase page = pdf.getPages().get(1);
//ページの元の回転角度を取得する
int rotation = page.getRotation().getValue();
//元の回転角度から時計回りに180度ページを回転させる
rotation += PdfPageRotateAngle.Rotate_Angle_180.getValue();
page.setRotation(PdfPageRotateAngle.fromValue(rotation));
//ドキュメントを保存する
pdf.saveToFile("ページの回転.pdf");
}
}
以下は、PDF ドキュメント内の全ページを回転させる手順です。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageRotateAngle;
public class rotateAllPDFPages {
public static void main(String []args){
//PdfDocumentのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("C:/予算の概要.pdf");
//ドキュメント内のページをループする
for(int i = 0; i < pdf.getPages().getCount(); i++) {
//ページを取得する
PdfPageBase page = pdf.getPages().get(i);
//ページの元の回転角度を取得する
int rotation = page.getRotation().getValue();
//元の回転角度から時計回りに180度ページを回転させる
rotation += PdfPageRotateAngle.Rotate_Angle_180.getValue();
page.setRotation(PdfPageRotateAngle.fromValue(rotation));
}
//ドキュメントを保存する
pdf.saveToFile("すべてのページを回転.pdf");
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
ページ数の多い PDF ファイルを読むとき、ページ番号をつけると、読む位置がわかりやすくなります。さらに、ページ番号は、印刷時にページが正しい順序で出力されているかどうかを判断する際にも役立ちます。今回は、Spire.PDF for Java を使用して、既存の PDF ドキュメントにページ番号を追加する方法を紹介します。
まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>9.3.11</version>
</dependency>
</dependencies>
ダイナミック フィールド PdfPageNumberField、PdfPageCountField、PdfCompositeField を使用すると、PDF ドキュメントにページ番号を追加することができます。
PdfPageNumberField はページ番号の表示に、PdfPageCountField は総ページ数の表示に、PdfCompositeField は PdfPageNumberField や PdfPageCountField などの2つ以上の動的フィールドを1つのフィールドに結合するために使用されるものです。
PDF ドキュメントに1、2、3のようなページ番号を追加したいだけなら、PdfPageNumberField を使用すればよいでしょう。ページ X/Y のようなページ番号をドキュメントに追加したい場合は、PdfPageNumberField、PdfPageCountField、PdfCompositeField を使用する必要があります。
既存の PDF ドキュメントに「X/Y」のページ番号を追加する方法を説明します。
import com.spire.pdf.*;
import com.spire.pdf.automaticfields.PdfCompositeField;
import com.spire.pdf.automaticfields.PdfPageCountField;
import com.spire.pdf.automaticfields.PdfPageNumberField;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class addPageNumberToPDF {
public static void main(String[] args) {
//PdfDocumentのインスタンスを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("C:/英語の問題.pdf");
//PdfTrueTypeFontインスタンスを作成する
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Gothic UI", Font.PLAIN, 10));
//PdfPageNumberFieldのインスタンスを作成する
PdfPageNumberField pageNumberField = new PdfPageNumberField(font, PdfBrushes.getBlack());
//PdfPageCountFieldのインスタンスを作成する
PdfPageCountField pageCountField = new PdfPageCountField(font, PdfBrushes.getBlack());
//PdfCompositeFieldのインスタンスを作成し、ファイルされたページ番号とページ数のフィールドを複合フィールドに追加する
PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.getBlack(), "{0} / {1}", pageNumberField, pageCountField);
//複合フィールドの文字書式を設定する
compositeField.setStringFormat(new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top));
//ページをループする
for(int i = 0; i < pdf.getPages().getCount();i ++)
{
PdfPageBase page = pdf.getPages().get(i);
float x = (float) page.getSize().getWidth()/2 - 20;
float y = (float)page.getSize().getHeight() - pdf.getPageSettings().getMargins().getBottom();
//各ページに複合フィールドを描画する
compositeField.draw(page.getCanvas(), x, y);
}
//ドキュメントを保存する
pdf.saveToFile("ページ番号の追加.pdf");
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
何らかの理由で PDF のページサイズを変更する必要がある場合があります。たとえば、印刷するファイルのページサイズとプリンタで使用する用紙サイズが異なります。この記事では、Spire.PDF for Java を使用して PDF ページサイズを変更する方法を紹介します。
まず、Spire.PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>8.11.8</version>
</dependency>
</dependencies>
PDF ファイルのページサイズを変更する方法は、新しい PDF ファイルを作成し、必要なサイズのページを追加することです。次に、元の PDF ファイルのページに基づいてテンプレートを作成し、新しい PDF ファイルのページにテンプレートを描画します。この方法では、元の PDF ファイルのテキスト、画像、その他の要素が保持されます。
Spire.PDF for Java は、letter、legal、A0、A1、A2、A3、A4、B0、B1、B2、B3、B4 など、さまざまな標準用紙サイズをサポートしています。以下に詳細な操作手順を示します。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import java.awt.geom.Point2D;
public class ChangePageSizeToStandardPaperSize {
public static void main(String []args){
//PdfDocumentインスタンスを初期化する
PdfDocument originPdf = new PdfDocument();
originPdf.loadFromFile("Sample.pdf");
//新しいPDFドキュメントを作成する
PdfDocument newPdf = new PdfDocument();
//元のPDFのページをループする
for(int i = 0; i< originPdf.getPages().getCount(); i++)
{
//A 1サイズのページを新しいPDFに追加する
PdfPageBase newPage = newPdf.getPages().add(PdfPageSize.A1, new PdfMargins((0)));
//PdfTextLayoutインスタンスを作成する
PdfTextLayout layout = new PdfTextLayout();
//テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.setLayout(PdfLayoutType.One_Page);
//元のPDFのページに基づいてテンプレートを作成する
PdfTemplate template = originPdf.getPages().get(i).createTemplate();
//テンプレートを新しいPDFのページに描画する
template.draw(newPage, new Point2D.Float(0,0), layout);
}
//結果文書を保存する
newPdf.saveToFile("ChangePageSizeToA1.pdf");
}
}
Spire.PDF for Java は、測定単位としてポイント(1/72インチ)を使用します。PDF のページサイズをインチやミリメートルなどの他の単位のカスタム用紙サイズに変更する必要がある場合は、PdfUnitConvertor クラスを使用してポイントに変換できます。
以下に詳細な操作手順を示します。
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 ChangePageSizeToCustomPaperSize {
public static void main(String []args){
//PdfDocumentインスタンスを初期化する
PdfDocument originPdf = new PdfDocument();
originPdf.loadFromFile("Sample.pdf");
//新しいPDFドキュメントを作成する
PdfDocument newPdf = new PdfDocument();
//PdfUnitConvertorインスタンスを作成する
PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
//カスタムサイズ(インチ)をポイントに変換する
float width = unitCvtr.convertUnits(6.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
float height = unitCvtr.convertUnits(8.5f, PdfGraphicsUnit.Inch, PdfGraphicsUnit.Point);
//カスタムサイズからDimension 2 Dインスタンスを作成し、新しいPDFのページサイズとして使用する
Dimension2D size = new Dimension();
size.setSize(width, height);
//元のPDFのページをループする
for(int i = 0; i< originPdf.getPages().getCount(); i++)
{
//新しいPDFにカスタムサイズ(6.5*8.5インチ)のページを追加する
PdfPageBase newPage = newPdf.getPages().add(size, new PdfMargins((0)));
//PdfTextLayoutインスタンスを初期化する
PdfTextLayout layout = new PdfTextLayout();
//テキストレイアウトを1ページに設定する(設定されていない場合、コンテンツはページサイズに合わせてスケールできません)
layout.setLayout(PdfLayoutType.One_Page);
//元のPDFのページに基づいてテンプレートを作成する
PdfTemplate template = originPdf.getPages().get(i).createTemplate();
//テンプレートを新しいPDFのページに描画する
template.draw(newPage, new Point2D.Float(0,0), layout);
}
//結果文書を保存する
newPdf.saveToFile("ChangePageSizeToCustomSize.pdf");
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF ドキュメントを印刷または共有する場合、ドキュメント内に白紙ページがあるかどうかを確認した方がよいでしょう。なぜなら、白紙ページは紙の無駄遣いにつながり、ドキュメントの専門的な外観が損なわれてしまうからです。しかし、すべてのページに目を通して空白のページを見つけ、それを削除するには、多くの時間がかかるでしょう。この問題に対処するためのより良い方法は、Spire.PDF for Java を使用することです。この記事では、プログラミングによって簡単に PDF ドキュメントから空白ページを見つけ、削除するために Spire.PDF for Java を使用する方法を示しています。
まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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>8.9.1</version>
</dependency>
</dependencies>
Spire.PDF for Java は、PDF ページが完全に白紙であるかどうかを検出するメソッド PdfPageBase.isBlank() を提供しています。しかし、空白に見えるいくつかのページが実際に白い画像を含んでいる、これらのページは PdfPageBase.isBlank() メソッドを使用して空白とみなされないでしょう。したがって、白紙ページと白い画像を含むページを検出するために、 PdfPageBase.isBlank() メソッドと組み合わせて使用するカスタムメソッド isBlankImage() を作成する必要があります。
注意:この解決策は、PDF ページを画像に変換し、画像が空白であるかどうかを検出します。変換された画像の評価メッセージを削除するには、ライセンスを適用する必要があります。そうでなければ、この方法は正しく動作しません。もしライセンスをお持ちでない場合は、このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。でご連絡いただき、評価用の一時的なライセンスをお受け取りください。
詳細な手順は以下の通りです。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImageType;
import java.awt.*;
import java.awt.image.BufferedImage;
public class removeBlankPages {
public static void main(String []args){
//PdfDocument クラスのインスタンスを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("C:/Sample.pdf");
BufferedImage image;
//PDF内のページをループする
for(int i = pdf.getPages().getCount()-1; i>=0; i--)
{
//ページを取得する
PdfPageBase page = pdf.getPages().get(i);
//ページが空白かどうかを検出する
if(page.isBlank())
{
//白紙ページを削除する
pdf.getPages().remove(page);
}
else
{
//PDFのページを画像として保存する
image = pdf.saveAsImage(i, PdfImageType.Bitmap);
//変換後の画像が空白かどうかを検出する
if (isBlankImage(image))
{
//白紙画像に対応するページを削除する
pdf.getPages().remove(page);
}
}
}
//結果のドキュメントを保存する
pdf.saveToFile("空白ページの削除.pdf");
}
//画像が空白かどうかを検出する
public static boolean isBlankImage(BufferedImage image)
{
BufferedImage bufferedImage = image;
Color pixel;
for (int i = 0; i < bufferedImage.getWidth(); i++)
{
for (int j = 0; j < bufferedImage.getHeight(); j++)
{
pixel = new Color(bufferedImage.getRGB(i, j));
if (pixel.getRed() < 240 || pixel.getGreen() < 240 || pixel.getBlue() < 240)
{
return false;
}
}
}
return true;
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
ページの順序が正しくない PDF ファイルを受け取った場合、より良い閲覧体験を得るために、時にはページの順序をある程度変更する必要があります。この記事では、Spire.PDF for Java を使用して PDF ファイルのページをプログラムで再配置する方法をご紹介いたします。
まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。
<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.2.3</version>
</dependency>
</dependencies>
Spire.PDF for Java が提供する PdfDocument.getPages().reArrange() メソッドを使用すると、PDF ページの順序をすばやく簡単に変更できます。詳細な手順は次のとおりです。
import com.spire.pdf.PdfDocument;
public class RearrangePages {
public static void main(String[] args) {
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//サンプルPDFファイルをロードする
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");
//新しいページの順序を設定してページを並べ替える
doc.getPages().reArrange(new int[]{1, 0});
//ドキュメントを別のファイルに保存する
doc.saveToFile("ChangeOrder.pdf");
doc.close();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。