2012-04-06 8 views
1

私はPDDScannerを使用してPDF内のキリル文字(および他のASCII以外の文字)を検索しました。私が使用しているコードは、RandonのアイデアブログからSOコードに言及したのと似ています。問題は、cyrilic PDFの場合、スキャナの出力は完全なガベージであり、意味のあるものにはデコードできないということです。キリル文字のPDFの英字は完全に検索されます。ですから、問題はキリル文字の場合はエンコードされており、正しくデコードする方法が得られないということです。QuartzPDFを使用して非ASCII文字(キリル文字)をPDFで検索する方法は?

ここでは何が欠けていますか?

対象者の光を当てることができる人には、事前に感謝します。

+0

あなたはコードを投稿することができ、また、へのリンクは「言った(すなわち、NSWindowsCP1251StringEncodingを試してみてください)も同じライン上の「Adobe」を持っている疑いラベル「キリル」何かを参照してくださいRandonのアイデアブログ "?カフを外すと文字エンコードのように聞こえるが、PDF自体は厄介である。 –

+0

http://blog.random-ideas.net/?p=184コードは簡単なカットアンドペーストです – Adviser2010

答えて

0

Apple spec and headers on thisに深く入る必要があるかもしれません - スキャナが通常のPDFとキリル文字のために見つけるものについては、NSLog行を追加してください(そしてここに投稿してください)。多くの可能性があります(異なるエンコーディング、つまり、エンコーディングを使用して別のエンコーディングに変換する必要があります)。私はあなたのキリル文字のpdfに余分なものがあるかどうかを見るために、テーブルのすべての演算子をリストする方法があると確信しています。また、this might helpはあなたが解決しようとしている非常に似た問題です - library that is more tuned to scanningも指しています。

+0

私はPDFキットンを試してみましたが、キリル文字でもうまくいきません。 – Adviser2010

+0

NSlogを追加して、抜粋)〜〜˚˚˚˚˚〜├─────────────────────────────────────────────────────────────────────────────┘ ˘\t˘、 ˘の˘ ˘˘\tのiPad〜˚˛˝˙˘˙˚˘˝˙˝˚˛˝˘アンドロイド 2012-04-09 14:24:32.238 PublishLike [8939: 16d03]ı¾¶¶¾¶ÅÆľ½¸Äºººº¶¾ÅÅ¡º¶¼ŽÂ¶ØÇǾºÇÇÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÄ英語の文字がエンコードされていることを確認してください。 – Adviser2010

+0

英語の文字がエンコードされていることに注意してください。テキストの残りはわかりにくいようです。 – Adviser2010

1

あなたは別のエンコードでその文字列を押してみましたか?私はNSString.hを見てみると、私は:)

enum { 
    NSASCIIStringEncoding = 1,  /* 0..127 only */ 
    NSNEXTSTEPStringEncoding = 2, 
    NSJapaneseEUCStringEncoding = 3, 
    NSUTF8StringEncoding = 4, 
    NSISOLatin1StringEncoding = 5, 
    NSSymbolStringEncoding = 6, 
    NSNonLossyASCIIStringEncoding = 7, 
    NSShiftJISStringEncoding = 8,   /* kCFStringEncodingDOSJapanese */ 
    NSISOLatin2StringEncoding = 9, 
    NSUnicodeStringEncoding = 10, 
    NSWindowsCP1251StringEncoding = 11, /* Cyrillic; same as AdobeStandardCyrillic */ 
    NSWindowsCP1252StringEncoding = 12, /* WinLatin1 */ 
    NSWindowsCP1253StringEncoding = 13, /* Greek */ 
    NSWindowsCP1254StringEncoding = 14, /* Turkish */ 
    NSWindowsCP1250StringEncoding = 15, /* WinLatin2 */ 
    NSISO2022JPStringEncoding = 21,  /* ISO 2022 Japanese encoding for e-mail */ 
    NSMacOSRomanStringEncoding = 30, 

    NSUTF16StringEncoding = NSUnicodeStringEncoding,  /* An alias for NSUnicodeStringEncoding */ 

    NSUTF16BigEndianStringEncoding = 0x90000100,   /* NSUTF16StringEncoding encoding with explicit endianness specified */ 
    NSUTF16LittleEndianStringEncoding = 0x94000100,  /* NSUTF16StringEncoding encoding with explicit endianness specified */ 

    NSUTF32StringEncoding = 0x8c000100,     
    NSUTF32BigEndianStringEncoding = 0x98000100,   /* NSUTF32StringEncoding encoding with explicit endianness specified */ 
    NSUTF32LittleEndianStringEncoding = 0x9c000100  /* NSUTF32StringEncoding encoding with explicit endianness specified */ 
}; 
+0

残念ながら、それは役に立ちません。上記のエンコーディングを使用してNSSTringを変換しようとしましたが、動作していません。 – Adviser2010

+0

NSData * data = [currentData dataUsingEncoding:NSUTF8StringEncoding]; NSString * ddd = [[NSString alloc] initWithData:データエンコーディング:NSWindowsCP1251StringEncoding];問題は、スキャナによって返されたストリーム全体をデコードしようとするとnullが返されることです。他のエンコーディングは、もう一度私に完全なゴミを与えました。 – Adviser2010

関連する問題