从PDF文件中获取对象的大小

时间:2018-03-14 22:27:39

标签: c# pdf pdfsharp

我需要将Microsoft Excel中的图表另存为PDF文件。 (另存为 - >文件类型:PDF)这将生成一个单页PDF文件,其中图表始终位于中间,并且图表也会缩放以适合页面宽度。

结果很好,但图表可以在它周围获得许多额外的空白区域,我想摆脱它。我正在使用 PdfSharp 来处理PDF文件,但我无法在PDF中找到图表(对象),计算实际尺寸

我知道Aspose.PDF库有一个函数 - CalculateContentBBox但我不能在我的项目中使用该库。

无论如何通过PdfSharp得到相同或相似的东西? 我相信图表在内部结构

中存储为

'/Contents'

这是我到目前为止所尝试的内容(GitHub中包含示例PDF文件) 感谢

https://github.com/PetLahev/PdfSharpQuestion

using System;
using System.Reflection;
using System.IO;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Pdf.Advanced;

namespace PDFSharpProject
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Provide path to a PDF file (or just hit enter to get the default)");
            string path = Console.ReadLine();
            if (string.IsNullOrWhiteSpace(path))
            {
                path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "TestPDF.pdf");
            }

            if (string.IsNullOrWhiteSpace(path)) return;
            TryToFindObject(path);
        }

        private static void TryToFindObject(string pdfPath)
        {
            PdfDocument pdf = PdfReader.Open(pdfPath);
            PdfPage page = pdf.Pages[0];
            PdfDictionary contents = page.Elements.GetDictionary("/Contents");
            if (contents == null) return;

            var items = contents.Elements.Values;
            Console.WriteLine("Here I don't know what to do");

        }
    }
}

所以我想把内容放在红色的“矩形”中(当然这应该是真正的矩形)。主要是我需要摆脱左/右白色空间。我可以处理顶部/底部 enter image description here

0 个答案:

没有答案