我想要一个pdf文件,在打印时实际尺寸与适合页面之间没有区别。 我尝试使用以下示例,但不起作用,只会锁定宽度,而不是高度。 有没有解决方案?
package etiq;
import java.io.FileOutputStream;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.PageSize;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
public class TestHeight {
public static void main(String[] args) {
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
String path = "D:\\test.pdf";
FileOutputStream output = new FileOutputStream(path);
PdfWriter writer = PdfWriter.getInstance(document, output);
document.open();
PdfPTable table = new PdfPTable(2);
table.setTotalWidth(400);
table.setLockedWidth(true);
table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
table.getDefaultCell().setVerticalAlignment(Element.ALIGN_MIDDLE);
table.getDefaultCell().setFixedHeight(70);
table.addCell("!");
table.addCell("Text Text Text Text Text Text ");
table.addCell(new Phrase(new Chunk("cell")));
table.addCell("Text Text ");
table.addCell(new Phrase(new Chunk("cell")));
table.addCell("Text Text Text ");
table.addCell(new Phrase(new Chunk("cell")));
table.addCell("Text \nText \nText ");
table.addCell(new Phrase(new Chunk("cell")));
table.addCell("Text ");
table.addCell(new Phrase(new Chunk("cell")));
table.addCell("Text ");
table.addCell(new Phrase(new Chunk("cell")));
table.addCell("Text ");
table.addCell(new Phrase(new Chunk("cell")));
document.add(table);
} catch (Exception de) {
de.printStackTrace();
}
document.close();
}
}
答案 0 :(得分:1)
请查看PrintPreferences
示例。在此示例中,解释了几个打印首选项。对您来说重要的一行将确保在打印时不缩放页面:
writer.addViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
这是您可以设置的唯一参数,以影响打印设置。您无法告诉查看者它需要使页面符合打印机页面的大小。您只能通过将PRINTSCALING
设置为NONE
来指示查看者需要采用的实际尺寸。
如果您想要其他一些行为,那么您需要在PDF中找不到的东西。