|
分類:[C#]
役所から発行されたPDFから範囲指定した上で文字列を抽出するプログラムを作成したいと思っています。
その際、範囲指定した文字列は抽出されていそうなのですが、文字列が化けているようです。
文字化けをなんとかしたいのですが、お知恵を貸していただけませんでしょうか?
開発環境:VS2015、C#、iText7(7.0.4 Nugetから)、iText7.font-asian(7.0.4 Nugetから)
==== 試したソース ====
iText.IO.Util.ResourceUtil.AddToResourceSearch("itext.font_asian.dll"); // iText5は[iTextasian.dll]を参照の他、AddTo...しないといけなかったので真似た
using (PdfReader reader = new PdfReader(pdfPath))
using (var doc = new PdfDocument(reader))
{
var rect = new Rectangle(100, 100, 800, 780); // 数値は適当。広く文字列を抽出する用。
var filter = new TextRegionEventFilter(rect);
var pageCount = doc.GetNumberOfPages();
for (int i = 1; i <= pageCount; i++)
{
ITextExtractionStrategy strategy = new FilteredTextEventListener(new LocationTextExtractionStrategy(), filter);
var page = doc.GetPage(i);
var str1 = PdfTextExtractor.GetTextFromPage(page, strategy);
}
}
==== ソースここまで ====
=== 抽出された文字列 ===
部 副
()*+,
-.
6!
期 ! !
"#!
%&!
"%'!
"%!
替/所
" # $ % /0的$%
て!"#$%&'型の*用,原則と。
日、時、工数、空m、掛m、日回、日回、:用日、;<の=>?@見B@
め!"#$を&'もは*+,-./'がって内4作6789
,C束EのF!あ@HせJ。たLM、MたNO,除QH。
=== 文字列ここまで ====
抽出された文字列のうち、
「日、時、工数、空m、掛m、日回、日回、:用日、;<の=>?@見B@」
に関しては"おおよそ"取得されています。
なので、単純な文字化けともちょっと違っていそうな感じはあります。
なにかご存じの方いらっしゃいましたらお知恵を貸してください。
|