c# - PDF中的黑色条纹而不是图像
问题描述
所以我正在为我的客户制作软件,当我向他展示输出(PDF)时,输出中出现了奇怪的黑色条纹而不是图像。它让我感到惊讶,因为它在我的电脑和笔记本电脑上运行良好,没有任何问题。所以在我在虚拟机上尝试之后,同样的问题发生了。
页眉和页脚始终保持不变,只有内容在页面之间切换。
我通过截取屏幕截图并切换内容然后将图像放入 PDF 来创建 PDF。(输出总是被打印出来,所以没关系)。
- 主格式为 595 x 835
- 页眉为 595 x 65
- 内容为 595 x 705
- 页脚为 595 x 65
制作 PDF 的部分代码
FileStream PDFfile = new FileStream(PDFpath + "//" + filename + "_" + i + ".pdf", FileMode.Create);
Document Document = new Document(PageSize.A4, 25, 25, 25, 25);
PdfWriter Writer = PdfWriter.GetInstance(Document, PDFfile);
Document.AddAuthor("Clientela garde");
Document.AddCreator("http://www.icsharp.eu");
Document.AddKeywords("Výpis do PDF");
Document.AddSubject("Výpis informací pro klienta");
Document.AddTitle("Finanční gramotnost");
// Výpis do stránky
Document.Open();
try
{
Page1.Hide();
Page2.Hide();
Page3.Hide();
Page4.Hide();
Page5.Hide();
Page1.Show();
System.Drawing.Rectangle bounds = this.Bounds;
using (Bitmap bitmap = new Bitmap(595, 835))
{
System.Drawing.Rectangle rct = new System.Drawing.Rectangle(new Point(bounds.Left - EcoTron.PDFCreator.ActiveForm.Location.X, bounds.Top - EcoTron.PDFCreator.ActiveForm.Location.Y), bounds.Size);
EcoTron.PDFCreator.ActiveForm.DrawToBitmap(bitmap, rct);
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap, System.Drawing.Imaging.ImageFormat.Bmp);
bitmap.SetResolution(1190, 1684);
PdfPTable HeaderTable = new PdfPTable(1);
HeaderTable.DefaultCell.Border = 0;
HeaderTable.WidthPercentage = 100;
PdfPCell ImageCell = new PdfPCell();
ImageCell.Border = 0;
img.ScaleAbsolute(595 - 50, 835 - 50);
ImageCell.AddElement(img);
HeaderTable.AddCell(ImageCell);
Document.Add(HeaderTable);
}
解决方案
您描述的工作流程似乎非常复杂和脆弱。
也许您应该考虑其他创建文档的方法。
- 以 HTML 格式生成文档并将 HTML 转换为 PDF (
iText7
+pdfHTML
) - 使用类似的东西生成图形
JFreeChart
,将它们导出到 aBufferedImage
并直接添加到 PDF - 将图形生成为 SVG 图像,并将它们直接添加到 PDF
推荐阅读
- java - 使对象为空
- unix - awk 哈希对两个输入文件应用条件
- python-3.x - 将 apply() 从 Python2 移植到 Python3
- java - 如何在Java中按不同顺序(asc/desc)的多个字段对列表进行排序?
- swift - SwiftUI:从后台返回后激活显示时应用程序崩溃
- python - python string.whitespace中的空字符串
- sqlite - CakePHP 使用 Sqlite 而不是 Mysql
- macos - Hadoop 在启动时崩溃 - docker-compose (MacOS)
- arrays - 两个 1D numpy / torch 数组的特殊索引以生成另一个数组
- reactjs - Page 404 appears in all routes of React Router