本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Textract 和AWSSDK
下列程式碼範例示範如何使用 Amazon Textract 分析文件。
- Java
-
- 適用於 Java 2.x 的 SDK
-
public static void analyzeDoc(TextractClient textractClient, String sourceDoc) { try { InputStream sourceStream = new FileInputStream(new File(sourceDoc)); SdkBytes sourceBytes = SdkBytes.fromInputStream(sourceStream); // Get the input Document object as bytes Document myDoc = Document.builder() .bytes(sourceBytes) .build(); List<FeatureType> featureTypes = new ArrayList<FeatureType>(); featureTypes.add(FeatureType.FORMS); featureTypes.add(FeatureType.TABLES); AnalyzeDocumentRequest analyzeDocumentRequest = AnalyzeDocumentRequest.builder() .featureTypes(featureTypes) .document(myDoc) .build(); AnalyzeDocumentResponse analyzeDocument = textractClient.analyzeDocument(analyzeDocumentRequest); List<Block> docInfo = analyzeDocument.blocks(); Iterator<Block> blockIterator = docInfo.iterator(); while(blockIterator.hasNext()) { Block block = blockIterator.next(); System.out.println("The block type is " +block.blockType().toString()); } } catch (TextractException | FileNotFoundException e) { System.err.println(e.getMessage()); System.exit(1); } }-
在 GitHub
上尋找指示和更多程式碼。 -
如需 API 詳細資訊,請參AnalyzeDocument在AWS SDK for Java 2.xAPI 參考。
-
- Python
-
- 適用於 Python (Boto3) 的 SDK
-
class TextractWrapper: """Encapsulates Textract functions.""" def __init__(self, textract_client, s3_resource, sqs_resource): """ :param textract_client: A Boto3 Textract client. :param s3_resource: A Boto3 Amazon S3 resource. :param sqs_resource: A Boto3 Amazon SQS resource. """ self.textract_client = textract_client self.s3_resource = s3_resource self.sqs_resource = sqs_resource def analyze_file( self, feature_types, *, document_file_name=None, document_bytes=None): """ Detects text and additional elements, such as forms or tables, in a local image file or from in-memory byte data. The image must be in PNG or JPG format. :param feature_types: The types of additional document features to detect. :param document_file_name: The name of a document image file. :param document_bytes: In-memory byte data of a document image. :return: The response from Amazon Textract, including a list of blocks that describe elements detected in the image. """ if document_file_name is not None: with open(document_file_name, 'rb') as document_file: document_bytes = document_file.read() try: response = self.textract_client.analyze_document( Document={'Bytes': document_bytes}, FeatureTypes=feature_types) logger.info( "Detected %s blocks.", len(response['Blocks'])) except ClientError: logger.exception("Couldn't detect text.") raise else: return response-
在 GitHub
,尋找指示和更多代碼。 -
如需 API 詳細資訊,請參AnalyzeDocument在AWSSDK for Python (Boto3) API 參考。
-
如需完整的清單AWSSDK 開發人員指南和代碼示例,請參閲將 Amazon Textract 與AWSSDK。本主題還包括有關入門信息和以前 SDK 版本的詳細信息。
動作
檢測文檔中的文本