使用Java创建PDF文件

时间:2013-06-10 20:23:27

标签: java pdf

所以..我只能使用默认的Java API,不能使用外部的API。

如何写PDF?

我尝试使用FileOutputStream编写,但它无效。

我听说它必须用一个字节写,所以我试过了:

byte[] buffer = new String("Test");

当我尝试打开文件时,它说它已损坏且无法打开。

5 个答案:

答案 0 :(得分:4)

创建PDF不仅仅是生成具有PDF扩展名的文件。页眉和页脚信息需要嵌入文件中。

如果您确实需要手动执行此操作,则可以在http://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf阅读PDF 1.7规范。

我建议您使用第三方API,例如iText(http://itextpdf.com/)。

答案 1 :(得分:0)

有几种不同的方法可以做到这一点。

以下是一些可用于样式设计的不同库。

Create PDF with Java

答案 2 :(得分:0)

PDF格式非常复杂,生成起来并不简单。

你应该强烈考虑使用一个好的图书馆来帮助你。

答案 3 :(得分:0)

实际上,你可以用基本的JAVA(或任何其他语言)来做到这一点,但你真的不想这样做,除非你绝对必须这样做。诀窍是你必须写出一个具有非常特定结构的二进制数据流。那里可能有更好的文档网址,但这是我遇到的第一个似乎提供你似乎需要的信息......

http://resources.infosecinstitute.com/pdf-file-format-basic-structure/

如果您可以解决不使用外部外部库的要求,我建议您查看下面链接的免费Apache PDFBox库。

http://pdfbox.apache.org/

答案 4 :(得分:0)

试试这个。作者只使用了默认的Java API,适合你的需求:

import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

https://itsallbinary.com/generate-pdf-using-java-from-scratch-without-any-library-multiple-pages-and-graphics/

完整代码链接:https://gist.github.com/Ravikharatmal/66d4954822f406ca0761e624e205bb30