欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

java程序中注释可删除吗?(如何删除pdf注释)

数码知识

林凡骥优秀作者

原创内容 来源:小居数码网 时间:2024-08-09 15:37:01 阅读() 收藏:22 分享:41

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有1741个文字,大小约为6KB,预计阅读时间5分钟。

众所周知,我们无法对PDF格式的文档进行直接编辑,而需借助PDF编辑器才可以。今天,我将介绍如何不使用编辑器,只需借助一个控件来通过后端调用Java代码的方式编辑PDF文档 —— 给PDF文档中的指定文本添加注释及如何删除已有注释。

如何删除pdf注释

创建开发环境

运行代码前,我们需要创建开发环境,即安装配置JDK和Intellij IDEA。接着我们需将Free Spire.PDF for Java控件下的Spire.Pdf.jar导入IDEA。可手动导入或通过Maven仓库引用以下代码进行导入。

<repositories>        <repository>            <id>com.e-iceblue</id>            <url>http://repo.e-iceblue.cn/repository/maven-public/</url>        </repository>    </repositories><dependencies>    <dependency>        <groupId>e-iceblue</groupId>        <artifactId>spire.pdf.free</artifactId>        <version>3.9.0</version>    </dependency></dependencies>

新建PDF文档并为其添加弹出式注释

import com.spire.pdf.*;import com.spire.pdf.annotations.*;import com.spire.pdf.graphics.*;import java.awt.*;import java.awt.geom.*;public class PopupAnnotation {    public static void main(String[] args) {        //初始化PdfDocument实例        PdfDocument doc = new PdfDocument();        //设置边距        PdfUnitConvertor unitCvtr = new PdfUnitConvertor();        PdfMargins margin = new PdfMargins();        margin.setTop(unitCvtr.convertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));        margin.setBottom(margin.getTop());        margin.setLeft(unitCvtr.convertUnits(3f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point));        margin.setRight(margin.getLeft());        //添加新页        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);        //插入文本        PdfBrush brush1 = PdfBrushes.getBlack();        PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial Unicode MS",  Font.BOLD + Font.ITALIC,13), true);        PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left);        float y = 50;        String s = "本示例用于演示如何为PDF文档添加弹出式注释。";        page.getCanvas().drawString(s, font1, brush1, 0, y - 5, format1);        y = y + (float)font1.measureString(s, format1).getHeight();        //指定附注的文本、图标及图标颜色        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial Unicode MS",0, 10));        PdfStringFormat format = new PdfStringFormat();        format.setMeasureTrailingSpaces(true);        String prompt = "弹出式注释";        Dimension2D size = font.measureString(prompt, format);        page.getCanvas().drawString(prompt, font, PdfBrushes.getDodgerBlue(), 0, y);        float x = (float)size.getWidth();        String label = "添加弹出式注释";        page.getCanvas().drawString(label, font, PdfBrushes.getOrangeRed(), x, y);        x = x + (float)font.measureString(label, format).getWidth();        String markupText = "什么是弹出式注释?";        Rectangle2D rectangle2D = new Rectangle.Float();        rectangle2D.setFrame(new Point2D.Double(x,y),new Dimension());        PdfPopupAnnotation annotation = new PdfPopupAnnotation(rectangle2D, markupText);        annotation.setIcon(PdfPopupIcon.Paragraph);        annotation.setOpen(true);        annotation.setColor(new PdfRGBColor(Color.YELLOW));        ((PdfNewPage) page).getAnnotations().add(annotation);        //保存文档        doc.saveToFile("output/AddPopupAnnotation.pdf");        doc.close();    }}

添加效果

为已有PDF文档添加文本框注释

import com.spire.pdf.*;import com.spire.pdf.annotations.*;import com.spire.pdf.graphics.*;import java.awt.*;import java.awt.geom.*;import com.spire.pdf.general.find.PdfTextFind;public class TextBoxAnnotation {    public static void main(String[] args) {        //加载示例文档        PdfDocument doc = new PdfDocument();        doc.loadFromFile("C:UsersTest1DesktopSample.pdf");        //获取第一页        PdfPageBase page = doc.getPages().get(0);        //获取文本并指定添加文本框注释的位置        PdfTextFind[] find = page.findText("人工智能").getFinds();        float x = (float)(find[0].getPosition().getX() - doc.getPageSettings().getMargins().getLeft() + find[0].getSize().getWidth()+20);        float y = (float)(find[0].getPosition().getY() - doc.getPageSettings().getMargins().getTop()+20);        //创建文本框注释        Rectangle2D.Float rect = new Rectangle2D.Float(x, y, 150, 30);        PdfFreeTextAnnotation textAnnotation = new PdfFreeTextAnnotation(rect);        // 设置注释文字及字体,注释框边界颜色及背景色        textAnnotation.setMarkupText("人工智能的定义");        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial",0, 12));;        textAnnotation.setFont(font);        PdfAnnotationBorder border = new PdfAnnotationBorder(0.5f);        textAnnotation.setBorder(border);        textAnnotation.setBorderColor(new PdfRGBColor(Color.pink));        textAnnotation.setColor(new PdfRGBColor(Color.YELLOW));        textAnnotation.setOpacity(0.75f);        textAnnotation.setTextMarkupColor(new PdfRGBColor(Color.black));        //添加注释到PDF        page.getAnnotationsWidget().add(textAnnotation);        //保存结果文档        doc.saveToFile("output/FreeTextAnnotation.pdf");        doc.close();    }}

添加效果

删除PDF文档中已有的注释

Free Spire.PDF for Java不仅支持删除PDF文档中已有的所有注释,同时还可以删除指定的某个注释。以下是删除所有注释的代码示例。

import com.spire.pdf.*;public class DeleteAnnotation {    public static void main(String[] args) {        //加载示例文档        PdfDocument document = new PdfDocument();        document.loadFromFile("C:UsersTest1DesktopFreeTextAnnotation.pdf");        //删除第一页上的第一个注释        //document.getPages().get(0).getAnnotationsWidget().removeAt(0);        //删除所有注释        document.getPages().get(0).getAnnotationsWidget().clear();        //保存文档        String result = "output/DeleteAllAnnotations.pdf";        document.saveToFile(result);    }}

上面就是小居数码小编今天给大家介绍的关于(如何删除pdf注释)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

94%的朋友还想知道的:

(403)个朋友认为回复得到帮助。

部分文章信息来源于以及网友投稿,转载请说明出处。

本文标题:java程序中注释可删除吗?(如何删除pdf注释):http://sjzlt.cn/shuma/154066.html

猜你喜欢