Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.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# 读取PDF文件并从WCF服务以流形式返回?_C#_Wcf_Web Services_Stream - Fatal编程技术网

C# 读取PDF文件并从WCF服务以流形式返回?

C# 读取PDF文件并从WCF服务以流形式返回?,c#,wcf,web-services,stream,C#,Wcf,Web Services,Stream,我想创建一个WCF服务(像windows服务一样工作)。此服务将从特定路径读取PDF文件,提取页面,创建新的PDF文件并将其返回给调用者 我该怎么做?我使用QuickPDF处理PDF文件,我可以提取并创建新的PDF文件。如何在WCF服务中使用它 等待你的帮助 这只是示例代码: public Stream ExtractPdf(string PathOfOriginalPdfFile, int StartPage,int PageCount) { PDFLibrary qp = n

我想创建一个WCF服务(像windows服务一样工作)。此服务将从特定路径读取PDF文件,提取页面,创建新的PDF文件并将其返回给调用者

我该怎么做?我使用QuickPDF处理PDF文件,我可以提取并创建新的PDF文件。如何在WCF服务中使用它

等待你的帮助

这只是示例代码:

public Stream ExtractPdf(string PathOfOriginalPdfFile, int StartPage,int PageCount)
{
        PDFLibrary qp = new PDFLibrary();
        Stream Stream_ = null;

        if (qp.UnlockKey(".................") == 0)
        {
            string fileName = @"..\..\Test Files\sample1.pdf";
            string OutputFile = @"..\..\Test Files\sample1_extracted.pdf";

            if (qp.Unlocked() == 1)
            {

                int docID = qp.LoadFromFile(fileName, "");

                int extractPageSuccess = qp.ExtractPages(StartPage, PageCount);

                if (extractPageSuccess == 0)
                {
                    // error
                }
                else
                {
                    qp.SaveToFile(OutputFile);
                }
            }
        }

        //
        // Codes here
        //
        return Stream_;
    }
我编辑了它:

 public byte[] ExtractPdf(string PathOfOriginalPdfFile, int StartPage,int PageCount)
    {

        QuickPDFDLL0815.PDFLibrary qp = new QuickPDFDLL0815.PDFLibrary(@"C:\Program Files (x86)\Quick PDF Library\DLL\QuickPDFDLL0815.dll");

        string fileName = @"..\..\Test Files\sample1.pdf";
        byte[] binFile = null;

        if (qp.UnlockKey("...................") == 0)
        {


            if (qp.Unlocked() == 1)
            {

                int docID = qp.LoadFromFile(fileName, "");

                int extractPageSuccess = qp.ExtractPages(StartPage, PageCount);

                if (extractPageSuccess == 0)
                {
                    // error
                }
                else
                {
                   binFile = qp.SaveToString();
                }
            }
        }

        return binFile;
    }

您可以将文件作为
流发送,请参阅,然后在客户端保存文件并让shell执行。MSDN文章包括一个示例
GetStream
方法以及一整节关于
编写自定义流的内容

如果您想要更完整的示例代码,论坛帖子以一些代码开头,但是请注意,作者在那里发布了它,因为他们在运行它时遇到了问题

关于字节[]或流,请参阅和。第二个州

对于大型文件,流的性能会更好,因为并非所有文件都需要一次读入内存


我添加了一个新的代码示例。返回pdf文件的最佳方法是什么?流或字节[],为什么?