4

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

如何写入 PDF?

我试过用 FileOutputStream 写,但没有用。

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

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

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

4

5 回答 5

4

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

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

我建议您改用 iText 之类的第 3 方 API ( http://itextpdf.com/ )。

于 2013-06-10T20:40:09.407 回答
1

试试这个。作者只使用了默认的 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

于 2021-05-20T00:21:09.977 回答
0

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

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

使用 Java 创建 PDF

于 2013-06-10T20:32:48.103 回答
0

PDF 格式相当复杂,生成起来并不简单。

您应该强烈考虑使用一个好的库来帮助您。

于 2013-06-10T20:34:07.807 回答
0

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

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

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

http://pdfbox.apache.org/

于 2013-06-10T20:51:48.113 回答