【问题标题】:iText7 pagesize not working with paragraphiText7页面大小不适用于段落
【发布时间】:2023-04-09 10:40:01
【问题描述】:

我已经使用 iText7 进行 pdf 转换,使用的页面大小效果很好,但是段落不允许使用页面大小,各位可以请你帮忙解决这个问题,这里附上一个代码示例。感谢您的支持。

PageSize objPageSize = new PageSize(5, 5);
PdfWriter writer = new PdfWriter("D:\\Test.pdf);
iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(writer);
iText.Layout.Document document = new iText.Layout.Document(pdf, objPageSize);
document.SetMargins(1, 1, 1, 1);
Paragraph objParagraph = new Paragraph("HEADER");
document.Add(objParagraph);
document.Close();

【问题讨论】:

  • “段落不允许使用页面大小” - 你的意思是什么?
  • 感谢 mkl 的建议,使用带有 itext7 的 .Net Core,目的是需要生成包含 Zebra 打印机尺寸的文本详细信息和条形码的 PDF(这不是 A4 尺寸的页面)PDF 生成,再次感谢您的支持
  • 看起来像“不允许使用页面大小”意味着结果似乎是空的/空白

标签: pdf itext7


【解决方案1】:

您的页面太小,单个字形都无法容纳。使其至少为 10x10 并将段落字体大小设置为例如0.5:

PageSize objPageSize = new PageSize(10, 10);
PdfWriter writer = new PdfWriter("D:\\Test.pdf);
iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(writer);
iText.Layout.Document document = new iText.Layout.Document(pdf, objPageSize);
document.SetMargins(1, 1, 1, 1);
Paragraph objParagraph = new Paragraph("HEADER").SetFontSize(0.5f);
document.Add(objParagraph);
document.Close();

您将获得以下视觉结果:

UPD 左上角,6x6:

PageSize objPageSize = new PageSize(6, 6);
PdfWriter writer = new PdfWriter("D:\\Test.pdf);
iText.Kernel.Pdf.PdfDocument pdf = new iText.Kernel.Pdf.PdfDocument(writer);
iText.Layout.Document document = new iText.Layout.Document(pdf, objPageSize);
document.SetMargins(0, 0, 0, 0);
Paragraph objParagraph = new Paragraph("HEADER").SetFontSize(0.5f).SetMargin(0);
document.Add(objParagraph);
document.Close();

结果:

【讨论】:

  • Alexey Subach 感谢您寻找这个,在 Zebra 打印机条形码标签尺寸约为 6x6,它从左上角开始打印,有什么方法可以实现相同,我想要 6x6 标签尺寸标签上有文字和条形码,感谢您的努力,
  • 您附加的图片不是 6x6 的 pdf 渲染图,这是 A4 尺寸,我已附上 6x6 以供参考,在 6x6 中不允许渲染文本和条形码的段落组合,请看图片
  • A4 尺寸是矩形,我的图片明显是正方形
猜你喜欢
  • 2015-06-10
  • 1970-01-01
  • 2020-04-26
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 2011-08-21
相关资源
最近更新 更多