我希望有一个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();
}
}
请看一个PrintPreferences
例子。在此示例中,将说明几种打印首选项。对您来说很重要的一行将确保打印时页面没有缩放:
writer.addViewerPreference(PdfName.PRINTSCALING, PdfName.NONE);
这是可以设置以影响打印设置的唯一参数。您无法告诉查看者它需要使页面适合打印机页面的大小。通过将设置为PRINTSCALING
,只能指示查看者需要实际尺寸NONE
。
如果您想要其他行为,则要求的是PDF中不可能做到的事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句