Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在PdfSharp中写入和读取CustomValues花费的时间太长_C#_Pdf_Metadata_Pdfsharp - Fatal编程技术网

C# 在PdfSharp中写入和读取CustomValues花费的时间太长

C# 在PdfSharp中写入和读取CustomValues花费的时间太长,c#,pdf,metadata,pdfsharp,C#,Pdf,Metadata,Pdfsharp,我有一个c#方法,可以为给定的pdf文件编写自定义值。为了编写pdf的自定义值,我使用PdfSharp 1.50.5147 这里的问题是PdfReader。Open等待pdf belove的时间太长: 我的要求是以毫秒为单位写入和读取给定文件的自定义值。虽然许多pdf文件的自定义值可以在毫秒内写入和读取,但像这样的一些文件可能会给我带来问题 我是否需要打开整个文档来编写或读取自定义值?有没有不同的方法?您对此问题有何建议?目前,由于PdfSharp首先将整个pdf加载到内存中,因此没有方法在P

我有一个c#方法,可以为给定的pdf文件编写自定义值。为了编写pdf的自定义值,我使用PdfSharp 1.50.5147

这里的问题是PdfReader。Open等待pdf belove的时间太长:

我的要求是以毫秒为单位写入和读取给定文件的自定义值。虽然许多pdf文件的自定义值可以在毫秒内写入和读取,但像这样的一些文件可能会给我带来问题


我是否需要打开整个文档来编写或读取自定义值?有没有不同的方法?您对此问题有何建议?

目前,由于PdfSharp首先将整个pdf加载到内存中,因此没有方法在PdfSharp中快速打开大型pdf。您试图打开的pdf文件是一个高达168MB的文件


您可以扩展PdfSharp并尝试先加载预告片内容,然后根据预告片条目读取每个内容块。

目前,由于PdfSharp首先在内存中加载整个pdf,因此没有方法在PdfSharp中快速打开大型pdf。您试图打开的pdf文件是一个高达168MB的文件


您可以扩展PdfSharp并尝试先加载预告片内容,然后根据预告片条目读取每个内容块。

您不能保证在毫秒内处理任意PDF。但对于给定的示例来说,2.5分钟确实太长了。您不能保证在毫秒内处理任意PDF。但对于给定的示例来说,2.5分钟似乎确实太长了。
 public bool WritePropertyToFile(string filePath, string extension, string key, string value)
    {
        try
        {
            document = PdfReader.Open(filePath);  //Here it lasts 2.5 minutes !!
            var properties = document.CustomValues.Elements;
            properties.SetString("/" + key, value);
            document.Save(filePath);
            document = null;
            return true;
        }
        catch (Exception)
        {
            if (document != null)
                document = null;

            throw;
        }
    }