【问题标题】:Aspose.pdf for .net image insertion going over textAspose.pdf 用于在文本上插入 .net 图像
【发布时间】:2019-09-30 05:12:47
【问题描述】:

我将 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-index 为 0 也许它应该是别的东西?但是什么?

感谢您的任何想法

【问题讨论】:

    标签: aspose.pdf


    【解决方案1】:

    您可以简单地使用ImageStamp 类添加图像,您可以根据您的要求使用XIndentYIndent 属性控制其位置。下面是一个示例代码 sn-p 供您参考,可以进一步修改或增强。

    // 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:我与 Aspose 合作,担任开发人员宣传员。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 2011-07-15
      • 2019-10-22
      • 2021-09-02
      • 2016-09-09
      相关资源
      最近更新 更多