English | 日本
C++ PDF
Shopping CartContact Us PDF C#
Knowledgebase
BCL easy PDF SDK

全てのPDF文書をひとつに統合する

日付: 2012年5月21日
作成者: James Coe

今週の最初のメソッドとして、全てのpdfドキュメントを指定のディレクトリ内に統合する方法をご提供い たします。このページの一番下に、全メソッドをC#コードで表示してありますますので、お手持ちのアプ リケーションにコード全てをコピー&ペーストすることができます。しかしその前にメソッドの個々のステ ップについて解説します。

第一に、適切なReferencesをProjectに追加することと、これらのReferencesに合ったUsing Entriesを追 加することを忘れないでください。このプロジェクトにはPDFProcessor Library Referenceが追加されて いることが必要であり、以下に記載の"using" エントリーが必要になります。

  • using System;
  • using System.IO;
  • using System.Collections;
  • using BCL.easyPDF7.Interop.EasyPDFProcessor;

次に、Methodの名前が以下のようになります。;

Method Name

2つのストリング変数を取得し、1つのストリング変数を返すことを目的としています。戻り値は文字列で あり、作り出されたOutput Fileの名前または適切なエラーレポートと共に、ステータスレポート、または 変換成功のレポートを含みます。OutFileNameが出力FileNameであるかぎり、inFileDirは指定したInput Directoryの場所になります。

  • inFileDirは次のフォーマットを使用しなければなりません; @"C:\YourFolderName\"
  • OutFileNameは次のフォーマットを使用しなければなりません; @"C:\YourFolderName\OutName.pdf"
  • あるいは、OutFileName用のヌル値をパスすることができ、メソッドは、それ自身の名前で出力File Nameを作り出します。.

次に、Primary VariablesとObjectsを宣言します。

Declaring Variables

一旦これらが宣言されたら、Input Directoryが存在していることを確認するために小さなif-thenステー トメントがチェックをします。また、このブロックはヌル値がOutputFileNameとしてパスされていたかどう か、もしそうであれば、入力ディレクトリ内でファイル名を作成しているかどうかもチェックします。

Check Input Directory

そして、全入力ファイルを上記で宣言したArrayList Objectにまとめます。もし、pdfファイルがディレクト リ内に存在しなければ、その状況を伝えるエラーが戻され、メソッドは中断します。さもなければ、ディ レクトリ内の全てのpdfファイルは、簡単なマージをするためにArrayList Object 内へ1つずつロードさ れます。.

簡単に使用できるように、全てのファイル名アドレスをストアするための場所を与えてくれるので、これ は、他のオペレーションにも役に立つ短いコードです。.

Gather Input Files

一旦入力ファイルが集められたら、メソッドはProcessory Objectを生成し、それをイニシャライズします 。また、BCL License Keyをオブジェクトに適用させます。この場合、表示されたKeyは単純にTrial Extension Keyでありますが、プロセスはFull Keyと同じです。

Create Processor Object

最後に、一旦Objectが初期化されれば、実際のマージが1行のコードで実行されます。

Merge the Files Merge the Files

目的通りにすべてが動作すれば、Mergeが完了し、ファイルが指定された場所に置かれているというメ ッセージを受け取ります。ファイルアドレス全体を含んだOutFileName文字列をフォーマットするので、 どうファイルが名づけられたか、どこに置かれているかの両方が分かります。もし何らかのエラーがあ れば、代わりに報告されます。

前述のとおり、このメソッドにはいくつかの制限があります。先ずは、全てのpdfファイルは同じフォルダ 内になければなりません。次に、ディレクトリ内のいずれかのpdfファイルが不正なものであったり、アク セスできない場合、全てのメソッドが失敗してしまう原因になり、そしてMergeBatchが動作するので、問 題を起こしたファイルファイルの特定はできません。同様に、どのファイルがマージされたかの命令は 制御できず、そしてフォルダ内のいかなるpdfファイルもマージから除外させません。

そして、こちらが全Methodのコードで、お手持ちのアプリケーションに追加できるようになっています。;

          
    public static string MergeAllPDFFilesInDIR(string inFileDir, string OutFileName)
    {
            //Declare Major Variables and Objects
        string result = null;
        DirectoryInfo Dir = null;
        FileInfo[] FileList = null;
        ArrayList InputFileList = null;
        PDFProcessor oMerger = null;

            // Identify inFileDir and OutFileName
        Dir = new DirectoryInfo(inFileDir);
        if (!Dir.Exists)
        {
            result = "Directory : " + inFileDir + " : Does not Exist";
            return result;
        }
        if (OutFileName == null)    
        //If OutFileName is NUll, provide a
		//Default File Name and Location
        {
            OutFileName = inFileDir + "_1_Merged.pdf";
        }

            // Gather Input Files
        FileList = Dir.GetFiles("*.pdf", SearchOption.AllDirectories);
        InputFileList = new ArrayList();
        foreach (FileInfo FI in FileList) { InputFileList.Add(FI.FullName); }

        if (InputFileList.Count == 0)
        {
            result = "There were no PDF Files in : " + inFileDir;
            return result;
        }

            // Create Processor Object
        try
        {
            oMerger = new PDFProcessor();
            oMerger.LicenseKey = "475D-E1ED-5336-DD76-2C5E-FDAE";    
            //If you are using the BCL Licensing System, enter your License Key Here;
        }
        catch (Exception errCreate)
        {
            result = "Attempt to create PDFProcessor oMerger Failed : Message : " 
                + errCreate.Message + " : Inner Exception : "
				+ errCreate.InnerException;
            return result;
        }
        
            //Run MergeBatch
        try
        {
            oMerger.MergeBatch(InputFileList.ToArray(), OutFileName);
        }
        catch (Exception errRun)
        {
            result = "Attempt to Merge the Documents Failed : Message : " 
                + errRun.Message + " : Inner Exception : " + errRun.InnerException;
            return result;
        }

        result = "Merging Complete : Output File located at : " + OutFileName;
        return result;
    }
          

こちらのメソッドについてご質問や問題が発生した場合、または今後作成してもらいたいMethodsにつ いてのアイディアがありましたら、(メールの件名に"Method of the Week"または"MotW"と記載してい ただき)下記のアドレスまでEメールをお送りください。

jcoe@bcltechnologies.com.

楽しいコーディングを!

To use this method, you need to have easyPDF SDK installed in your machine

ダウンロード

PDF SDK Knowledgebase
 
BCL
© 1993 - , BCL Technologies.
弊社以外の全ての商標は、各所有者に帰属します。