我正在向PDF文件中添加图片,方法如下:
(我们不需要任何臭段落!)
抱歉,这句话是个玩笑话,它并没有实际意义。
string imagepath = @"C:\Users\Default\";
if (System.IO.File.Exists(imagepath + "OfficeUseOnlyImgSmaller.png"))
{
iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(imagepath + "OfficeUseOnlyImg.png");
png.ScaleToFitLineWhenOverflow = true;
doc.Add(png);
}
目前它可以工作,但图像并未正确添加到PDF文件中:
[
我需要将图片(“仅限办公室使用”矩形)吸附到右侧,并与左侧显示的彩色文本在同一“行”上,如下所示:
[
我该怎么做?将“ScaleToFitLineWhenOverflow”设置为true无效。我还减小了图像本身的尺寸,但这没有任何区别-它只是将较小的文件膨胀回与以前相同(屏幕)大小。
更新
一旦我记得实际加载较小的图像(而不仅仅是检查其是否存在),图像就会被缩小:
…但它仍然将自己藏在文本块的下方,而不是右侧。
更新2
我试图实现nelek的想法:
string imagepath = @"C:\Users\Default\";
if (System.IO.File.Exists(imagepath + "OfficeUseOnlyImgSmaller.png"))
{
iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(imagepath + "OfficeUseOnlyImgSmaller.png");
png.ScaleToFitLineWhenOverflow = true; // this doesn't do what I hoped it would do (keep the img on the same line)
PdfPTable tblImg = new PdfPTable(1);
tblImg.WidthPercentage = 35;
tblImg.HorizontalAlignment = Element.ALIGN_RIGHT;
var parImg = new Paragraph();
parImg.Add(png);
PdfPCell imgCell = new PdfPCell();
imgCell.AddElement(parImg);
imgCell.BorderWidth = PdfPCell.NO_BORDER;
tblImg.AddCell(imgCell);
doc.Add(tblImg);
}
但是现在图片根本不显示。这是什么情况?这是什么问题?
更新3
好吧,这有点起作用了(仍需要调整):
if (System.IO.File.Exists(imagepath + "OfficeUseOnlyImgSmaller.png"))
{
iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(imagepath + "OfficeUseOnlyImgSmaller.png");
PdfPTable tblImg = new PdfPTable(1);
tblImg.WidthPercentage = 35;
tblImg.HorizontalAlignment = Element.ALIGN_RIGHT;
PdfPCell imgCell = new PdfPCell();
imgCell.AddElement(png); //parImg);
imgCell.BorderWidth = PdfPCell.NO_BORDER;
tblImg.AddCell(imgCell);
doc.Add(tblImg);
}
(我们不需要任何臭段落!)
抱歉,这句话是个玩笑话,它并没有实际意义。
for life's not a paragraph
And death i think is no parenthesis
更新4
通过一点代码调整(将图片大小恢复到原始尺寸,并将表格的WidthPercentage从35改为45),我现在在生成的PDF文件中看到了这个:
...那么我如何将此图片与左边的文本更好地对齐呢?我需要在两个表格中再包装一个双单元格的表格吗?
- 考虑到情况,反思一下,使用一个表格并将其变成两列/单元格表格(而不是将两个单元/表格套入另一个表格)可能更有意义。
更新5
最新代码让我离目标更近了一步:
PdfPTable tbl = new PdfPTable(2);
tbl.WidthPercentage = 55;
tbl.HorizontalAlignment = Element.ALIGN_LEFT;
var par = new Paragraph();
par.SetLeading(0, 1.2f);
par.Add(boldpart);
par.Add(ini);
par.Add(anchor);
par.Add(middlePart);
par.Add(anchorCCO);
PdfPCell chunky = new PdfPCell();
chunky.AddElement(par);
chunky.BorderWidth = PdfPCell.NO_BORDER;
tbl.AddCell(chunky);
string imagepath = @"C:\Users\Default\";
if (System.IO.File.Exists(imagepath + "OfficeUseOnlyImg.png"))
{
iTextSharp.text.Image png = iTextSharp.text.Image.GetInstance(imagepath + "OfficeUseOnlyImg.png");
PdfPCell imgCell = new PdfPCell();
imgCell.AddElement(png);
imgCell.BorderWidth = PdfPCell.NO_BORDER;
tbl.AddCell(imgCell);
doc.Add(tbl);
}
...但现在的图片很小,挤压了表格第一个单元格中的文本:
...也许我需要添加一个空单元格或其他什么东西...