Java Spire.PdfによるPDFによるテキスト透かしの追加

16724 ワード

この文書では、次のことを学びます.
  • Spire.Pdfって何ですか?
  • プロジェクトにSpire.Pdf依存性をどのように導入しますか?
  • プロジェクトでSpire.Pdfに基づいてPDFにテキスト透かしを追加しますか?

  • 一、Spire.Pdfとは何ですか.
    1.Spire.Pdfは成都氷藍科技有限公司が開発した簡単で使いやすく、機能が強いPdfドキュメント編集ツールで、無料バージョンと有料バージョンがあり、以下のプレゼンテーションは無料バージョンに基づいている.
    2.市販の他の類似ツールに比べて、その最大の利点は、完全なJavaコードに基づいて実現され、dllファイルや他の証明書ファイルをインストールする必要がなく、Javaのプラットフォーム間特性を完璧に利用してLinux環境で実行できることである.
    3.簡単な使い方をご紹介します
    二、プロジェクトにSpire.Pdf依存を導入する方法
    1.ダウンロードアドレス:https://www.e-iceblue.cn/Downloads/Free-Spire-PDF-JAVA.html2.公式に公式Maven倉庫がある:http://repo.e-iceblue.com/nexus/content/groups/public/3.説明しなければならないのは、公式倉庫を使うことを提案しないで、そのスピードはとても遅くて、その2今すべての会社はすべて自分のMavenの私服を建てて、更に他の会社の倉庫を使って公網の支持を必要とするのも便利ではありませんて、jarバッグをダウンロードして自分の会社の私服の中にアップロードすることを提案します
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>free.spire.pdf</artifactId>
        <version>2.6.3</version>
    </dependency>
    

    三、プロジェクトにおいてSpire.Pdfパッケージツール類に基づいてPDFにテキスト透かしを追加する
    直接サンプルコード
    package com.demo.utils;
    
    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;
    import java.awt.geom.Rectangle2D;
    
    public class TextWatermarkUtil {
         
    
        public static void addWatermark(String inFile, String outFile, String watermark) {
         
            //  PdfDocument  
            PdfDocument pdf = new PdfDocument();
    
            //      
            pdf.loadFromFile(inFile);
    
            for (int i = 0; i < pdf.getPages().getCount(); i++) {
         
                //  insertWatermark        
                insertWatermark(pdf.getPages().get(i), watermark);
            }
            //    
            pdf.saveToFile(outFile);
            pdf.close();
        }
    
        private static void insertWatermark(PdfPageBase page, String watermark) {
         
            Dimension2D dimension2D = new Dimension();
            dimension2D.setSize(page.getCanvas().getClientSize().getWidth() / 2, page.getCanvas().getClientSize().getHeight() / 3);
            PdfTilingBrush brush = new PdfTilingBrush(dimension2D);
            brush.getGraphics().setTransparency(0.3F);
            brush.getGraphics().save();
            brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 2, (float) brush.getSize().getHeight() / 2);
            brush.getGraphics().rotateTransform(-45);
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("  ", Font.PLAIN, 12), true);
            brush.getGraphics().drawString(watermark, font, PdfBrushes.getViolet(), 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
            brush.getGraphics().restore();
            brush.getGraphics().setTransparency(1);
            Rectangle2D loRect = new Rectangle2D.Float();
            loRect.setFrame(new Point2D.Float(0, 0), page.getCanvas().getClientSize());
            page.getCanvas().drawRectangle(brush, loRect);
        }
    }
    

    コード内のテキスト透かしフォント、サイズ、位置、傾斜角度は自分で設定して調整できます