PDFを作成する
C++ コードの抜粋
EasyPDFPrinter::IPrinterPtr oPrinter;
oPrinter.CreateInstance("easyPDF.Printer.6");
EasyPDFPrinter::IPrintJobPtr oPrintJob = oPrinter->GetPrintJob();
oPrintJob->PrintOut("C:\\input.doc", "C:\\output.pdf");
C++ のサンプルプロジェクト
PDFを処理する (PDFを統合、PDFを分割、PDFからテキストを抽出など)
- PDFプロセッサオブジェクトの仕様を読む
このプオブジェクトで、既存のPDFファイルのポスト-プロセス(すなわち、複数のPDFファイルを1つに統合、1つのPDFファイルを2つに分割、PDFファイルを暗号化/非暗号化する様な)を実行することができます。
C++ サンプルプロジェクト
PDFファイルを統合するためのC++ コードの抽出
EasyPDFProcessor::IPDFProcessorPtr oProcessor;
oProcessor.CreateInstance("easyPDF.PDFProcessor.6");
//Merge を使用して2つのファイルを統合します。
oProcessor->Merge("C:\\input1.pdf", "C:\\input2.pdf", "C:\\merged.pdf");
//MergeBatch を使用して2つ以上のファイルを統合します。
SAFEARRAYBOUND bound;
bound.lLbound = 0;
bound.cElements = 3;
SAFEARRAY *inputFiles = SafeArrayCreate(VT_VARIANT, 1, &bound);
std::string filesToMerge[] = { "C:\\input1.pdf", "C:\\input2.pdf", "C:\\input3.pdf" };
int numFiles = sizeof(filesToMerge) / sizeof(std::string);
_variant_t var;
_variant_t inputArray;
char *file;
_bstr_t str;
long ix;
var.vt = VT_BSTR;
for (int i = 0; i < numFiles; i++)
{
ix = i;
file = const_cast<char *>(filesToMerge[i].c_str());
str = file;
var.bstrVal = str;
SafeArrayPutElement(inputFiles, &ix, &var);
}
inputArray.vt = VT_ARRAY|VT_VARIANT;
inputArray.parray = inputFiles;
oProcessor->MergeBatch(inputArray, "C:\\merged.pdf");
PDFを分割するためのコードの抜粋
EasyPDFProcessor::IPDFProcessorPtr oProcessor;
oProcessor.CreateInstance("easyPDF.PDFProcessor.6");
//3 ページ目でドキュメントを分割します。
oProcessor->Split("C:\\input.pdf", "C:\\part1.pdf", "C:\\part2.pdf", 3);
PDFからテキストを抽出するためのコードの抜粋
EasyPDFProcessor::IPDFProcessorPtr oProcessor;
oProcessor.CreateInstance("easyPDF.PDFProcessor.6");
//ExtractText を使って、1~4ページからテキストを物理的ファイルへ抽出します。
oProcessor->ExtractText("C:\\input.pdf", "C:\\extracted.txt", NULL, 0, 3, NULL, NULL);
//ExtractText2 を使って、1ページ目のBounding box からストリング変数へ抽出します。
std::string text = oProcessor->ExtractText2("C:\\input.pdf", 0, 0, 0, 300, 300, NULL);
PDFをラスタライズする
C++ コードの抜粋
EasyPDFConverter::IPDFConverterPtr oConverter;
oConverter.CreateInstance("easyPDF.PDFConverter.6");
EasyPDFConverter::IPDF2ImagePtr oPDF2Image = oConverter->GetPDF2Image();
oPDF2Image->Convert("C:\\input.pdf", "C:\\output.jpg", NULL, NULL, NULL);
C++ のサンプルプロジェクト
PDFフォームフィールドを処理する
C++ コードの抜粋
input.pdf フォームをダウンロードする (下記、ハイライト部)
// この例は、1つのPDFテンプレート内の最初のに2つのフィールドを取り出します。
// その2つのフィールドは、名前とアドレスです。
// そして"BCL Technologies" と "Santa Clara, CA"という値が入っています。
EasyPDFDocument::IPDFDocumentPtr oDocument;
oDocument.CreateInstance("easyPDF.PDFDocument.6");
oDocument->Open("C:\\input.pdf");
// PDFから全てのフォームフィールドを取得します。
EasyPDFDocument::IFormFieldsPtr oFormFields = oDocument->FormFields;
// 1番目のフォームフィールドを取得します。
EasyPDFDocument::IFormFieldPtr oFormField = oFormFields->Item[0];
EasyPDFDocument::ITextFieldPtr oTextField;
if (oFormField->Type == EasyPDFDocument::DOC_FRMTYPE_TEXT && oFormField->Name == _bstr_t("Name"))
{
// 名前を "BCL Technologies" に設定します。
oTextField = oFormField;
oTextField->Value = "BCL Technologies";
}
// 2番目のフォームフィールドを取得します。
oFormField = oFormFields->Item[1];
if (oFormField->Type == EasyPDFDocument::DOC_FRMTYPE_TEXT && oFormField->Name == _bstr_t("Address"))
{
// アドレスを "Santa Clara, CA" に設定します。
oTextField = oFormField;
oTextField->Value = "Santa Clara, CA";
}
oDocument->SaveAs("C:\\output.pdf");
C++ のサンプルプロジェクト