チュートリアル
簡単にライブラリーを使用するためのチュートリアルコレクション
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.1.4</version>
</dependency>
</dependencies>
単一の画像透かしを挿入する場合、通常、PDF ページの中央に挿入されます。 以下は、PDF 文書に単一の画像透かしを挿入するための詳細な手順です。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfImage;
public class insertSingleImageWatermark {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.loadFromFile("恐竜は物語である.pdf");
//画像を読み込む
PdfImage image = PdfImage.fromFile("ロゴ.png");
//画像の幅と高さを取得する 透かしを挿入するための初期座標を算出するために使用される
int imageWidth = image.getWidth();
int imageHeight = image.getHeight();
//全ページをループして透かしを挿入する
for (int i = 0; i < pdf.getPages().getCount(); i++) {
//ページを取得する
PdfPageBase page = pdf.getPages().get(i);
//ページの幅と高さを取得する 透かしを挿入するための初期座標を計算するために使用する
float pageWidth = (float) (page.getActualSize().getWidth());
float pageHeight = (float) (page.getActualSize().getHeight());
//透かし画像の透明度を設定する
page.getCanvas().setTransparency(0.3f);
//ページの中央に透かし画像を描画する
page.getCanvas().drawImage(image, pageWidth/2 - imageWidth/2, pageHeight/2 - imageHeight/2, imageWidth, imageHeight);
}
//文書を保存する
pdf.saveToFile("単一の画像の透かし.pdf");
}
}
タイル状の画像透かしは、同じ PDF のページ上に同じ透かし画像を複数回繰り返し表示する透かしです。 タイル型画像透かしの挿入では、透かし画像の繰り返し回数をカスタマイズすることができます。PDF 文書にタイル状の画像透かしを挿入する 操作手順の詳細は、以下のとおりです。
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.graphics.PdfBrush;
import com.spire.pdf.graphics.PdfImage;
import com.spire.pdf.graphics.PdfTilingBrush;
import java.awt.*;
public class insertTiledImageWatermark {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.loadFromFile("恐竜は物語である.pdf");
//画像を読み込む
PdfImage image = PdfImage.fromFile("ロゴ.png");
//文書のページをループして透かしを挿入する
for (int i = 0; i < pdf.getPages().getCount(); i++ ) {
//ページを取得する
PdfPageBase page = pdf.getPages().get(i);
//カスタムメソッドを使用し、タイル状の画像透かしを挿入する
insertImageWatermark(page, image, 3, 3);
}
//文書を保存する
pdf.saveToFile("タイル状の画像の透かし.pdf");
}
static void insertImageWatermark(PdfPageBase page, PdfImage image, int row, int column) {
//タイル型ブラシを作成する
PdfTilingBrush brush = new PdfTilingBrush(new Dimension((int) (page.getActualSize().getWidth()/column), (int) (page.getActualSize().getHeight()/row)));
brush.getGraphics().setTransparency(0.3f);
brush.getGraphics().save();
brush.getGraphics().translateTransform(brush.getSize().getWidth()/2 - image.getWidth()/2, brush.getSize().getHeight()/2 - image.getHeight()/2);
//ブラシで画像を描く
brush.getGraphics().drawImage(image, 0, 0);
brush.getGraphics().restore();
//このタイル型ブラシを使用して、透かし画像を描く
page.getCanvas().drawRectangle(brush, new Rectangle(new Point(0, 0), new Dimension((int) (page.getActualSize().getWidth()), (int) (page.getActualSize().getHeight()))));
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するには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.1.4</version>
</dependency>
</dependencies>
単一の文字透かしは、PDF ページの中央に1回だけ表示される文字透かしです。Spire.PDF for Java を使用して PDF 文書に単一テキストの透かしを挿入する手順は、以下の通りです。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class insertSingleTextWaterMark {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.loadFromFile("恐竜は物語である.pdf");
//ページをループして透かしを挿入する
String text = "サンプル";
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho", Font.BOLD, 50));
float set1 = (float) (font.measureString(text).getWidth() * Math.sqrt(2)/4);
float set2 = (float) (font.measureString(text).getHeight() * Math.sqrt(2)/4);
for (int i = 0; i < pdf.getPages().getCount(); i++){
//ページを取得する
PdfPageBase page = pdf.getPages().get(i);
//透かし文字の透明度を設定する
page.getCanvas().setTransparency(0.8f);
//座標の移動量を設定する
page.getCanvas().translateTransform(page.getCanvas().getSize().getWidth()/2 - set1 - set2, page.getCanvas().getSize().getHeight()/2 + set1 - set2);
//透かし文字の回転角度を設定する
page.getCanvas().rotateTransform(-45);
//ページ上に透かしを描画する
page.getCanvas().drawString(text, font, PdfBrushes.getDarkGray(), 0, 0);
}
//ファイルを保存する
pdf.saveToFile("単一の文字透かし.pdf");
}
}
タイル型透かしは、1ページに複数回表示される透かしです。これらは、文書の著作権や所有権を保護するために多く使用されています。私たちは、Spire.PDF for Java のクラスとメソッドに基づいてカスタムのメソッド insertTextWatermark() を作成し、PDF文書にタイル状の文字透かしを挿入することができます。詳細な手順は次のとおりです。
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
public class insertTiledTextWatermark {
public static void main(String[] args) {
//PdfDocumentクラスのオブジェクトを作成する
PdfDocument pdf = new PdfDocument();
//PDFファイルを読み込む
pdf.loadFromFile("恐竜は物語である.pdf");
//ページをループして透かしを挿入する
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Yu Mincho", Font.BOLD, 20));
for (int i = 0; i < pdf.getPages().getCount(); i++){
PdfPageBase pageBase = pdf.getPages().get(i);
insertTextWatermark(pageBase, font, "部外秘", 3, 3);
}
//ファイルを保存する
pdf.saveToFile("タイル状の文字透かし.pdf");
}
static void insertTextWatermark(PdfPageBase page, PdfTrueTypeFont font, String watermark, int row, int column) {
//座標の移動を計算する際に使用する2つのオフセット変数の値を計算する
float set1 = (float)(font.measureString(watermark).getWidth() * Math.sqrt(2)/4);
float set2 = (float)(font.measureString(watermark).getHeight() * Math.sqrt(2)/4);
//タイリングブラシを作成する
PdfTilingBrush brush = new PdfTilingBrush(new Dimension((int) (page.getActualSize().getWidth()/column), (int) (page.getActualSize().getHeight()/row)));
brush.getGraphics().setTransparency(0.3f);
brush.getGraphics().save();
brush.getGraphics().translateTransform(brush.getSize().getWidth()/2 - set1 - set2, brush.getSize().getHeight()/2 + set1 - set2);
brush.getGraphics().rotateTransform(-45);
//タイリングブラシに透かしテキストを描画する
brush.getGraphics().drawString(watermark, font, PdfBrushes.getViolet(), 0, 0);
brush.getGraphics().restore();
//このタイリングブラシを使って透かしを描く
page.getCanvas().drawRectangle(brush, new Rectangle(new Point(0, 0), new Dimension((int)(page.getActualSize().getWidth()), (int)(page.getActualSize().getHeight()))));
}
}
結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。