2

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;
    }
4

1 に答える 1

3

ファイルを として送信できます。方法: ストリーミングStreamを有効にするを参照してください。その後、クライアントでファイルを保存し、シェルで実行します。MSDN の記事には、サンプルメソッドとセクション全体が含まれています。GetStreamWriting a custom stream

より完全なサンプル コードが必要な場合は、フォーラムの投稿Streamed file transfer using WCF starts with some で開始しますが、実行中に問題が発生したため、作成者がそこに投稿したことに注意してください。

byte[] またはストリームについては、画像ブロブのアップロード - ストリームとバイト配列およびストリームと生バイトの比較を参照してください。2 番目の状態

一度にすべてをメモリに読み込む必要がないため、ストリームは大きなファイルのパフォーマンスが向上します。

于 2012-05-04T12:33:37.587 に答える