月別アーカイブ: 2014年4月

PDF Viewer SDK で簡単PDFビューア作成(3)

前回、PDFを開くところまでアプリケーションを作成しました。
今回は、ページ送りなどの動作を追加して、もう少しビューアらしくしたいと思います。

ページ移動ボタンの追加

先頭/前/次/最終の各ページへの移動用ボタンを追加していきます。フォームデザイナでボタンを4つ貼り付け、Textプロパティを「<<」「<」「>」「>>」とします。

ボタン追加画面

ボタン追加画面

「開く」ボタンのコードを追加したときと同様に、ボタンクリック動作のメソッドを自動生成してコードを追加して行きます。

private void button2_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoFirstPage();
}
private void button2_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoFirstPage();
}
private void button3_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoPreviousPage();
}
private void button4_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoNextPage();
}
private void button5_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.GotoLastPage();
}

コードはコントロールのページ移動用のメソッドを呼び出すだけです。
これでページ移動動作の実装は完了です。

表示モードの追加

次は表示モードを変更してみます。「幅に合わせる」「全体表示」ボタンを追加します。

表示モードの変更:ボタンの追加

表示モードの変更:ボタンの追加

同じくボタンの動作を作成します。ボタンクリック時のコードは下記を入力します。


private void button6_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.ViewMode = AvsDotNetGuiCtl.AvsViewMode.AVM_FITWIDTH;
}
private void button7_Click(object sender, EventArgs e)
{
   pdfPageViewCtrl1.ViewMode = AvsDotNetGuiCtl.AvsViewMode.AVM_FITPAGE;
}

ここでは、PDFPageViewCtrlのViewModeプロパティを設定することで表示モードを変更しています。AVM_FITWIDTHが幅に合わせる、AVM_FITPAGEがページ全体表示に対応します。

アプリケーションの実行

ではアプリケーションを実行して見ましょう。

ビューア確認画面

ビューア確認画面

ページ移動のボタンで、ページ移動ができるようになっていると思います。
全体表示ボタンを押すと、ページ全体が表示されます。

このように、PDFViewCtrlに用意されたメソッドやプロパティを操作することで、簡単にビューア機能を組み込みアプリケーションから制御ができます。

SDK にはサンプルアプリケーションとして、本格的なビューアのサンプルソースコードも付属していますので、これをそのまま利用することもできます。

作成したPDFビューア(サンプル)

作成したPDFビューア(サンプル)

ご興味のある方はぜひ評価版をお試しください。
以上、PDFViewerCtrlのご紹介でした。
PDF Viewer SDK で簡単PDFビューア作成(4)に続きます。

評価版のお申し込み:
https://www.antenna.co.jp/oem/ViewerSDK/trial.html
お問い合わせ:
SDKはOEM販売となります。OEMご相談窓口へお問い合わせください。


PDF Viewer SDK で簡単PDFビューア作成(2)

前回、コントロールの登録を行い、フォームデザイナへコントロールを貼り付ける準備まで行いました。今回は、実際にコントロールを貼り付け、PDFファイルを開くコードを追加して行きたいと思います。
(各画像をクリックすると、拡大されます)

コントロールの貼り付け前

コントロールの貼り付け前

コントロールの貼り付け

ツールボックスペインから前回登録した”PDFPageViewControl”のアイコンを選びフォーム上でドラッグ&ドロップして貼り付けます。合わせて、OpenFileDialogコントロール、Buttonコントロールも貼り付けておきます。

フォームデザイナ上でレイアウトを調整すると次のような状態になります。
なお、ButtonコントロールのTextプロパティは「開く」に変更しました。

2_layout

コントロール動作の追加

さて次は「開く」ボタンを押すとPDFファイルを開くよう、コントロールの動作を記述していきます。

まず、フォームデザイナ上のButtonコントロールをダブルクリックします。画面が”Form1.cs”のエディタ画面に切り替わり、”button1_Click”メソッドが自動生成されます。

