C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[8]: PDFの結合


(過去ログ 31 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■14662 / inTopicNo.1)  PDFの結合
  
□投稿者/ こなつ (1回)-(2008/02/25(Mon) 09:54:54)

分類:[VB.NET/VB2005] 

質問です。

現在二つのPDFファイルを結合するプログラムをVB.netの2003で作成しようしています。
色々と調べてみたのですが、それらしいものが見つからない為、手詰まりになっています。
有償ソフトを使ったやり方は見つけたのですが、なるべく有償ソフトを使わずに行いたいのです。
どなたかやり方を知っていれば教えていただきたいです。
引用返信 編集キー/
■14665 / inTopicNo.2)  Re[1]: PDFの結合
□投稿者/ PATIO (5回)-(2008/02/25(Mon) 10:26:07)
No14662 (こなつ さん) に返信
> 質問です。
>
> 現在二つのPDFファイルを結合するプログラムをVB.netの2003で作成しようしています。
> 色々と調べてみたのですが、それらしいものが見つからない為、手詰まりになっています。
> 有償ソフトを使ったやり方は見つけたのですが、なるべく有償ソフトを使わずに行いたいのです。
> どなたかやり方を知っていれば教えていただきたいです。

そもそも、御自身ではどういうやり方を考えておられるのでしょう?
ライブラリを期待しているなら多分無償のライブラリと言うのは無いと思います。
そもそもアドビ社のフォーマットですから無償と言うのは考えにくい。
(もしあるなら私も知りたいです)
自分でフォーマットの内容を理解した上で地道に組み立てるのであれば、
出来ない事は無いと思います。
PDFのファイルフォーマットはWebで調べれば、ある程度はわかると思います。
そこから先は自力で何とかしないと駄目なんじゃないでしょうか。

引用返信 編集キー/
■14679 / inTopicNo.3)  Re[2]: PDFの結合
□投稿者/ シャノン (301回)-(2008/02/25(Mon) 11:31:15)
No14665 (PATIO さん) に返信
> そもそも、御自身ではどういうやり方を考えておられるのでしょう?
> ライブラリを期待しているなら多分無償のライブラリと言うのは無いと思います。
> そもそもアドビ社のフォーマットですから無償と言うのは考えにくい。
> (もしあるなら私も知りたいです)
> 自分でフォーマットの内容を理解した上で地道に組み立てるのであれば、
> 出来ない事は無いと思います。
> PDFのファイルフォーマットはWebで調べれば、ある程度はわかると思います。
> そこから先は自力で何とかしないと駄目なんじゃないでしょうか。

ある程度というか、PDFのリファレンスはAdobeによって完全に無償公開されています。
http://www.adobe.com/devnet/pdf/pdf_reference.html

もっとも、1,000ページ以上にも及ぶ英文ですから、日本語で「ある程度」書かれたドキュメントを見つけることも重要でしょうが。

で、フリーのライブラリもありました。
日ごろお世話になっている Programming Library の管理人さん作です。
http://homepage3.nifty.com/e-papy/pdftool/index.html
ただ、このライブラリはソースが公開されていませんし、ちょっと古いものなので、最近のPDFには対応していません。

「無いでしょう」というご意見に「ありますよ」と反例を示しただけに留まってしまって恐縮ですが、海外のサイト等含めて根気よく探せば見つかるかもしれません。
引用返信 編集キー/
■14680 / inTopicNo.4)  Re[3]: PDFの結合
□投稿者/ PATIO (10回)-(2008/02/25(Mon) 11:36:02)
No14679 (シャノン さん) に返信

> で、フリーのライブラリもありました。
> 日ごろお世話になっている Programming Library の管理人さん作です。
> http://homepage3.nifty.com/e-papy/pdftool/index.html
> ただ、このライブラリはソースが公開されていませんし、ちょっと古いものなので、最近のPDFには対応していません。

おおっ、有ったんですね。
個人的なツールに使うとかなら多分良さそうかな。
もっとも新しい形式で保存されたPDFは追加された機能を使っていなくても読めないとかなら
ちょっと厳しいかも。
フリーで提供してくれているような方もいらっしゃるんですねぇ。
いえ、あの膨大な仕様をライブラリ化するってだけでもかなり大変そうなので
無償で提供しているような人はいないだろうと思ってたんですけれど。

引用返信 編集キー/
■14681 / inTopicNo.5)  Re[1]: PDFの結合
□投稿者/ IIJIMAS (69回)-(2008/02/25(Mon) 11:43:35)
2008/02/25(Mon) 11:46:34 編集(投稿者)

No14662 (こなつ さん) に返信
> 質問です。
>
> 現在二つのPDFファイルを結合するプログラムをVB.netの2003で作成しようしています。
> 色々と調べてみたのですが、それらしいものが見つからない為、手詰まりになっています。
> 有償ソフトを使ったやり方は見つけたのですが、なるべく有償ソフトを使わずに行いたいのです。
> どなたかやり方を知っていれば教えていただきたいです。

