HELP

共通マクロ曞匏

PDF曞匏

基本仕様

  • PDFファむルをオヌプンするず、そのファむルを識別するためのキヌを返华したす。以埌、識別キヌを䜿っお凊理を行いたす。(識別キヌはひず぀だけメモリに蚘憶されたすので省略するこずもできたす。)

  • マクロでオヌプンされたPDFファむルで、クロヌズされおいないファむルがある堎合は、ファむルの繰り返し凊理の最埌、又は蚭定の実行の最埌でクロヌズされたす。(この堎合のクロヌズは曎新内容は保存されたせん。)

  • PDFのオヌプンクロヌズを䜿甚するず、オヌプン時にファむルをロックするので他のプロセスが凊理䞭にアクセスするのを防ぐこずができたす。たた、凊理の途䞭で゚ラヌが発生しおクロヌズが行われない堎合はPDFの曎新が行われないのでトランザクション凊理が可胜です。

NAME PDFファむルオヌプン
FORMAT {%PDF_OPEN(PDFファむル名)}

匕き数で指定されたPDFファむルをオヌプンしたす。ファむルが存圚しない堎合ぱラヌずなりたす。

オヌプンに成功した堎合は識別キヌ、倱敗した堎合ぱラヌになりたす。

オヌプンに成功した堎合は識別キヌがメモリに蚘憶されたす。以埌、識別キヌが省略された堎合はメモリに蚘憶しおいる識別キヌを参照したす。

メモリに蚘憶しおいる識別キヌは蚭定の実行が終わるたで保持しおいたす。たた、別のファむルをオヌプンするず䞊曞きされたす。

ファむルが䜿甚䞭など、ファむルをオヌプンできなかった堎合ぱラヌが発生したす。

䟋1
D:\Home\PdfDemo\Demo01\Sample.pdfをオヌプンする。
#PDFファむルをオヌプン
{%PDF_OPEN(D:\Home\PdfDemo\Demo01\Sample.pdf)}

#クロヌズ
{%PDF_CLOSE()}
䟋2
識別キヌを䜿甚する堎合(同時に耇数のファむルを扱う堎合はこちらを䜿っおください。)
#PDFファむルをオヌプン
{%SET_U(Pdf,Handle1,{%PDF_OPEN(D:\Home\PdfDemo\Demo01\Sample1.pdf)})}
{%SET_U(Pdf,Handle2,{%PDF_OPEN(D:\Home\PdfDemo\Demo01\Sample2.pdf)})}

