加载pdf_Java 插入附件到PDF文档
生活随笔
收集整理的這篇文章主要介紹了
加载pdf_Java 插入附件到PDF文档
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在文檔中插入附件,可以起到與源文檔配套使用的目的,以一種更簡便的方式對文檔起到補充說明的作用。下面將介紹通過Java編程插入附件到PDF文檔中的方法。這里插入的文檔可以是常見的文檔類型,如Word、Excel、PPT、Txt或者其他文件類型。插入方法,分兩種情況,一種是直接加載文檔內容作為附件添加到PDF文檔,另一種是通過給PDF文檔添加注釋并添加文檔到注釋的形式。兩種方式中可根據文檔需要,選擇相應的附件添加方法。
使用工具:Free Spire.PDF for Java v2.2.2(免費版)
關于jar文件添加:官網下載jar包,下載后,解壓并將lib文件夾下的jar導入Java程序。
Java代碼(供參考)
import com.spire.pdf.PdfDocument; import com.spire.pdf.annotations.*; import com.spire.pdf.attachments.PdfAttachment; import com.spire.pdf.graphics.*;import java.awt.*; import java.awt.geom.Dimension2D; import java.awt.geom.Rectangle2D; import java.io.File; import java.io.FileInputStream; import java.io.IOException;public class AttachFiles {public static void main(String[] args) throws IOException {//實例化PdfDocument類的對象PdfDocument doc = new PdfDocument();//加載需要添加附件的PDF文檔doc.loadFromFile("test.pdf");//加載附件文檔(Excel)并作為附件添加到PDFPdfAttachment attachment = new PdfAttachment("Sample.xlsx");doc.getAttachments().add(attachment);//在PDF頁面指定位置繪制標簽String label = "TestReport.docx";PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", Font.BOLD, 14));double x = 40;double y = doc.getPages().get(0).getActualSize().getHeight() -800;doc.getPages().get(0).getCanvas().drawString(label, font, PdfBrushes.getOrange(), x, y);//以注釋的形式添加附件到PDFString filePath = "測試文檔.docx";byte[] data = toByteArray(filePath);Dimension2D size = font.measureString(label);Rectangle2D bound = new Rectangle2D.Float((float) (x + size.getWidth() + 3), (float) y, 10, 15);PdfAttachmentAnnotation annotation = new PdfAttachmentAnnotation(bound, filePath, data);annotation.setColor(new PdfRGBColor(new Color(0, 128, 128)));annotation.setFlags(PdfAnnotationFlags.Default);annotation.setIcon(PdfAttachmentIcon.Graph);annotation.setText("點擊打開測試報告文檔.docx");doc.getPages().get(0).getAnnotationsWidget().add(annotation);//保存文檔doc.saveToFile("Attachments.pdf");}//讀取文件到byte數組public static byte[] toByteArray(String filePath) throws IOException {File file = new File(filePath);long fileSize = file.length();if (fileSize > Integer.MAX_VALUE) {System.out.println("file too big...");return null;}FileInputStream fi = new FileInputStream(file);byte[] buffer = new byte[(int) fileSize];int offset = 0;int numRead = 0;while (offset < buffer.length&& (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) {offset += numRead;}if (offset != buffer.length) {throw new IOException("Could not completely read file "+ file.getName());}fi.close();return buffer;} }附件添加效果(如下圖):
(本文完)
總結
以上是生活随笔為你收集整理的加载pdf_Java 插入附件到PDF文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity开宝箱动画_unity简单动画
- 下一篇: ebc是什么意思_UEFI+GPT和Le