首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aspose.pdf用于在文本上插入.net图像

Aspose.pdf用于在文本上插入.net图像
EN

Stack Overflow用户
提问于 2019-09-30 05:12:47
回答 1查看 971关注 0票数 0

我使用aspose.pdf作为.net,当我动态插入图像时,pdf上的相邻文本在图像下面运行。

我正在用实际的图像替换占位符(例如%checkboxImage%)

我只是使用他们的文档中的代码,如下所示

代码语言:javascript
复制
        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,也许它应该是别的什么?但是什么呢?

谢谢你的建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-30 19:11:21

您可以使用ImageStamp类简单地添加图像,您可以根据需要使用XIndentYIndent属性控制它的位置。下面是您的类引用的示例代码片段,它可能会被进一步修改或增强。

代码语言:javascript
复制
// 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一起工作,作为开发人员的布道者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58161812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档