读取 PDF 文件并从 WCF 服务作为流返回

本文关键字:返回 服务 WCF PDF 文件 读取 | 更新日期: 2023-09-27 18:33:06

我想创建一个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;
    }

读取 PDF 文件并从 WCF 服务作为流返回

您可以将文件作为Stream发送,请参阅如何:启用流式处理,然后在客户端上保存文件并让 shell 执行它。MSDN 文章包括一个示例GetStream方法以及有关Writing a custom stream的整个部分。

但是,如果您想要更完整的示例代码,论坛帖子使用 WCF 的流式文件传输以一些开头,请注意作者将其发布在那里,因为他们在运行它时遇到问题。

对于 byte[] 或流,请参阅上传图像 blob – 流与字节数组和流与原始字节。第二种状态

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