Adobe - PDF Developer Center: PDF reference
http://www.adobe.com/devnet/pdf/pdf_reference.html
のページのリンクから
PDF Reference, Sixth Edition, version 1.7 (PDF, 31.0M)
をダウンロードできます。

PDFはテキストファイルとしてエディタで開いてもオブジェクトレベルで暗号化圧縮等されていなければ構造がわかります。
オブジェクトという断片で構成されていて、ページの構造は大まかに
---------------
Catalog
├Pages
│├Page
│├…
│└Page
├Pages
├…
└Pages
---------------
のようになっています。(Pagesは通常1つのことが多いです。)
オブジェクトの参照番号で構造が実現されています。
のようになっているので、結合したいのであれば新しいPDFに元のPDFの各オブジェクトを含めて参照番号をうまく振り返るだけです。

#追記:
#もたもた入力してたら…
#シャノンさんとかぶってしまいました…
引用返信 編集キー/
■14696 / inTopicNo.6)  Re[4]: PDFの結合
□投稿者/ こなつ (2回)-(2008/02/25(Mon) 15:41:37)
No14680 (PATIO さん) に返信

PATIOさん、IIJIMASさん、シャノンさん返信ありがとうございます。

色々と教えていただいといてなんですが、今現在iText.netで作成を試みていますがうまくいきません。

-------------------------------------------------------------
Sub PDFtest()
Dim reader1 As PdfReader
Dim reader2 As PdfReader
Dim copy As PdfCopyFields
Dim outfile As FileOutputStream

reader1 = New PdfReader("TestFile_01.pdf")
reader2 = New PdfReader("TestFile_02.pdf")
outfile = New FileOutputStream("TestFile_out.pdf")

copy = New PdfCopyFields(outfile) '←ここら辺がうまくいかないのです。
copy.AddDocument(reader1)
copy.AddDocument(reader2)
copy.Close()

End Sub
-------------------------------------------

上記のようなソースになっているのですが、うまく動いてくれません。
何かご指摘があればお願いします。
引用返信 編集キー/
■14702 / inTopicNo.7)  Re[5]: PDFの結合
□投稿者/ やじゅ (183回)-(2008/02/25(Mon) 19:08:36)
No14696 (こなつ さん) に返信
> copy = New PdfCopyFields(outfile) '←ここら辺がうまくいかないのです。
> 上記のようなソースになっているのですが、うまく動いてくれません。

うまく動いてくれませんが、どのようなことなのか説明してください。

プログラム的におかしいところは見えませんね。
ファイル名を単純(Test.pdf)なものにしてみるとか。
引用返信 編集キー/
■14703 / inTopicNo.8)  Re[6]: PDFの結合
□投稿者/ myugaru (14回)-(2008/02/25(Mon) 19:28:34)
myugaru さんの Web サイト
No14696 (こなつ さん) に返信
PDF結合はサンプルがありますよ。確認されましたか?

http://www.ujihara.jp/iTextdotNET/ja/examples.html


引用返信 編集キー/
■14794 / inTopicNo.9)  Re[6]: PDFの結合
□投稿者/ こなつ (3回)-(2008/02/27(Wed) 08:56:08)
No14702 (やじゅ さん) に返信


説明不足ですみません。

>outfile = New FileOutputStream("TestFile_out.pdf")
>copy = New PdfCopyFields(outfile)

FileOutputStreamからPdfCopyFieldsにする際に変換できません。
ファイル名を変えてみても変わりはありませんでした。

サンプルにしたプログラムがC#なのですが、私はC#がまったくわからない為このようなことになっています。
引用返信 編集キー/
■14795 / inTopicNo.10)  Re[7]: PDFの結合
□投稿者/ こなつ (4回)-(2008/02/27(Wed) 08:57:35)
No14703 (myugaru さん) に返信
> ■No14696 (こなつ さん) に返信
> PDF結合はサンプルがありますよ。確認されましたか?
>
> http://www.ujihara.jp/iTextdotNET/ja/examples.html
>
>
はい。そのサイトは確認しています。

しかしサンプルがC#の為、私にはさっぱりわからずてこずっている状態です。
引用返信 編集キー/
■14809 / inTopicNo.11)  Re[7]: PDFの結合
□投稿者/ こなつ (5回)-(2008/02/27(Wed) 11:53:58)
色々と教えていただきありがとうございました^^

何とか自力で解決することができました。
解決済み
引用返信 編集キー/
■14814 / inTopicNo.12)  Re[8]: PDFの結合
□投稿者/ やじゅ (192回)-(2008/02/27(Wed) 13:01:24)
No14809 (こなつ さん) に返信
> 色々と教えていただきありがとうございました^^
>
> 何とか自力で解決することができました。

出来れば、気になるので解決方法を記載してください。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -