我們正在創建一個 PDF,它包含一個大表格,帶有標題(粗體)、子標題(非粗體)、行和單元格。

要求之一是在單元格內(在子標題下)添加一個已經存在的 PDF(可以是多頁)。這就是我們正在苦苦掙扎的地方。到目前為止,我們已經嘗試過:
將 PDF 轉換為 a FormXObject,并將其添加到單元格中。
FontProvider fontProvider = new FontProvider();
ConverterProperties props = new ConverterProperties();
props.SetFontProvider(fontProvider);
var historyId = text.Replace("=Spectec_template", "");
var pdfTemplate = templateToPdfClient.GetPdf(historyId, "HI").Result;
PdfDocument srcDoc = new PdfDocument(new PdfReader(pdfTemplate.FileStream));
for (int i = 1; i < srcDoc.GetNumberOfPages() 1; i )
{
Cell newCell = new Cell(1, columnInfo.ColumnSpan).SetFont(PdfFontFactory.CreateFont(_fontName));
PdfPage origPage = srcDoc.GetPage(i);
Rectangle rect = origPage.GetPageSize();
PdfFormXObject pageCopy = origPage.CopyAsFormXObject(pdf);
Image image = new Image(pageCopy);
image.SetBorder(Border.NO_BORDER);
image.SetMaxWidth(UnitValue.CreatePercentValue(100));
image.SetMaxHeight(UnitValue.CreatePercentValue(50));
Div div = new Div();
div.Add(image.SetMaxWidth(UnitValue.CreatePercentValue(100)));
newCell.Add(div);
newCell = ApplyLayoutsToCell(newCell, cellStyles);
table.AddCell(newCell);
}
但最終結果是我們只看到 1 頁,并且在頁面末尾完全重疊。

當我們設定image.SetAutoScale(true);PDF 是可見的但它非常小。添加Image到 aParagraph而不是 DIV 時,PDF 頁面彼此相鄰顯示。
有什么想法、建議嗎?
謝謝
uj5u.com熱心網友回復:
感謝@mkl 和@KJ,我明白了這一點。
我最終將每個 PDF 頁面添加到一個新單元格中,并將影像縮放設定為 0.6f。
for (int i = 1; i < srcDoc.GetNumberOfPages() 1; i )
{
newCell = new Cell(1, columnInfo.ColumnSpan).SetFont(PdfFontFactory.CreateFont(_fontName));
PdfPage origPage = srcDoc.GetPage(i);
PdfFormXObject pageCopy = origPage.CopyAsFormXObject(pdf);
Image image = new Image(pageCopy);
image.SetBorder(Border.NO_BORDER);
image.Scale(0.6f, 0.6f);
newCell.Add(image);
newCell = ApplyLayoutsToCell(newCell, cellStyles);
table.AddCell(newCell);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/428370.html
