任何机构都知道为什么我的页眉或页边距无法在页面上工作/生成?它只生成带有“ hello脖子”的段落的pdf
import java.awt.Desktop;
import java.io.FileOutputStream;
import java.io.OutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.*;
public class Report {
public static void main(String arg[])throws Exception
{
try{
File temp = File.createTempFile("tempfile", ".pdf");
OutputStream file = new FileOutputStream(temp);
Document document = new Document();
PdfWriter.getInstance(document, file);
document.open();
document.addHeader("header1", "this is my header file");
document.setMargins(50, 50, 100, 100);
document.add(new Paragraph("hello neck"));
document.close();
file.close();
if (Desktop.isDesktopSupported()) {
Desktop dtop = Desktop.getDesktop();
if (dtop.isSupported(Desktop.Action.OPEN)) {
String temp2 = temp.getPath();
dtop.open(new File(temp2));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
最佳答案
标头类型错误。那是为了元信息,而不是页面的页眉和页脚。
考虑“内容类型”而不是“ y的第x页”。
//these two lines of code are identical
document.addHeader("a", "b");
document.add(new Header("a", "b"));
Header
继承自Meta
,后者处理作者/标题/ etc / etc。标头用于不属于标准值之一的任意字符串。同样,您只能更改元数据,直到调用document.open()。之后,所有更改都将被忽略(或者它们会抛出……我不记得了)
但是您需要页眉和页脚。传统的处理方式是通过
PdfPageEvent
的OnEndPage函数。如果您从PdfPageEventHelper
继承,则它已经取消了PdfPageEvent
界面中的所有功能,因此您只需要覆盖所需的功能即可。便利。在您的OnEndPage中,您将要使用
ColumnText
对象将文本写入提供的PdfContentByte中。关于java - Java中的PDF文件无法添加标题或边距?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5716124/