javapdf,黑马javapdf

发布时间:2023-01-07

本文目录一览:

  1. java 如何读取PDF文件内容
  2. java创建pdf文件写入不进去
  3. java不能对pdf文件进行二次填充吗
  4. java生成pdf,图片怎么导不进去?
  5. java如何多次解析填充pdf模板
  6. java 如何给pdf文件加水印

java 如何读取PDF文件内容

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URL;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;
public class PdfReader {
    public void readFdf(String file) throws Exception {
        // 是否排序
        boolean sort = false;
        // pdf文件名
        String pdfFile = file;
        // 输入文本文件名称
        String textFile = null;
        // 编码方式
        String encoding = "UTF-8";
        // 开始提取页数
        int startPage = 1;
        // 结束提取页数
        int endPage = Integer.MAX_VALUE;
        // 文件输入流,生成文本文件
        Writer output = null;
        // 内存中存储的PDF Document
        PDDocument document = null;
        try {
            try {
                // 首先当作一个URL来装载文件,如果得到异常再从本地文件系统
                // 去装载文件
                URL url = new URL(pdfFile);
                // 注意参数已不是以前版本中的URL.而是File。
                document = PDDocument.load(pdfFile);
                // 获取PDF的文件名
                String fileName = url.getFile();
                // 以原来PDF的名称来命名新产生的txt文件
                if (fileName.length() > 4) {
                    File outputFile = new File(fileName.substring(0, fileName.length() - 4) + ".txt");
                    textFile = outputFile.getName();
                }
            } catch (MalformedURLException e) {
                // 如果作为URL装载得到异常则从文件系统装载
                // 注意参数已不是以前版本中的URL.而是File。
                document = PDDocument.load(pdfFile);
                if (pdfFile.length() > 4) {
                    textFile = pdfFile.substring(0, pdfFile.length() - 4) + ".txt";
                }
            }
            // 文件输入流,写入文件倒textFile
            output = new OutputStreamWriter(new FileOutputStream(textFile), encoding);
            // PDFTextStripper来提取文本
            PDFTextStripper stripper = null;
            stripper = new PDFTextStripper();
            // 设置是否排序
            stripper.setSortByPosition(sort);
            // 设置起始页
            stripper.setStartPage(startPage);
            // 设置结束页
            stripper.setEndPage(endPage);
            // 调用PDFTextStripper的writeText提取并输出文本
            stripper.writeText(document, output);
        } finally {
            if (output != null) {
                // 关闭输出流
                output.close();
            }
            if (document != null) {
                // 关闭PDF Document
                document.close();
            }
        }
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        PdfReader pdfReader = new PdfReader();
        try {
            // 取得E盘下的SpringGuide.pdf的内容
            pdfReader.readFdf("E://SpringGuide.pdf");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

java创建pdf文件写入不进去

可以用生成PDF报表的Java组件--iText。 具体实现方法如下:

  1. 导入itext-2.1.5.jaritextasian-1.5.2.jar两个包到项目里。
  2. 建立一个PDF文件。 一般情况下,iText使用在有以下一个要求的项目中:
  3. 内容无法提前利用:取决于用户的输入或实时的数据库信息。
  4. 由于内容,页面过多,PDF文档不能手动生成。
  5. 文档需在无人参与,批处理模式下自动创建。
  6. 内容被定制或个性化。

java不能对pdf文件进行二次填充吗

能。根据查询相关资料显示,Java能对PDF文件进行二次填充,首先在模板文档上设置文本域,根据文本域填充内容,使用iTextPDF在PDF上填充内容。 Java是一门面向对象编程语言,1990年代初由詹姆斯·高斯林等人开发出Java语言的雏形,最初被命名为Oak,后随着互联网的发展,经过对Oak的改造,1995年5月Java正式发布。

java生成pdf,图片怎么导不进去?

不知道你用的什么方法来导的,但是如果通过PDF类库jar包来实现的话,应该是没问题的,参考如下Java代码中关于如何插入图片到PDF的方法:

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
public class AddImage {
    public static void main(String[] args) {
        // 创建文档
        PdfDocument pdf = new PdfDocument();
        // 添加一页
        PdfPageBase page = pdf.getPages().add();
        // 加载图片,并获取图片高宽
        PdfImage image = PdfImage.fromFile("fj.png");
        int width = image.getWidth() / 2;
        int height = image.getHeight() / 2;
        // 绘制图片到PDF
        page.getCanvas().drawImage(image, 50, 50, width, height);
        // 保存文档
        pdf.saveToFile("result.pdf");
        pdf.dispose();
    }
}

java如何多次解析填充pdf模板

Java如何多次解析填充PDF模板操作如下:

  1. 先去建一个Word文件,设置好想要填充的地方,留好位置,设置好下划线。
  2. 将Word另存为PDF。
  3. 打开电脑中的Adobe Acrobat Pro DC(这个应该Win10都有,搜索一下就出来了),点击文件→创建→创建表单。
  4. 然后导入刚刚生成的PDF会出来页面双击这个阴影部分,将名称改成你要设置的名称,后面要根据这个名称来给他赋值全部设置好以后就可以另存为。

java 如何给pdf文件加水印

可以使用Spire.PDF for Java通过Java来添加水印。 首先,您需要在 Java 程序中添加 Spire.Pdf.jar 文件作为依赖项。您可以从这个链接下载 JAR 文件;如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码导入 JAR 文件。

<repositories>
    <repository>
        <id>e-iceblue</id>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.2.0</version>
    </dependency>
</dependencies>

1. 添加图片水印

代码如下:

import com.spire.pdf.*;
import java.awt.geom.Rectangle2D;
public class watermark {
    public static void main(String[] args) {
        // 加载PDF文档
        PdfDocument doc = new PdfDocument();
        doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pdf");
        // 获取第一页
        PdfPageBase page = doc.getPages().get(0);
        // 设置背景图片
        page.setBackgroundImage("C:\\Users\\Administrator\\Desktop\\logo.png");
        // 设置背景区域
        Rectangle2D.Float rect = new Rectangle2D.Float();
        rect.setRect(280, 300, 150, 150);
        page.setBackgroundRegion(rect);
        // 保存文档
        doc.saveToFile("output/imageWaterMark.pdf");
        doc.close();
    }
}

2. 添加文本水印

代码如下:

import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import java.awt.*;
import java.awt.geom.*;
public class Textwatermark {
    public static void main(String[] args) {
        // 创建PdfDocument对象
        PdfDocument pdf = new PdfDocument();
        // 加载示例文档
        pdf.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.pdf");
        // 获取第一页
        PdfPageBase page = pdf.getPages().get(0);
        // 调用insertWatermark方法插入文本水印
        insertWatermark(page, "E-ICEBLUE");
        // 保存文档
        pdf.saveToFile("out/textWaterMark.pdf");
    }
    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);
        brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 24), 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);
    }
}

希望对您有帮助。