チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
PDF ドキュメントに四角形、楕円、線などの図形を描画することで、ドキュメントの視覚的効果を高め、重要なポイントを強調することができます。レポートやプレゼンテーション、論文を作成する際、文章だけでは表現が難しい概念やデータの関係性を図形で補足すると、情報をより明確に伝えられます。本記事では、Java で 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>10.10.7</version>
</dependency>
</dependencies>
Spire.PDF for Java では、PdfPageBase.getCanvas().drawLine(PdfPen pen, float x1, float y1, float x2, float y2) メソッドを使用して、指定した位置に線を描画できます。また、PDF ペンのスタイルを変更することで、実線や点線などの異なる線を描画可能です。以下に詳細な手順を示します。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class drawLinePDF {
public static void main(String[] args) {
// PdfDocumentオブジェクトを作成します
PdfDocument pdf = new PdfDocument();
// ページを追加します
PdfPageBase page = pdf.getPages().add();
// 現在の描画状態を保存します
PdfGraphicsState state = page.getCanvas().save();
// 線の開始位置のXおよびY座標を指定します
float x = 100;
float y = 70;
// 線の長さを指定します
float width = 300;
// 青色で太さ2のPDFペンを作成します
PdfPen pen = new PdfPen(new PdfRGBColor(Color.BLUE), 2f);
// ペンを使用してページに実線を描画します
page.getCanvas().drawLine(pen, x, y, x + width, y);
// ペンのスタイルを点線に設定します
pen.setDashStyle(PdfDashStyle.Dash);
// 点線のパターンを設定します
pen.setDashPattern(new float[]{1, 4, 1});
// ペンを使用してページに点線を描画します
page.getCanvas().drawLine(pen, x, y+30, x + width, y+30);
// 保存した描画状態を復元します
page.getCanvas().restore(state);
// PDFドキュメントを保存します
pdf.saveToFile("output/PDFで線を描く.pdf");
// ドキュメントを閉じ、リソースを解放します
pdf.close();
pdf.dispose();
}
}
指定した位置に弧や扇形を描画するには、PdfPageBase.getCanvas().drawArc() および PdfPageBase.getCanvas().drawPie() メソッドを使用します。以下はその詳細手順です。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class drawArcAndPiePDF {
public static void main(String[] args) {
// PdfDocumentオブジェクトを作成します
PdfDocument pdf = new PdfDocument();
// ページを追加します
PdfPageBase page = pdf.getPages().add();
// 現在の描画状態を保存します
PdfGraphicsState state = page.getCanvas().save();
// 指定した色と太さ2のPDFペンを作成します
PdfPen pen = new PdfPen(new PdfRGBColor(new Color(139,0,0)), 2f);
// 弧の開始角度と掃引角度を指定します
float startAngle = 90;
float sweepAngle = 230;
// ペンを使用してページに弧を描画します
Rectangle2D.Float rect = new Rectangle2D.Float(30, 60, 120, 120);
page.getCanvas().drawArc(pen, rect, startAngle, sweepAngle);
// 扇形チャートの開始角度と掃引角度を指定します
float startAngle1 = 0;
float sweepAngle1 = 330;
// ペンを使用してページに扇形チャートを描画します
Rectangle2D.Float rect2 = new Rectangle2D.Float(200, 60, 120, 120);
page.getCanvas().drawPie(pen, rect2, startAngle1, sweepAngle1);
// 保存した描画状態を復元します
page.getCanvas().restore(state);
// PDFドキュメントを保存します
pdf.saveToFile("output/PDFに円弧や扇形を描画.pdf");
// ドキュメントを閉じ、リソースを解放します
pdf.close();
pdf.dispose();
}
}
Spire.PDF for Java では、PdfPageBase.getCanvas().drawRectangle() メソッドを使用して PDF ページ上に長方形を描画できます。このメソッドに異なるパラメータを渡すことで、位置やサイズ、塗りつぶしの色を指定可能です。以下に詳細手順を示します。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class drawRectanglesPDF {
public static void main(String[] args) {
// PdfDocumentオブジェクトを作成します
PdfDocument pdf = new PdfDocument();
// ページを追加します
PdfPageBase page = pdf.getPages().add();
// 現在の描画状態を保存します
PdfGraphicsState state = page.getCanvas().save();
// 指定した色と太さ1.5のPDFペンを作成します
PdfPen pen = new PdfPen(new PdfRGBColor(Color.magenta), 1.5f);
// ペンを使用してページに長方形を描画します
page.getCanvas().drawRectangle(pen, new Rectangle(20, 60, 150, 90));
// 線形グラデーションブラシを作成します
Rectangle2D.Float rect = new Rectangle2D.Float(220, 60, 150, 90);
PdfLinearGradientBrush linearGradientBrush = new PdfLinearGradientBrush(
rect,
new PdfRGBColor(Color.white),
new PdfRGBColor(Color.blue),
PdfLinearGradientMode.Vertical
);
// 指定した色と太さ0.5の新しいPDFペンを作成します
PdfPen pen1 = new PdfPen(new PdfRGBColor(Color.black), 0.5f);
// 新しいペンと線形グラデーションブラシを使用して塗りつぶしの長方形を描画します
page.getCanvas().drawRectangle(pen1, linearGradientBrush, rect);
// 保存した描画状態を復元します
page.getCanvas().restore(state);
// PDFドキュメントを保存します
pdf.saveToFile("output/PDFで矩形を描く.pdf");
// ドキュメントを閉じ、リソースを解放します
pdf.close();
pdf.dispose();
}
}
PdfPageBase.getCanvas().drawEllipse() メソッドを使用すると、PDF ページに楕円を描画できます。PDF ペンまたは塗りつぶし用ブラシを使用することで、異なるスタイルの楕円を描画可能です。以下に詳細手順を示します。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class drawEllipsesPDF {
public static void main(String[] args) {
// PdfDocumentオブジェクトを作成します
PdfDocument pdf = new PdfDocument();
// ページを追加します
PdfPageBase page = pdf.getPages().add();
// 現在の描画状態を保存します
PdfGraphicsState state = page.getCanvas().save();
// 指定した色と太さのPDFペンを作成します
PdfPen pen = new PdfPen(new PdfRGBColor(new Color(95, 158, 160)), 1f);
// ペンを使用してページに楕円を描画します
page.getCanvas().drawEllipse(pen, 30, 60, 150, 100);
// 塗りつぶし用の指定した色のブラシを作成します
PdfBrush brush = new PdfSolidBrush(new PdfRGBColor(new Color(95, 158, 160)));
// ブラシを使用してページに塗りつぶし楕円を描画します
page.getCanvas().drawEllipse(brush, 220, 60, 150, 100);
// 保存した描画状態を復元します
page.getCanvas().restore(state);
// PDFドキュメントを保存します
pdf.saveToFile("output/PDFで楕円を描く.pdf");
// ドキュメントを閉じ、リソースを解放します
pdf.close();
pdf.dispose();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
タグ付き PDF は、HTML コードによく似たタグを含む PDF ドキュメントです。タグは、PDF のコンテンツが支援技術によってどのように表示されるかを管理する論理構造を提供します。各タグは、見出しレベル1 <H1>、段落 <P>、画像 <Figure>、表 <Table> など、関連するコンテンツ要素を識別します。この記事では、Spire.PDF for Java を使って 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.9.6</version>
</dependency>
</dependencies>
タグ付き PDF 文書に構造要素を追加するには、まず PdfTaggedContent クラスのオブジェクトを作成する必要があります。次に、PdfTaggedContent.getStructureTreeRoot().appendChildElement() メソッドを使用して、要素をルートに追加します。以下は、Spire.PDF for Java を使ってタグ付き PDF に「見出し」要素を追加する詳細な手順です。
次のコード例は、Java でタグ付き PDF ドキュメントのドキュメント、見出し、段落、図、表などのさまざまな要素を作成する方法を示しています。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.interchange.taggedpdf.PdfStandardStructTypes;
import com.spire.pdf.interchange.taggedpdf.PdfStructureElement;
import com.spire.pdf.interchange.taggedpdf.PdfTaggedContent;
import com.spire.pdf.tables.PdfTable;
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
public class createTaggedPDF {
public static void main(String[] args) throws Exception {
//PdfDocumentオブジェクトを作成します
PdfDocument doc = new PdfDocument();
//ページを追加します
PdfPageBase page = doc.getPages().add(PdfPageSize.A4, new PdfMargins(20));
//タブの順序を設定します
page.setTabOrder(TabOrder.Structure);
//PdfTaggedContentクラスのオブジェクトを作成します
PdfTaggedContent taggedContent = new PdfTaggedContent(doc);
//ドキュメントの言語とタイトルを設定します
taggedContent.setLanguage("ja-JP");
taggedContent.setTitle("Javaによるタグ付きPDFドキュメントの作成");
//PDF/UA1の識別情報を設定します
taggedContent.setPdfUA1Identification();
//フォントとブラシを作成します
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho",Font.PLAIN,14), true);
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));
//"ドキュメント"要素を追加します
PdfStructureElement document = taggedContent.getStructureTreeRoot().appendChildElement(PdfStandardStructTypes.Document);
// "見出し"要素を追加します
PdfStructureElement heading1 = document.appendChildElement(PdfStandardStructTypes.HeadingLevel1);
heading1.beginMarkedContent(page);
String headingText = "タグ付きPDFとは何ですか?";
page.getCanvas().drawString(headingText, font, brush, new Point2D.Float(0, 30));
heading1.endMarkedContent(page);
// "段落"要素を追加します
PdfStructureElement paragraph = document.appendChildElement(PdfStandardStructTypes.Paragraph);
paragraph.beginMarkedContent(page);
String paragraphText = "タグ付きPDFは、人生を変えるような用語ではないように思えます。しかし、一部の人にとっては重要なものです。視覚障害を持つ人や低視力の人々は、情報にアクセスするために補助技術(画面読み上げや接続された点字表示など)を使用していますが、タグのないPDFでは文書に含まれる情報を見逃してしまいます。補助技術はタグのないPDFを「読む」ことができないためです。デジタルアクセシビリティは、かつて視覚障害を持つ人に閉ざされていた情報への道を多く開いていますが、PDFはしばしばその方程式から外れてしまいます。";
Rectangle2D.Float rect = new Rectangle2D.Float(0, 60, (float) page.getCanvas().getClientSize().getWidth(), (float) page.getCanvas().getClientSize().getHeight());
page.getCanvas().drawString(paragraphText, font, brush, rect);
paragraph.endMarkedContent(page);
// "図"要素を追加します
PdfStructureElement figure = document.appendChildElement(PdfStandardStructTypes.Figure);
figure.beginMarkedContent(page);
PdfImage image = PdfImage.fromFile("PDF.png");
page.getCanvas().drawImage(image, new Point2D.Float(0, 220));
figure.endMarkedContent(page);
// "表"要素を追加します
PdfStructureElement table = document.appendChildElement(PdfStandardStructTypes.Table);
table.beginMarkedContent(page);
PdfTable pdfTable = new PdfTable();
pdfTable.getStyle().getDefaultStyle().setFont(font);
String[] data = {"名前;年齢;性別",
"ジョン;22;男性",
"ケイティ;25;女性"
};
String[][] dataSource = new String[data.length][];
for (int i = 0; i < data.length; i++) {
dataSource[i] = data[i].split("[;]", -1);
}
pdfTable.setDataSource(dataSource);
pdfTable.getStyle().setShowHeader(true);
pdfTable.draw(page.getCanvas(), new Point2D.Float(0, 310), 300f);
table.endMarkedContent(page);
// ドキュメントをファイルに保存します
doc.saveToFile("PDFUAの作成.pdf");
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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.9.6</version>
</dependency>
</dependencies>
比較に使用する2つの PDF ドキュメント:
Spire.PDF for Java は、ユーザーが2つの PDF ドキュメントを比較するためのオブジェクトを作成するための PdfComparer クラスを提供します。PdfComparer オブジェクトを作成した後、ユーザーは PdfComparer.compare(String fileName) メソッドを使用して2つのドキュメントを比較し、結果を新しい PDF ファイルとして保存することができます。
できあがった PDF ドキュメントは、2つのオリジナルドキュメントを左と右に表示し、削除された項目は赤で、追加された項目は黄色で表示されます。
2つの PDF ドキュメントを比較する詳細な手順は以下のとおりです:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;
public class ComparePDF {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成して、PDFドキュメントを読み込む
PdfDocument pdf1 = new PdfDocument();
pdf1.loadFromFile("例1.pdf");
//別のPdfDocumentクラスのオブジェクトを作成して、別のPDFドキュメントを読み込む
PdfDocument pdf2 = new PdfDocument();
pdf2.loadFromFile("例2.pdf");
//PdfComparerクラスのオブジェクトを作成する
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
//2つのPDFドキュメントを比較し、比較結果を新しいドキュメントに保存する
comparer.compare("比較結果1.pdf");
}
}
比較する前に、ユーザーは PdfComparer.getOptions().setPageRanges() メソッドを使用して、比較するページ範囲を制限することができます。詳しい手順は以下のとおりです:
import com.spire.pdf.PdfDocument;
import com.spire.pdf.comparison.PdfComparer;
public class ComparePDFPageRange {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成して、PDFドキュメントを読み込む
PdfDocument pdf1 = new PdfDocument();
pdf1.loadFromFile("例1.pdf");
//別のPdfDocumentクラスのオブジェクトを作成して、別のPDFドキュメントを読み込む
PdfDocument pdf2 = new PdfDocument();
pdf2.loadFromFile("例2.pdf");
//PdfComparerクラスのオブジェクトを作成する
PdfComparer comparer = new PdfComparer(pdf1, pdf2);
//比較するページ範囲を設定する
comparer.getOptions().setPageRanges(1, 1, 1, 1);
//2つのPDFドキュメントを比較し、比較結果を新しいドキュメントに保存する
comparer.compare("比較結果2.pdf");
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF ポートフォリオは、テキスト文書、スプレッドシート、プレゼンテーション、画像、ビデオ、オーディオファイルなど、複数のファイルを1つのインタラクティブな 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.7.8</version>
</dependency>
</dependencies>
PDF ポートフォリオは、複数のファイルの集合です。Spire.PDF for Java の PdfDocument.getCollection() メソッドを使用して、PDF ポートフォリオを簡単に作成することができます。その後、PdfCollection.addFile() メソッドを使用してそこにファイルを追加することができます。具体的な手順は以下の通りです。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
public class CreatePortfolioWithFiles {
public static void main(String []args){
//ファイルを指定する
String[] files = new String[] { "Input.pdf", "Sample.docx", "Report.xlsx","Intro.pptx","Logo.jpg" };
//PdfDocument インスタンスを作成する
PdfDocument pdf = new PdfDocument();
//PDF ポートフォリオを作成し、そこにファイルを追加する
for (int i = 0; i < files.length; i++)
{
pdf.getCollection().addFile(files[i]);
}
//結果ファイルを保存する
pdf.saveToFile("PortfolioWithFiles.pdf", FileFormat.PDF);
pdf.dispose();
}
}
PDF ポートフォリオを作成した後、Spire.PDF for Java では、PDF ポートフォリオ内にフォルダを作成してファイルをさらに管理することも可能です。具体的な手順は以下の通りです。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.collections.PdfFolder;
public class CreatePortfolioWithFolders {
public static void main(String []args){
//ファイルを指定する
String[] files = new String[] { "Input.pdf", "Sample.docx", "Report.xlsx","Intro.pptx","Logo.jpg" };
//PdfDocument インスタンスを作成する
PdfDocument pdf = new PdfDocument();
//ポートフォリオを作成し、そこにフォルダーを追加する
for (int i = 0; i < files.length; i++)
{
PdfFolder folder = pdf.getCollection().getFolders().createSubfolder("folder" + i);
//ファイルをフォルダーに追加する
folder.addFile(files[i]);
}
//結果ファイルを保存する
pdf.saveToFile("PortfolioWithFolders.pdf", FileFormat.PDF);
pdf.dispose();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
PDF のレイヤーとは、ドキュメントのコンテンツをグループ化して階層化する方法であり、オプションコンテンツグループ(OCG)オブジェクトを使用してサポートされています。ユーザーは必要に応じて異なるレイヤーを選択的に表示または非表示にすることができます。PDF のレイヤーは通常、テキスト、画像、図形、注釈などのドキュメントの視覚要素を管理するために使用されます。これらの要素を異なるレイヤーに配置することで、ユーザーはドキュメントの可視性とレイアウトを簡単に制御することができます。この記事では、Spire.PDF for Java を使用して 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.7.8</version>
</dependency>
</dependencies>
Spire.PDF for Java は、PDF ドキュメントにレイヤーを追加する PdfDocument.getLayers().addLayer() メソッドを提供します。 その具体的な手順は以下の通りです。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import com.spire.pdf.graphics.layer.PdfLayer;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.io.IOException;
public class addLayersToPdf {
public static void main(String[] args) throws IOException {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("サンプル.pdf");
//AddLayerWatermarkメソッドを使用してウォーターマークのレイヤーを追加する
AddLayerWatermark(pdf);
//AddLayerHeaderメソッドを使用してヘッダーのレイヤーを追加する
AddLayerHeader(pdf);
//ドキュメントを保存する
pdf.saveToFile("レイヤーの追加.pdf");
pdf.dispose();
}
private static void AddLayerWatermark(PdfDocument doc) {
//"透かし"という名前のレイヤーを作成する
PdfLayer layer = doc.getLayers().addLayer("透かし");
//フォントを作成する
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("HarmonyOS Sans SC Medium", Font.PLAIN, 48), true);
//透かしのテキストを指定する
String watermarkText = "オリジナル";
//テキストのサイズを取得する
Dimension2D fontSize = font.measureString(watermarkText);
//オフセットを計算する
float offset1 = (float) (fontSize.getWidth() * Math.sqrt(2) / 4);
float offset2 = (float) (fontSize.getHeight() * Math.sqrt(2) / 4);
//ページ数を取得する
int pageCount = doc.getPages().getCount();
//2つの変数を宣言する
PdfPageBase page;
PdfCanvas canvas;
//すべてのページをループで処理する
for (int i = 0; i < pageCount; i++) {
page = doc.getPages().get(i);
//レイヤーにキャンバスを作成する
canvas = layer.createGraphics(page.getCanvas());
canvas.translateTransform(canvas.getSize().getWidth() / 2 - offset1 - offset2, canvas.getSize().getHeight() / 2 + offset1 - offset2);
canvas.setTransparency(0.4f);
canvas.rotateTransform(-45);
//テキストをレイヤーのキャンバスに描画する
canvas.drawString(watermarkText, font, PdfBrushes.getDarkBlue(), 0, 0);
}
}
private static void AddLayerHeader(PdfDocument doc) {
//"ヘッダー"という名前のレイヤーを作成する
PdfLayer layer = doc.getLayers().addLayer("ヘッダー");
//ページのサイズを取得する
Dimension2D size = doc.getPages().get(0).getSize();
//ページ数を取得する
int pageCount = doc.getPages().getCount();
//2つの変数を宣言する
PdfPageBase page;
PdfCanvas canvas;
//すべてのページをループで処理する
for (int i = 0; i < pageCount; i++) {
//レイヤーに画像を描画する
PdfImage pdfImage = PdfImage.fromFile("ヘッダー.jpg");
page = doc.getPages().get(i);
float width = pdfImage.getWidth();
float height = pdfImage.getHeight();
float x = (float) size.getWidth() / 2 - width / 2;
float y = 30;
canvas = layer.createGraphics(page.getCanvas());
canvas.drawImage(pdfImage, x, y, width, height);
//レイヤーに線を描画します
PdfPen pen = new PdfPen(PdfBrushes.getDarkGray(), 2f);
canvas.drawLine(pen, x, y + height + 5, size.getWidth() - x, y + height + 2);
}
}
}
既存の PDF レイヤーの可視性を設定するには、指定されたレイヤーのインデックスまたは名前を通して PdfDocument.getLayers().get() メソッドを使用し、PdfLayer.setVisibility(PdfVisibility value) メソッドを使用してレイヤーの表示または非表示を設定する必要があります。 その具体的な手順は以下の通りです。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.layer.PdfVisibility;
public class setLayerVisibility {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("レイヤーの追加.pdf");
//最初のレイヤーの可視性をOffに設定する
pdf.getLayers().get(0).setVisibility(PdfVisibility.Off);
//ファイルを保存する
pdf.saveToFile("レイヤーの非表示.pdf", FileFormat.PDF);
pdf.dispose();
}
}
Spire.PDF for Java では、PdfDocument.getLayers().removeLayer(java.lang.String name) メソッドを使用して、既存のレイヤーを名前で削除することもできます。 しかし 、 PDF レイヤーの名前は一意でない可能性があり 、 このメソッドは同じ名前の PDF レイヤーをすべて削除しますので注意してください。 具体的な手順は以下のとおりです。
import com.spire.pdf.PdfDocument;
public class deleteLayers {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("レイヤーの追加.pdf");
//指定したレイヤーをその名前で削除する
pdf.getLayers().removeLayer("ヘッダー");
//ファイルを保存する
pdf.saveToFile("レイヤーの削除.pdf");
pdf.close();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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.5.6</version>
</dependency>
</dependencies>
Spire.PDF for Java のページ(PdfPageBase クラスで表される)は、クライアント領域と周囲のマージンで構成されています。コンテンツ領域は、ユーザーがさまざまなコンテンツを記述するための領域であり、ページ余白は通常空白のエッジになります。
下図に示すように、ページ上の座標系の原点はクライアント領域の左上隅にあり、x 軸は水平に右に伸び、y 軸は垂直に下に伸びています。クライアント領域に追加するすべての要素は、指定された座標に基づいている必要があります。
さらに、次の表に重要なクラスと方法を示します。これは、以下のコードを理解しやすくするのに役立ちます。
クラスと 方法 | 説明 |
PdfDocument クラス | PDF ドキュメント モデルを表します。 |
PdfPageBase クラス | PDF ドキュメント内のページを表します。 |
PdfSolidBrush クラス | オブジェクトを単色で塗りつぶすブラシを表します。 |
PdfTrueTypeFont クラス | True Typeフォントを表します。 |
PdfStringFormat クラス | アライメント、文字間隔、インデントなどのテキスト書式情報を表します。 |
PdfTextWidget クラス | 複数のページにまたがる機能を持つテキスト領域を表します。 |
PdfTextLayout クラス | テキストのレイアウト情報を表します。 |
PdfDocument.getPages().add() メソッド | PDF ドキュメントにページを追加します。 |
PdfPageBase.getCanvas().drawString() メソッド | 指定したフォントとブラシオブジェクトを使用して、ページ上の指定した位置に文字列を描画します。 |
PdfTextWidget.draw() メソッド | テキストウィジェットをページの指定した位置に描画します。 |
PdfDocument.save() メソッド | ドキュメントを PDF ファイルに保存します。 |
Spire.PDF for Java では、PDF ドキュメントにさまざまな要素を追加できます。この記事では、プレーンテキストの PDF ドキュメントを作成する方法について説明します。詳細な手順は次のとおりです。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.*;
public class CreatePdfDocument {
public static void main(String[] args) throws IOException {
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//ページを追加する
PdfPageBase page = doc.getPages().add(PdfPageSize.A4, new PdfMargins(35f));
//タイトルのテキストの指定
String titleText = "ライセンス契約";
//Solid Brusheを作成する
PdfSolidBrush titleBrush = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
PdfSolidBrush paraBrush = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));
//True Typeフォントを作成する
PdfTrueTypeFont titleFont = new PdfTrueTypeFont(new Font("Yu Mincho",Font.BOLD,18));
PdfTrueTypeFont paraFont = new PdfTrueTypeFont(new Font("Yu Mincho",Font.PLAIN,12));
//PdfStringFormatクラスによるテキストの配置を設定する
PdfStringFormat format = new PdfStringFormat();
format.setAlignment(PdfTextAlignment.Center);
//ページにタイトルを描画する
page.getCanvas().drawString(titleText, titleFont, titleBrush, new Point2D.Float((float)page.getClientSize().getWidth()/2, 20),format);
//.txtファイルから段落テキストを取得する
String paraText = readFileToString("content.txt");
//段落内容を保存するPdfTextWidgetオブジェクトを作成する
PdfTextWidget widget = new PdfTextWidget(paraText, paraFont, paraBrush);
//段落の内容を配置する長方形を作成する
Rectangle2D.Float rect = new Rectangle2D.Float(0, 50, (float)page.getClientSize().getWidth(),(float)page.getClientSize().getHeight());
//PdfLayoutTypeをPaginateに設定して内容を自動的にページング
PdfTextLayout layout = new PdfTextLayout();
layout.setLayout(PdfLayoutType.Paginate);
//ページに段落テキストを描画する
widget.draw(page, rect, layout);
//ファイルに保存する
doc.saveToFile("output/CreatePdfDocument.pdf");
doc.dispose();
}
//.txtファイルを文字列に変換する
private static String readFileToString(String filepath) throws FileNotFoundException, IOException {
StringBuilder sb = new StringBuilder();
String s ="";
BufferedReader br = new BufferedReader(new FileReader(filepath));
while( (s = br.readLine()) != null) {
sb.append(s + "\n");
}
br.close();
String str = sb.toString();
return str;
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
大きい PDF ドキュメントよりも小さいサイズのドキュメントの方が転送や保存に便利です。これが PDF を圧縮する最も一般的な理由の1つです。この記事では、Spire.PDF for Java を使用して PDF ドキュメントを圧縮する方法を紹介します。
ここでは、画像、フィールド、コメント、ブックマーク、添付ファイル、埋め込みフォントを削除することによって 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.0</version>
</dependency>
</dependencies>
Spire.PDF for Java が提供する PdfDocument.setCompressionLevel() と PdfBitmap.setQuality() メソッドは、圧縮レベルの最適な設定と画像の品質の圧縮をサポートします。次に、PdfPageBase.replaceImage() メソッドを使用して圧縮された画像を元の画像に置き換えます。以下に詳細な圧縮手順を示します。
import com.spire.pdf.PdfCompressionLevel;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.exporting.PdfImageInfo;
import com.spire.pdf.graphics.PdfBitmap;
public class CompressPdfDocument {
public static void main(String[] args) {
//PdfDocumentオブジェクトを作成する
PdfDocument doc = new PdfDocument();
//PDFドキュメントをロードする
doc.loadFromFile("sample.pdf");
//増分更新を禁止する
doc.getFileInfo().setIncrementalUpdate(false);
//圧縮レベルを最適に設定する
doc.setCompressionLevel(PdfCompressionLevel.Best);
//ドキュメント内のページをループする
for (int i = 0; i < doc.getPages().getCount(); i++) {
//特定のページを取得する
PdfPageBase page = doc.getPages().get(i);
//ページの画像情報コレクションを取得する
PdfImageInfo[] images = page.getImagesInfo();
//コレクション内のすべてのアイテムをループする
if (images != null && images.length > 0)
for (int j = 0; j < images.length; j++) {
//特定の画像を取得する
PdfImageInfo image = images[j];
PdfBitmap bp = new PdfBitmap(image.getImage());
//圧縮品質を設定する
bp.setQuality(20);
//元の画像を圧縮された画像に替える
page.replaceImage(j, bp);
}
//文書を別のPDFファイルに保存する
doc.saveToFile("output.pdf");
doc.close();
}
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
雑誌、新聞、研究論文などでは、多段組の PDF がよく使われます。Spire.PDF for Java を使えば、コードから簡単に多段組の PDF を作成することができます。この記事では、Java アプリケーションにおいて 2段組の 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.8.3</version>
</dependency>
</dependencies>
詳しい手順は以下の通りです。
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class createTwoColumnPDF {
public static void main(String[] args) throws Exception {
//PdfDocument クラスのオブジェクトを作成します
PdfDocument doc = new PdfDocument();
//新しいページを追加する
PdfPageBase page = doc.getPages().add();
//位置と幅を設定する
float x = 0;
float y = 15;
float width = 600;
//PdfPen クラスのオブジェクトを作成する
PdfPen pen = new PdfPen(new PdfRGBColor(Color.black), 1f);
//PDFページ上に線を描画する
page.getCanvas().drawLine(pen, x, y, x + width, y);
//段落テキストを定義する
String s1 = "Spire.PDF for Java は、Javaアプリケーションが Adobe Acrobat を使用せずに PDF ドキュメントを読み取り、"
+ "書き込み、保存できるようにする PDF API です。この Java PDF コンポーネントを使用すると、"
+ "開発者とプログラマーは、PDF ファイルを最初から作成したり、既存の PDF ドキュメント"
+ "を完全に Java アプリケーション( J2SE および J2EE )で処理したりするための豊富な機能を実装できます。";
String s2 = "Spire.PDF for Java は、セキュリティ設定、PDF からのテキスト/画像の抽出、PDF のマージ/分割、"
+ "PDFへのテキスト/画像/形状/バーコードの描画、フォームフィールドの作成と入力、"
+ "PDFレイヤーの追加と削除、PDF のオーバーレイ、PDF へのテキスト/画像の透かしの挿入、"
+ "PDF ブックマークの追加/更新/削除、PDF へのテーブルの追加、"
+ "PDF ドキュメントの圧縮など、多種かつ豊富な機能をサポートできます。";
//ページの幅と高さを取得する
double pageWidth = page.getClientSize().getWidth();
double pageHeight = page.getClientSize().getHeight();
//PdfSolidBrush クラスのオブジェクトを作成する
PdfSolidBrush brush = new PdfSolidBrush(new PdfRGBColor(Color.BLACK));
//PdfTrueTypeFont クラスのオブジェクトを作成する
PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Yu Mincho",Font.PLAIN,14));
//PdfStringFormat クラスによるテキスト配置を設定する
PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);
//テキストを描画する
page.getCanvas().drawString(s1, font, brush, new Rectangle2D.Double(0, 20, pageWidth / 2 - 8f, pageHeight), format);
page.getCanvas().drawString(s2, font, brush, new Rectangle2D.Double(pageWidth / 2 + 8f, 20, pageWidth / 2 - 8f, pageHeight), format);
//ドキュメントを保存する
String output = "2段組PDFの作成.pdf";
doc.saveToFile(output, FileFormat.PDF);
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。
ドキュメントを正確に保存し、表示することは、PDF の主要な機能です。しかし、異なるデバイスやユーザーの閲覧環境設定が、PDF ドキュメントの表示に影響を与えることに変わりはありません。この問題を解決するために、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>8.8.3</version>
</dependency>
</dependencies>
Spire.PDF for Java は、PdfViewerPreferences クラスの下に、ウィンドウの中央配置、タイトルの表示、ウィンドウのフィット、メニューバーやツールバーの非表示、ページレイアウト、ページモード、スケーリングモードなどを設定できるメソッドをいくつか備えています。以下は、閲覧環境の設定に関する詳細な手順である。
import com.spire.pdf.*;
public class setViewerPreference {
public static void main(String[] args) {
//PdfDocument クラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.loadFromFile("C:/例.pdf");
//ドキュメントの閲覧環境の設定を取得する
PdfViewerPreferences preferences = pdf.getViewerPreferences();
//閲覧環境を設定する
preferences.setCenterWindow(true);
preferences.setDisplayTitle(false);
preferences.setFitWindow(true);
preferences.setHideMenubar(true);
preferences.setHideToolbar(true);
preferences.setPageLayout(PdfPageLayout.Single_Page);
//preferences.setPageMode(PdfPageMode.Full_Screen);
//preferences.setPrintScaling(PrintScalingMode.App_Default);
//ファイルを保存する
pdf.saveToFile("閲覧環境の設定.pdf");
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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>8.8.3</version>
</dependency>
</dependencies>
PDF のプロパティを設定する詳細な手順は以下のとおりです。
import com.spire.pdf.*;
import java.util.Date;
public class setPDFProperties {
public static void main(String[] args) {
//PdfDocument クラスのオブジェクトを作成する
PdfDocument pdfDocument = new PdfDocument();
//PDFドキュメントを読み込む
pdfDocument.loadFromFile("C:/例.pdf");
//タイトルを設定する
pdfDocument.getDocumentInformation().setTitle("PDF(ポータブルドキュメント形式)");
//Set the author
pdfDocument.getDocumentInformation().setAuthor("穂波 たまえ");
//サブタイトルを設定する
pdfDocument.getDocumentInformation().setSubject("PDFの紹介");
//キーワードを設定する
pdfDocument.getDocumentInformation().setKeywords("PDF、ドキュメント形式");
//作成日を設定する
pdfDocument.getDocumentInformation().setCreationDate(new Date());
//作成者を設定する
pdfDocument.getDocumentInformation().setCreator("穂波 たまえ");
//更新日を設定する
pdfDocument.getDocumentInformation().setModificationDate(new Date());
//PDF変換を設定する
pdfDocument.getDocumentInformation().setProducer("Spire.PDF for Java");
//ドキュメントを保存する
pdfDocument.saveToFile("PDFのプロパティの設定.pdf");
}
}
PDF のプロパティを取得する詳細な手順は、以下の通りです。
import com.spire.pdf.*;
import java.io.*;
public class getPDFProperties {
public static void main(String[] args) throws IOException {
//PdfDocument クラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFドキュメントを読み込む
pdf.loadFromFile("PDFのプロパティの設定.pdf");
//ドキュメントのプロパティの値を格納するための StringBuilder クラスのインスタンスを作成する
StringBuilder stringBuilder = new StringBuilder();
//プロパティの値を取得し、StringBuilder に格納する
stringBuilder.append("タイトル: " + pdf.getDocumentInformation().getTitle() + "\r\n");
stringBuilder.append("作成者: " + pdf.getDocumentInformation().getAuthor() + "\r\n");
stringBuilder.append("サブタイトル: " + pdf.getDocumentInformation().getSubject() + "\r\n");
stringBuilder.append("キーワード: " + pdf.getDocumentInformation().getKeywords() + "\r\n");
stringBuilder.append("アプリケーション: " + pdf.getDocumentInformation().getCreator() + "\r\n");
stringBuilder.append("作成日: " + pdf.getDocumentInformation().getCreationDate() + "\r\n");
stringBuilder.append("PDF変換: " + pdf.getDocumentInformation().getProducer() + "\r\n");
//TXTファイルを新規に作成する
File file = new File("PDFのプロパティの取得.txt");
file.createNewFile();
//StringBuilder をTXTファイルに書き込む
FileWriter fileWriter = new FileWriter(file, true);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(stringBuilder.toString());
bufferedWriter.flush();
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 にお問い合わせ、30 日間有効な一時ライセンスを取得してください。