この”button1_Click”メソッドに、下記のコードを追加します。

private void button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
pdfPageViewCtrl1.OpenDocument(openFileDialog1.FileName, “”);
}

3_method

このコードではpdfPageViewCtrl1 が PDFPageViewCtrlのインスタンスで、FileDialogから取得したファイル名をOpenDocument メソッドに渡してPDFファイルを開きます。OpenDocumentメソッドの第二引数はパスワードです。ここではパスワード設定のないPDFのみ開く前提で、空文字列””を指定しておきます。

ここで、ソリューションエクスプローラの「参照設定」に「AvsDotNetGuiCtl」がもしなければ、「参照の追加…」からbin¥Win32ディレクトリにあるAvsDotNetGuiCtl.dllを選択しておきます。「参照設定」に「AvsDotNetGuiCtl」が追加されます。

アプリケーションの実行

さて、以上で実装が完了したので、実際に実行して見たいと思います。
Visual Studio で[デバッグ]-[デバッグなしで開始]を選択すると、アプリケーションが起動します。

4_app1

「開く」ボタンからファイルを選択すると、PDFファイルが表示さます。

5_app2

スクロールバーかマウスホイールでページをスクロールするとページが切り替わります。

6_app3

このように簡単にPDFビューアアプリケーションを作成することができました。

次回は、ページ送りなど機能をもう少し追加していきたいと思います。


PDF Viewer SDK で簡単PDFビューア作成(1)

『Antenna House PDF Viewer SDK』は PDF表示機能をアプリケーションに組み込むための開発者向けSDKです。
SDKに含まれるPDFViewerCtrlはGUIアプリケーションに簡単にPDFビューア機能を組み込むことを目的としたコンポーネントです。本日はPDFViewerCtrlを使用して、簡単なPDFビューアを作成して見たいと思います。.Net/ActiveXで開発が可能ですが、今回は.Net版を利用してC# でフォームアプリケーションを作成します。

