我使用aspose.pdf作为.net,当我动态插入图像时,pdf上的相邻文本在图像下面运行。
我正在用实际的图像替换占位符(例如%checkboxImage%)

我只是使用他们的文档中的代码,如下所示
private void AddImage(TextFragment textFragment, int imageWidth, int imageHeight, Stream stream)
{
var currentPage = textFragment.Page;
var position = new Position(0, 0);
position = textFragment.Position;
position.YIndent = textFragment.Position.YIndent;
textFragment.Text = "";
if (position.XIndent != 0 && position.YIndent != 0)
{
// Set coordinates
double lowerLeftX = position.XIndent;
double lowerLeftY = position.YIndent;
double upperRightX = position.XIndent + imageWidth;
double upperRightY = position.YIndent + imageHeight;
currentPage.Resources.Images.Add(stream);
currentPage.Contents.Add(new GSave());
var rectangle = new Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
var matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY - 10 });
currentPage.Contents.Add(new ConcatenateMatrix(matrix));
XImage ximage = currentPage.Resources.Images[currentPage.Resources.Images.Count];
currentPage.Contents.Add(new Do(ximage.Name));
currentPage.Contents.Add(new GRestore());
}
}我尝试过为图像设置页边距,也尝试在表的单独单元格中设置占位符和相邻文本。
图像的z-索引是0,也许它应该是别的什么?但是什么呢?
谢谢你的建议
发布于 2019-09-30 19:11:21
您可以使用ImageStamp类简单地添加图像,您可以根据需要使用XIndent和YIndent属性控制它的位置。下面是您的类引用的示例代码片段,它可能会被进一步修改或增强。
// Open document
Document pdfDocument = new Document(dataDir+ "AddImageStamp.pdf");
// Create image stamp
ImageStamp imageStamp = new ImageStamp(dataDir + "aspose-logo.jpg");
imageStamp.Background = true;
imageStamp.XIndent = 100;
imageStamp.YIndent = 100;
imageStamp.Height = 300;
imageStamp.Width = 300;
imageStamp.Rotate = Rotation.on270;
imageStamp.Opacity = 0.5;
// Add stamp to particular page
pdfDocument.Pages[1].AddStamp(imageStamp);
dataDir = dataDir + "AddImageStamp_out.pdf";
// Save output document
pdfDocument.Save(dataDir);如果您还需要任何帮助,那么请与SSCCE代码共享您的源文档和图像文件,以便我可以对您进行相应的调查和帮助。
PS: I与Aspose一起工作,作为开发人员的布道者。
https://stackoverflow.com/questions/58161812
复制相似问题