所以..我只能使用默认的Java API,不能使用外部的API。
如何写PDF?
我尝试使用FileOutputStream编写,但它无效。
我听说它必须用一个字节写,所以我试过了:
byte[] buffer = new String("Test");
当我尝试打开文件时,它说它已损坏且无法打开。
答案 0 :(得分:4)
创建PDF不仅仅是生成具有PDF扩展名的文件。页眉和页脚信息需要嵌入文件中。
如果您确实需要手动执行此操作,则可以在http://www.adobe.com/devnet/acrobat/pdfs/PDF32000_2008.pdf阅读PDF 1.7规范。
我建议您使用第三方API,例如iText(http://itextpdf.com/)。
答案 1 :(得分:0)
答案 2 :(得分:0)
PDF格式非常复杂,生成起来并不简单。
你应该强烈考虑使用一个好的图书馆来帮助你。
答案 3 :(得分:0)
实际上,你可以用基本的JAVA(或任何其他语言)来做到这一点,但你真的不想这样做,除非你绝对必须这样做。诀窍是你必须写出一个具有非常特定结构的二进制数据流。那里可能有更好的文档网址,但这是我遇到的第一个似乎提供你似乎需要的信息......
http://resources.infosecinstitute.com/pdf-file-format-basic-structure/
如果您可以解决不使用外部外部库的要求,我建议您查看下面链接的免费Apache PDFBox库。
答案 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://gist.github.com/Ravikharatmal/66d4954822f406ca0761e624e205bb30