開発環境
  • Visual Studio 2010 SP1(Visual C#)
  • .Net Framework 4.0

プロジェクトの作成

開発の準備としてVisual Studioを起動する前に、環境変数”Path”にbin¥Win32 フォルダのパスを追加しておきます(.Net版の場合のみ)。
Visual Studioを起動したら、新しいプロジェクトを作成します。 [ファイル]-[新規作成]-[プロジェクト]から「新しいプロジェクト」ダイアログを開きます。

Visual Studio 起動画面

Visual Studio 起動画面

今回は C#フォームアプリケーションとして開発するので、VisualC#の「Windowsフォーム アプリケーション」を選択します。
適当なプロジェクト名(ここでは” AvsDotNetGuiSample”)を入力し[OK]を押すと、プロジェクトが作成されます。

作成されたプロジェクト画面

作成されたプロジェクト画面

PDFViewerCtrlの登録

次にPDFViewerCtrlをツールボックスから選択しフォームデザイナ上で貼り付けられるようにするためにVisual Studioに登録します。

メニューから[ツール]-[ツールボックス アイテムの選択]を選ぶと「ツールボックスアイテムの選択」ダイアログが表示されます。このダイアログで、右下の「参照…」ボタンを押してbin¥Win32ディレクトリにある AvsDotNetGuiCtl.dllを選択します。

ツールボックス:アイテム選択画面

ツールボックス:アイテム選択画面

すると「.Net Frameworkコンポーネント」タブに “PDFPageViewCtrl” “PDFThumbnailCtrl”が表示されます。それぞれ、PDF表示用コントロール、サムネイル表示用のコントロールになります。今回は“PDFPageViewCtrl”を利用していきます。

“PDFPageViewCtrl” “PDFThumbnailCtrl”にチェックが付いていることを確認して[OK]を押します。

ダイアログが閉じたあと Visual Studioのツールボックスペインを開くと、“PDFPageViewCtrl” “PDFThumbnailCtrl”のアイコンが追加されているのを確認してください。

アイコン追加確認画面(画像右下)

アイコン追加確認画面(画像右下)

以上で、コントロールを貼り付ける準備が出来ました。

次回は、実際にコントロールを貼り付けて、PDFファイルをオープンするコードを追加して行きたいと思います。


AH Formatter 事例紹介について

今回は、『AH Formatter』を利用した事例についてになります。
おかげさまで『AH Formatter』を利用いただけるユーザー様が増え、
弊社製品ページではそのようなユーザーの皆様方から
ご紹介をいただいたソリューション事例を紹介しています。

導入事例についての詳細は下記ページよりご覧ください。
AH Formatter 導入事例紹介

なお、アンテナハウスでは『AH Formatter』を
現在、使用いただいているユーザーの皆様方からの
導入事例紹介への協力を随時募集しております。

多くの皆様に製品の事例・利便性を知っていただき、
また、我々も協力をいただく中でうかがったご意見から、
今以上に良い製品へとクォリティアップを追求するために
是非ともご協力をお願いいたします。

導入事例ページの掲載内容についてのお問い合わせ、
導入事例への応募・詳細につきましては
弊社システム営業グループ(sis@antenna.co.jp)までご連絡ください。
 
 


[XSL-FO] Formatter サポートが語る orphans と widows プロパティの話

こんにちは。
AH Formatterのサポート担当です。

今日はうっかり忘れがちなorphansとwidowsプロパティのお話です。
(….うっかり忘れるのは私だけかもしれませんが)

CSSやXSLで定義されているorphansとwidowsプロパティは次のように説明があります。
The “orphans” property specifies the minimum number of lines of a paragraph that must be left at the bottom of a page. The “widows” property specifies the minimum number of lines of a paragraph that must be left at the top of a page.

orphansプロパティはページ下に残される段落の最低の行数、widowsはページの1番上に残される段落の最低の行数を指定するということになります。
図1 を見ると解りやすいかと思います。

【図1 orphansとwidows】
【図1 orphansとwidows】

このorphans/widowsというプロパティの値は規定値が”2″に決められています。
これは、段落の始まりの1行だけがページ下にあったり、段落の最後の1行だけがページ上部にあるのは組版ルール上好ましくないとされているためです。
そのため、orphans=”2″の状態で組版すると図2 のような結果になります。

【図2 orphans=
【図2 orphans=”2″での組版結果】

Page1の下には1行分の空きがありますが、orphans=”2″なのでここに入るはずだった行(文字列)は次ページの先頭に移動します。その結果Page1の下には空きが発生します。
この段落でorphans=”1″を指定すると、図3 のようになります。

【図3 orphans=
【図3 orphans=”1″での組版結果】

widowsも同じです。

【図4 widows=
【図4 widows=”2″での組版結果】

図4 で最後の段落は4行分のデータです。普通に並べるとPage1に3行、Page2に1行と入るはずですが、widows=”2″にしたがってPage2のtopに1行だけ配置することはできないのでPage1の最後の行はPage2に移動します。結果的にPage1の下には1行分の空きが発生することになります。
これも、widows=”1″を指定すると図5 のようになります。

【図5 widows=
【図5 widows=”1″での組版結果】

※ここからうっかりポイント

このプロパティは段落の中に画像を埋め込んだ場合も適用されます。
例えば次のようなXSL-FOの記述があったします。
<fo:block>
<fo:external-graphic src=”1.jpg”/>
<fo:external-graphic src=”2.jpg”/>
</fo:block>

fo:external-graphicで埋め込まれた画像はインラインオブジェクトなので文字列と同様に行エリアを生成します。画像の大きさにもよりますが、これを組版したとき、次のような結果になる場合があります。

【図6 画像を2つ埋め込んだケース】
【図6 画像を2つ埋め込んだケース】

この例では1つの画像が1行分になります。
orphans=”2″,widows=”2″のままだと1行だけの配置はできないので最低の2行を同じページに配置しなくてはなりません。したがってこのように画像2つ(2行)が並んだ結果、ページからオーバーフローしてしまうことがあります。
こういう場合もorphans=”1″,widows=”1″を指定することで図7 のように解決します。

【図7 orphans=
【図7 orphans=”1″ widows=”1″ を指定して解決】

他にも、
<fo:external-graphic src=”embedded.pdf#page=3-5″/>
AH Formatterの拡張機能を使ってこのようなPDFの連続ページ埋め込みを行った場合も同じです。

先日、お客様からこういったお問い合わせを受けて
orphans/widowsの仕業だということを思い出すのに3時間ほどかかってしまったのでした。
 
 


AH Formatter の運用事例:オライリー様の電子出版物(PDF)

コンピュータ技術書籍の出版で有名な「O’Reilly Media, Inc.(オライリー)」様の電子書籍(PDF)には弊社の『Formatter(XSL Formatter、AH Formatter)』が使用されているものが多数あります。以下の電子書籍は無料で入手できますので、『Formatter』の組版の実例としてもご覧いただけたら幸いです。

HTML5 for Publishers (By Sanders Kleinfeld)
使用されている Formatter:XSL Formatter V4.3 R1 (4,3,2008,0424) for Linux

Accessible EPUB 3 (By Matt Garrish)
使用されている Formatter:XSL Formatter V4.3 R1 (4,3,2008,0424) for Linux

Open Government (By Daniel Lathrop, Laurel Ruma)
使用されている Formatter:AH CSS Formatter V6.0 MR2 for Linux64 : 6.0.2.5372 (2012/05/16 18:26JST)
この書籍は https://github.com/oreillymedia/open_government で無償提供されています。

関連記事:
けっこう世界で使われている AH Formatter(その2)オライリーの書籍の 75%(2013/3/28)


『瞬簡PDF 書けまっせ 6』を使ってみよう(3)

前々回 前回 に続き『瞬簡PDF 書けまっせ 6』で、扶養控除申告書に記入して行きます。

生年月日をきれいに配置する

生年月日の記入欄は、途中に ・ があったり、年 月 日 があらかじめ入っていたりしますが、これらも文字数に含めて桁割りをするときれいに配置できます。

生年月日の文字が入っている欄に記入してみましょう。
記入欄をクリックしてテキストボックスを作り、テキストボックスの幅を、実際に数字を記入する範囲に縮めます。

ketawari00

年と月を含めた桁数で桁割りを指定して数字を入力します。
年月日それぞれ2桁なので8桁になります。年月の文字位置には空白を入力してください。

ketawari01

数字の間隔を詰めたい場合は、桁数を増やして、増やした分を空白で調整します。

ketawari03

同じ内容の記入欄が複数あるとき

同じ内容を記入する欄が複数あるときは、コピーして貼り付けると簡単に記入できます。

コピーしたいテキストボックスを選択してから、右クリックすると出るメニューで「コピー」をクリックします。

copy00
copy01

コピーしたテキストボックスを貼り付けたい場所の左上隅を右クリックして、メニューで「貼り付け」をクリックすると、テキストボックスが貼り付けられます。再度「コピー」を実行しなければ、何度でも同じ内容を「貼り付け」することができます。

copy02

カーソルキーで位置を調整できます。表示倍率を大きくすることで、精密に位置合わせすることができます。また、[Ctrl]キーを押しながらカーソルキーを押すことで、更に細かく位置を調整できます。

copy03

扶養控除申告書を印刷する

記入ができたら印刷しましょう。

h26-01

PDFの扶養控除申告書内容と記入した内容を重ねて、記入済の状態で印刷できます。
また、印刷された扶養控除申告書があるなら、記入した内容のみを印刷することもできます。

印刷画面では、設定項目と共に印刷結果のプレビューが表示され、印刷の設定を変更すると即座にプレビューに反映されます。

print00

「オブジェクトのみ出力する」をチェックすると、PDF内容は印刷されず、記入した内容のみが印刷されます。

翌年の扶養控除申告書で再利用する

記入した内容のみを保存する専用のファイル形式(オブジェクトテンプレート)を用意しています。オブジェクトテンプレートで保存した記入内容は、他のPDFに読み込んで再利用できます。

Object-template00

平成26年用に記入した内容を保存したオブジェクトテンプレートを、平成27年の扶養控除申告書に読み込めば、変更のあった部分だけを修正することで記入完了です。

Object-template01

このように『瞬簡PDF 書けまっせ 6』を使えば、申告書などに効率よく記入できて、記入した内容の再利用も簡単です。この便利さをぜひ体験してください。


『瞬簡PDF 書けまっせ 6』を使ってみよう(2)

前回に続き『瞬簡PDF 書けまっせ 6』で、扶養控除申告書に記入して行きます。

複数ヶ所の住所の入力

住所は、いろいろな書類で何度も記入するものなのでどこかに登録しておいて簡単に呼び出せると便利です。扶養控除申告書では住所の記入欄が複数あるので、文字や図形を登録しておいて簡単に再利用できる「データトレー」機能を使いましょう。

データトレーに住所を登録

住所を1つ入力したら、入力した住所をデータトレーに登録しましょう。
住所を入力したテキストポックスを右クリックし、メニューの「データトレー登録」をクリックすると入力した住所がデータトレーに登録されます。

data-tray00
data-tray01

データトレーには、テキストだけでなく、画像や図形も登録できます。

データトレーから住所を挿入

別の住所記入欄に作ったテキストボックスを右クリックして、メニューで「データトレー表示」をクリックするとデータトレーが表示されます。

data-tray02

データトレーで、登録されている住所をクリックして選択し、[ 選択位置に挿入 ]をクリックすると、住所がテキストボックスに入力されます。

data-tray03

data-tray04

この欄では郵便番号は不要なので削除します。
このテキストボックスをデータトレー登録すれば、郵便番号なしの住所も登録されるので、入力欄により使い分けることができます。

データトレーに登録済みのテキストデータは、データトレー上で修正することもできます。
また、データトレー上で新規にテキストを登録することもできます。

配偶者の所得の見積額を記入

金額などの数値は、数字だけ入力しておき、3桁ごとのカンマ挿入などは表示形式の指定で自動化しておくと便利です。

まず、枠内をクリックしてテキストボックスを作ります。
この枠には「円」が印刷されているので、円に数字が被らないよう、テキストボックスを狭めます。テキストボックスの四辺をドラッグすることで大きさを変えられます。

suchi

数値を入力したら、文字配置を右寄せに変更し、表示形式で「, 桁区切り」を指定します。

suchi01

表示形式で、マイナスの表現方法や%表示、日付の表示形式などいろいろな指定ができます。

また、テキストボックスには計算式を入れることもできますが、扶養控除申告書では計算式が必要となる記入欄がないので、別の機会にご紹介します。


『瞬簡PDF 書けまっせ 6』を使ってみよう(1)

PDFに文字記入・画像貼り付けなどが簡単手軽にできるソフトとして好評の『書けまっせPDF5』を機能強化し、使いやすさに磨きをかけた新バージョン『瞬簡PDF 書けまっせ 6』(シュンカン ピーディーエフ カケマッセ 6)の販売を開始しましたので、便利な機能についてご紹介します。

申告書などの記入に便利です

例えば、毎年末に提出する扶養控除申告書は、国税庁のWebサイトからPDFを入手できます。申告書内容は大部分が毎年同じなので、一度記入した内容を保存しておいて再利用できると便利ですね。
『瞬簡PDF 書けまっせ 6』を使うと、PDFに文字や図形を記入でき、記入した内容の再利用も簡単にできます。今回はこの手順について何度かに分けて紹介します。

PDFを開く

『瞬簡PDF 書けまっせ 6』で、扶養控除申告書のPDFを開くと、PDF内容が表示されます。

用紙PDFを開く

文字の記入

『瞬簡PDF 書けまっせ 6』では、PDF上に文字を記入するための枠(テキストボックス)を作って文字を記入します。

テキストボックスは、文字を記入したい範囲をドラッグすることで簡単に指定できます。また、PDFに四角い枠線があるなら、その枠内をクリックするだけで枠に合わせてテキストボックスができます。

text01
テキストボックスが作られると、すぐ文字を入力できます。

文字のフォント名やサイズ、文字色や、強調、斜体、下線、取消線といった文字修飾も簡単に指定できます。

入力した文字列で、文字修飾を指定したい部分をドラッグして選択し、文字修飾ボタンをクリック、フォント名を選択、文字サイズを選択または入力するだけです。

文字飾り

文字サイズの変更

図形の記入

図形の記入は、図形のパレットを出して図形を指定し、PDF上の図形を置きたい範囲をドラッグするだけです。

図形パレット

図形を貼り付ける

図形は、線の色や太さの変更や、閉じた線の内側の塗りつぶしなどが指定できます。

細かい図形を貼りたいときなどは、表示を拡大することで精密な位置合わせやサイズに調整ができます。

表示の拡大縮小

表示倍率は、いつでも手軽に変更できます。次のような操作で、表示の拡大縮小ができます。

  • [Ctrl]キーを押しながらマウスのホイールを前後に回すことで表示を拡大縮小できます
  • ドラッグした範囲を拡大する「キーマーズーム」機能があります
  • ステータスバーにあるズームスライダーで拡大縮小できます
  • 倍率を数値指定して拡大縮小できます

TextPorterのSolaris 8, 9のサポート終了について

 TextPorterは、サーバ組込用のテキスト抽出エンジンで、Word, Excel, PDFなど色々なアプリケーションのファイルから文字列を抜き出します。

 すでに、今年の1月に、このブログでもご案内申し上げました通り、まことに勝手ながら、TextPorterは、Solaris 8, 9のサポートを終了し、動作保証の対象外とさせていただきました。
 最新版以前のバージョンにつきましても、まことに勝手ながら、Solaris 8, 9は、動作保証の対象外とさせていただきました。
 したがいまして、動作保証は、Solaris 10以降になります。
 どうしてもいう場合は、弊社にお問い合わせ下されば、善後策を協議することができると考えております。
 よろしくお願いいたします。

 また、将来的には、全プラットフォームで32bit版の新たなバージョンやメンテナンスリリースの提供をやめる方向で考えております。できれば、来年に、実施したいと考えております。
 というのも、すでにクラウドなどサーバ用途でお使いのお客様は、たとえば、
・Solaris SPARCの32bit版からLinuxの64bit版へ移行する
・Windowsの32bit版からWindowsの64bit版に移行する
など、32bitから64bitへの移行が進んでおりまして、32bit版の需要は減ってきているからです。
 64bit版への移行がまだお済でないお客様には、64bit版への移行を進めていただきたいと考えております。
 よろしくお願いいたします。

参考:
 オラクルの資料によりますと、
Solaris 8は、2000年2月5日出荷。2009年3月通常サポート終了
Solaris 9は、2002年3月出荷。2011年10月通常サポート終了
となっております。

 TextPorterについての詳しい説明は、
TextPorter
をご覧ください。
 評価版もご用意しております。
TextPorter 評価版のお申し込み
から、お申し込みください。

 アンテナハウスのシステム製品につきましては、事前に技術相談会を行っております。お気軽にお問い合わせください。
 詳しくは、
アンテナハウス システム製品技術相談会
をご覧の上、お申し込みください。


Pages: 1 2 Next