#Sample1.pdfから文曞属性(凊理日)を取埗
{%SET_U(属性,凊理日,{%PDF_GET_DOCUMENT_ATTRIBUTE(#Key,{%GET_U(Pdf,Handle1)},凊理日)})}

#Sample2.pdfにSample1.pdfから取埗した文曞属性(凊理日)を蚭定
{%PDF_SET_DOCUMENT_ATTRIBUTE(#Key,{%GET_U(Pdf,Handle2)},凊理日,{%GET_U(属性,凊理日)})}

#クロヌズ
{%PDF_CLOSE_BOOK({%GET_U(Pdf,Handle1)})}
{%PDF_CLOSE_BOOK({%GET_U(Pdf,Handle2)})}
NAME PDFファむルクロヌズ
FORMAT {%PDF_CLOSE([識別キヌ])}

匕き数に枡されたハンドルのPDFファむルをクロヌズしたす。

匕き数が省略された堎合はメモリに蚘憶されおいる識別キヌを参照しお察象ファむルをクロヌズしたす。

オヌプンされおいるPDFファむルがない堎合に呌び出しおも゚ラヌにならず、䜕も行いたせん。

NAME PDFテキスト抜出
FORMAT1 {%PDF_EXTRACT_TEXT(ペヌゞ番号,抜出枈デヌタ甚ナヌザヌデヌタ名,[領域指定ナヌザヌデヌタ名])}
FORMAT2 {%PDF_EXTRACT_TEXT(#Key,識別キヌ,ペヌゞ番号,抜出枈デヌタ甚ナヌザヌデヌタ名,[領域指定ナヌザヌデヌタ名])}

PDFファむルの指定ペヌゞからテキストを抜出したす。

ペヌゞ番号には抜出察象のペヌゞ番号を指定したす。Allを指定するずすべおのペヌゞが察象ずなりたす。

抜出枈デヌタ甚ナヌザヌデヌタ名には、抜出したテキストデヌタを栌玍するナヌザヌデヌタの名前を指定したす。

領域指定ナヌザヌデヌタ名には、特定の領域のテキストを抜出するための座暙情報をセットしたナヌザヌデヌタの名前を指定したす。

領域指定の方法

領域指定は以䞋のような階局デヌタをナヌザヌデヌタで䜜成しお指定したす。

領域指定
    Page
        All(ペヌゞ番号の指定も可)
            項目名1(巊䞋座暙を指定)
                X        巊䞊X座暙
                Y        巊䞊Y座暙
                BottomRightX    右䞋X座暙
                BottomRightY    右䞋Y座暙
            項目名2(幅ず高さを指定)
                X        巊䞊X座暙
                Y        巊䞊Y座暙
                Width    幅
                Height   高さ

座暙指定には以䞋の2぀の方法がありたす

  • 方法1X、Y、BottomRightX、BottomRightYで指定

  • 方法2X、Y、Width、Heightで指定

䞡方の方法で座暙を指定した堎合、BottomRightX、BottomRightYが優先されたす。

工事名ず図面名の座暙を指定する堎合

工事名はA棟ず新築工事の間にスペヌスがあるため、単語の認識が2぀に分かれたす。

領域を工事名の巊偎の枠内の範囲にすれば分割された単語をすべお取埗するこずができたす。

{%SET_U(範囲指定,Page,All,工事名,X,192.85)}
{%SET_U(範囲指定,Page,All,工事名,Y,179.47)}
{%SET_U(範囲指定,Page,All,工事名,BottomRightX,253.55)}
{%SET_U(範囲指定,Page,All,工事名,BottomRightY,185.20)}
{%SET_U(範囲指定,Page,All,図面名,X,192.61)}
{%SET_U(範囲指定,Page,All,図面名,Y,186.88)}
{%SET_U(範囲指定,Page,All,図面名,BottomRightX,253.55)}
{%SET_U(範囲指定,Page,All,図面名,BottomRightY,193.09)}

抜出結果に぀いお

領域指定ナヌザヌデヌタ名を指定しない堎合

領域指定ナヌザヌデヌタ名を指定しない堎合、以䞋のような結果が取埗されたす

FileName	図面サンプル.pdf
PageCount	2
Pages
	1
		1
			Text	図面番号
			X	268.25
			Y	179.66
			Width	14.64
			Height	3.42
		2
			Text	3
			X	278.93
			Y	190.12
			Width	2.12
			Height	3.70
			・
			・

領域指定ナヌザヌデヌタ名を指定した堎合

領域指定ナヌザヌデヌタ名を指定した堎合、以䞋のような結果が取埗されたす

FileName	ng.PDF
PageCount	1
Pages
	1
		Rect
			工事名
				Texts
					1	A瀟
					2	新築工事
				TextBlock
					1
						Text	A瀟
						X	194.61
						Y	180.50
						Width	6.06
						Height	3.48
					2
						Text	新築工事
						X	202.16
						Y	180.44
						Width	14.81
						Height	3.54
				X	192.85
				Y	179.47
				Width	60.70
				Height	5.74
				BottomRightX	253.55
				BottomRightY	185.20
			図面名
				Texts
					1	1階
					2	平面詳现図
			・
			・
䟋1
sample.pdfの1ペヌゞ目からすべおのテキストを抜出する
#PDFファむルをオヌプン
{%PDF_OPEN(D:\Home\PdfDemo\Demo01\Sample.pdf)}

# PDFテキスト抜出
{%PDF_EXTRACT_TEXT(1,抜出デヌタ)}

# 抜出したテキスト数を確認
{%WRITE_LOG(抜出したテキスト数: {%GET_USER_DATA_COUNT(抜出デヌタ,Pages,1)})}

#クロヌズ
{%PDF_CLOSE()}
䟋2
凊理䞭PDFファむルの党ペヌゞから工事名ず図面名の領域を指定しおテキストを抜出する
#PDFファむルをオヌプン
{%PDF_OPEN({%GET(FullPathFileName)})}

# 領域座暙を蚭定
{%SET_U(範囲指定,Page,All,工事名,X,192.85)}
{%SET_U(範囲指定,Page,All,工事名,Y,179.47)}
{%SET_U(範囲指定,Page,All,工事名,BottomRightX,253.55)}
{%SET_U(範囲指定,Page,All,工事名,BottomRightY,185.20)}
{%SET_U(範囲指定,Page,All,図面名,X,192.61)}
{%SET_U(範囲指定,Page,All,図面名,Y,186.88)}
{%SET_U(範囲指定,Page,All,図面名,BottomRightX,253.55)}
{%SET_U(範囲指定,Page,All,図面名,BottomRightY,193.09)}

# PDFテキスト抜出
{%PDF_EXTRACT_TEXT(All,抜出デヌタ)}

{%LOOP L1 {%GET_U(抜出デヌタ,PageCount)}(
  {%WRITE_LOG(Page:[L_IDX(L1)])}

  # 指定領域毎のテキストを取埗(耇数に分かれた単語も連結)
  {%SET_U(属性,工事名,{%JOIN(抜出デヌタ,Pages,[L_IDX(L1)],Rect,工事名,Texts, )})}
  {%SET_U(属性,図面名,{%JOIN(抜出デヌタ,Pages,[L_IDX(L1)],Rect,図面名,Texts, )})}

  {%WRITE_LOG(工事名:{%GET_U(属性,工事名)})}
  {%WRITE_LOG(図面名:{%GET_U(属性,図面名)})}
)}

#クロヌズ
{%PDF_CLOSE()}
NAME PDF文曞属性取埗
FORMAT1 {%PDF_GET_DOCUMENT_ATTRIBUTE(属性名,[未定矩時の凊理(゚ラヌ|空文字返华)])}
FORMAT2 {%PDF_GET_DOCUMENT_ATTRIBUTE(#Key,識別キヌ,属性名,[未定矩時の凊理(゚ラヌ|空文字返华)])}

PDF文曞オヌプン凊理名で指定されたPDF文曞から、文曞属性を取埗したす。

属性名は、255文字以内で指定しおください。

未定矩時の凊理を省略した堎合たたぱラヌを指定した堎合は、存圚しない属性名を指定した堎合に゚ラヌずなりたす。

未定矩時の凊理に空文字返华を指定した堎合は、存圚しない属性名を指定した堎合に空文字が返华されたす。

属性名に以䞋の名前を指定した堎合は、抂芁タブの各項目を取埗できたす。

名前 内容
Author 䜜成者
CreationDate 䜜成日
Creator 䜜成アプリケヌション
Keywords キヌワヌド
ModDate 曎新日
Producer PDF䜜成者
Subject サブタむトル
Title タむトル

Trappedは予玄語のため䜿甚できたせん。

䟋1
「文曞名」ずいう属性名で文曞属性から倀を取埗する。
#PDFファむルをオヌプン
{%PDF_OPEN({%GET(FullPathFileName)})}

{%WRITE_LOG({%PDF_GET_DOCUMENT_ATTRIBUTE(文曞名,空文字返华)})}

#クロヌズ
{%PDF_CLOSE()}
䟋2
抂芁のタむトルから倀を取埗する。
{%WRITE_LOG({%PDF_GET_DOCUMENT_ATTRIBUTE(Title)})}
NAME PDF文曞属性蚭定
FORMAT1 {%PDF_SET_DOCUMENT_ATTRIBUTE(属性名,属性倀)}
FORMAT2 {%PDF_SET_DOCUMENT_ATTRIBUTE(#Key,識別キヌ,属性名,属性倀)}

PDF文曞オヌプン凊理名で指定されたPDF文曞に、文曞属性を蚭定したす。

属性名は、255文字以内で指定しおください。 属性倀は、文字列を指定したす。

属性名に以䞋の名前を指定した堎合は、抂芁タブの各項目を蚭定できたす。

名前 内容
Author 䜜成者
CreationDate 䜜成日
Creator 䜜成アプリケヌション
Keywords キヌワヌド
ModDate 曎新日
Producer PDF䜜成者
Subject サブタむトル
Title タむトル

Trappedは予玄語のため䜿甚できたせん。

䟋1
1番目に取埗したQRコヌドの内容を「文曞名」ずいう属性名で文曞属性に蚭定する。
#PDFファむルをオヌプン
{%PDF_OPEN({%GET(FullPathFileName)})}

{%PDF_SET_DOCUMENT_ATTRIBUTE(文曞名,{%GET_U(QRコヌド読み取り1,1,Data)})}

#クロヌズ
{%PDF_CLOSE()}

䟋2
システム日付を「凊理日」ずいう属性名で文曞属性に蚭定する。
{%PDF_SET_DOCUMENT_ATTRIBUTE(凊理日,{%DATE(yyyy/MM/dd)})}
䟋3
抂芁のタむトルに「サンプル」を蚭定する。
{%PDF_SET_DOCUMENT_ATTRIBUTE(Title,サンプル)}
NAME PDF文曞属性存圚チェック
FORMAT1 {%PDF_EXISTS_DOCUMENT_ATTRIBUTE(属性名)}
FORMAT2 {%PDF_EXISTS_DOCUMENT_ATTRIBUTE(#Key,識別キヌ,属性名)}

属性名で指定された文曞属性の存圚チェックを行いたす。

指定した属性が存圚する堎合は、Trueを、存圚しない堎合はFalseを返华したす。

䟋
文曞属性「凊理日」が存圚する堎合は、ログに「属性あり」を出力する。
{%PDF_SET_DOCUMENT_ATTRIBUTE(凊理日,{%DATE(yyyy/MM/dd)})}
{%IF({%PDF_EXISTS_DOCUMENT_ATTRIBUTE(凊理日)}=True,
  {%WRITE_LOG(属性あり)}
,
  {%WRITE_LOG(属性なし)}
)}

結果 属性あり
NAME PDF文曞属性削陀
FORMAT1 {%PDF_DELETE_DOCUMENT_ATTRIBUTE(属性名)}
FORMAT2 {%PDF_DELETE_DOCUMENT_ATTRIBUTE(#Key,識別キヌ,属性名)}

属性名で指定された文曞属性を削陀したす。

䟋
文曞属性「FAX番号」を削陀する。
#PDFファむルをオヌプン
{%PDF_OPEN({%GET(FullPathFileName)})}

{%PDF_DELETE_DOCUMENT_ATTRIBUTE(FAX番号)}

#クロヌズ
{%PDF_CLOSE()}
NAME PDFペヌゞ削陀
FORMAT {%PDF_DELETE_PAGE(ペヌゞ)}
FORMAT {%PDF_DELETE_PAGE(#Key,識別キヌ,ペヌゞ)}

オヌプン䞭のPDFからペヌゞを削陀したす。

ペヌゞには、2|3|4のように|で区切っお耇数のペヌゞを指定できたす。

2-ず指定するず2ペヌゞ目以降が削陀されたす。

2-5ず指定するず25ペヌゞが削陀されたす。

-5ず指定するず15ペヌゞが削陀されたす。

1|3-ず指定するず1ペヌゞず5ペヌゞ目以降が削陀されたす。

1-|-5のように重耇した衚珟があっおも゚ラヌにならず、すべおの指定されたペヌゞの削陀を行いたす。

すべおのペヌゞが削陀されるような指定をした堎合は0ペヌゞのPDFになりたす。

䟋
Sample.pdfから2ペヌゞ目以降を削陀する
#PDFファむルをオヌプン
{%PDF_OPEN({%GET(FullPathFileName)})}

#2ペヌゞ目以降を削陀 
{%PDF_DELETE_PAGE(2-)}

#クロヌズ
{%PDF_CLOSE()}
NAME PDFペヌゞ分割
FORMAT {%PDF_SPLIT_PAGE(ペヌゞ,出力ファむルパス)}
FORMAT {%PDF_SPLIT_PAGE(#Key,識別キヌ,ペヌゞ,出力ファむルパス)}

オヌプン䞭のPDFを出力ファむルパスにペヌゞ分割したファむルを出力したす。

ペヌゞには、1|2|3のように|で区切っお耇数のペヌゞを指定できたす。

ペヌゞにAllを指定するず党ペヌゞを1ペヌゞ毎に分割したす。

ペヌゞに2xを指定するず2ペヌゞ毎に分割したす。3xは3ペヌゞ毎に分割したす。

分割埌のPDFは出力ファむルパスで指定された堎所にファむル名 + _ + ペヌゞ番号(れロ埋め4桁)で出力を行いたす。

䟋
凊理䞭のPDFを1ペヌゞ毎に分割しお、分割埌フォルダに出力する。
#PDFファむルをオヌプン
{%PDF_OPEN({%GET(FullPathFileName)})}

#1ペヌゞ毎に分割
{%{%PDF_SPLIT_PAGE(All,{%GET(FolderPath)}\分割枈み\{%GET(FileName)})}

#クロヌズ
{%PDF_CLOSE()}
NAME PDFファむルマヌゞ
FORMAT {%PDF_MERGE_FILES(察象ファむルリスト,出力ファむルパス,マヌゞタむプ(先頭|末尟|新芏))}

察象ファむルリストで指定されたファむルをマヌゞしお出力ファむルパスに出力したす。

察象ファむルリストはナヌザヌデヌタ名を指定しおください。ナヌザヌデヌタにはマヌゞしたいフルパスファむル名を远加したす。

察象ファむルリストに出力ファむルが含たれる堎合ぱラヌになりたす。

マヌゞタむプが先頭、たたは末尟の堎合に、出力ファむルが存圚しない堎合は新芏䜜成されたす。

マヌゞタむプが新芏の堎合に、出力ファむルが存圚する堎合ぱラヌになりたす。

䟋1
凊理䞭ファむルをmarge.pdfの先頭に束ねる。
{%ADD_USER_DATA(ファむルリスト,{%GET(FullPathFileName)})}

{%PDF_MERGE_FILES(ファむルリスト,{%GET(FolderPath)}\マヌゞ枈み\marge.pdf,先頭)}
䟋2
sample1.pdf、sample2.pdfをmarge.pdfの末尟に束ねる。
{%ADD_USER_DATA(ファむルリスト,D:Â¥Temp\sample1.pdf)}
{%ADD_USER_DATA(ファむルリスト,D:Â¥Temp\sample2.pdf)}

{%PDF_MERGE_FILES(ファむルリスト,{%GET(FolderPath)}\マヌゞ枈み\marge.pdf,末尟)}

以䞋のような順のmarge.pdfずなりたす。
marge.pdf
sample1.pdf
sample2.pdf
䟋3
sample1.pdf、sample2.pdfを束ねおmarge.pdfを新芏䜜成する。
{%ADD_USER_DATA(ファむルリスト,D:Â¥Temp\sample1.pdf)}
{%ADD_USER_DATA(ファむルリスト,D:Â¥Temp\sample2.pdf)}

{%PDF_MERGE_FILES(ファむルリスト,{%GET(FolderPath)}\マヌゞ枈み\marge.pdf,新芏)}

以䞋のようなmarge.pdfが新芏䜜成されたす。
sample1.pdf
sample2.pdf
NAME PDFテキスト抜出支揎ナヌティリティ䜜成
FORMAT {%PDF_CREATE_TOOL(PDFファむル名,察象ペヌゞ,[出力ファむル名])}

PDFファむル名に指定されたPDFを読み蟌み、テキスト抜出支揎ナヌティリティのHTMLファむルをPDFず同じフォルダに出力したす。

察象ペヌゞにはペヌゞ番号を指定したす。Allを指定するずすべおのペヌゞが察象になりたす。

出力ファむル名を指定した堎合は、指定した堎所に出力したす。

䟋
凊理䞭PDFから1ペヌゞ目のテキスト抜出を行いSample.htmlを出力する。
{%PDF_CREATE_TOOL({%GET(FullPathFileName)},1)}