サンプルAFPファイルがあります。TLE(Tag Logical Element)を読み込んで、口座番号や請求番号などの所定のタグを取得して、特定の請求書番号のPDFに変換できるようにします。また、同じアクションを実行するためのパブリックJava APIもあります。AFPファイルからメタデータを抽出する方法は?
0
A
答えて
0
TLEには、グループレベルとページレベルの2種類があります。グループレベルのTLEは、BNG(Begin Named Group)の直後に表示され、ページレベルのTLEはページの環境グループ(BPG)の後に表示されます。 TLE自体は、メタデータを運ぶために2つのトリプレット、FullyQualifiedNameとAttributeValueを使用します。最初のものはキー名を含み、もう1つは値を含みます。
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Optional;
import org.afplib.afplib.*;
import org.afplib.base.*;
import org.afplib.io.AfpInputStream;
public class DumpTLE {
public static void main(String[] args) {
try (AfpInputStream in = new AfpInputStream(
new BufferedInputStream(new FileInputStream(args[0])))) {
int page = 0;
int group = 0;
boolean pageLevel = false;
SF sf;
while((sf = in.readStructuredField()) != null) {
if(sf instanceof BPG) {
page++;
pageLevel = true;
}
if(sf instanceof EPG) {
pageLevel = false;
}
if(sf instanceof BNG) {
group++;
}
if(sf instanceof TLE) {
TLE tle = (TLE) sf;
Optional<FullyQualifiedName> fqn = tle.getTriplets().stream()
.filter(FullyQualifiedName.class::isInstance).map(FullyQualifiedName.class::cast)
.findFirst();
Optional<AttributeValue> value = tle.getTriplets().stream()
.filter(AttributeValue.class::isInstance).map(AttributeValue.class::cast)
.findFirst();
if(fqn.isPresent() && value.isPresent()) {
if(pageLevel) {
System.out.println("page "+page+" - "+fqn.get().getFQName()+":"+value.get().getAttVal());
} else {
System.out.println("group "+group+" - "+fqn.get().getFQName()+":"+value.get().getAttVal());
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
コードがafplib(https://github.com/yan74/afplib)を使用しています。あなたのAFPはよく形成された次のコードは、あなたがTLESからメタデータを抽出することができますことを前提に
。あなたのAFPをPDFに変換することは全く別の話ですが、それほど簡単ではありません。
関連する問題
- 1. iOS上のmovファイルからメタデータを抽出する
- 2. WordおよびExcelファイルからメタデータを抽出しますか?
- 3. 最後のフレームからFFmpegでデコードしてメタデータを抽出する方法は?
- 4. コマンドライン(MacOS)からAFP共有をリストする方法は?
- 5. jpg画像からJava抽出exif(メタデータ)
- 6. mp3からメタデータを抽出するには?
- 7. .movファイルから開始タイムコードと継続時間/長さメタデータを抽出する方法は?
- 8. .MSIファイルからツリービューダイアログからノードを抽出する方法
- 9. IMAPメッセージから添付ファイルを抽出する方法は?
- 10. ファイルから特定のテキストを抽出する方法は?
- 11. C#のUriからファイル名を抽出する方法は?
- 12. イメージURLをカスタムXMLファイルから抽出する方法は?
- 13. MATLAB:csvファイルから特定の列を抽出する方法は?
- 14. CocoaのMP3ファイルからIDタグを抽出する方法は?
- 15. ウェブサイトからメタデータを抽出するASP.NET MVC3
- 16. Androidのビデオファイルからメタデータを抽出する
- 17. コマンドプロンプトからFLACファイルからファイルのプロパティの詳細を抽出する方法
- 18. .msiファイルからリソースを抽出する方法
- 19. XMLファイルからデータを抽出する方法
- 20. pcapファイルからデータを抽出する方法
- 21. HIVEテーブルから5kファイルを抽出する方法
- 22. コマンドラインからexeファイルを抽出する方法
- 23. .txtファイルからデータの列を抽出する方法MATLAB
- 24. ファイル名から映画タイトルを抽出する方法
- 25. itext7でPDFから添付ファイルを抽出する方法
- 26. ファイルパスからファイル名を抽出する方法
- 27. MSI "File"テーブルからデータ(ファイル数)を抽出する方法
- 28. Windows Vistaからファイルを抽出する方法Complete PC Backup?
- 29. ファイルからデータを抽出する方法
- 30. jail broken deviceからipaファイルを抽出する方法