PDF_TO_IMAGES は、PDF ファイルをページごとのイメージに分割し、各ページを行として返すテーブル値関数です。
構文
PDF_TO_IMAGES(content [, image_format] [, dpi] [, start_page] [, pages])パラメーター
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
content | VARBINARY | はい | PDF ファイルのバイナリコンテンツです。リモートファイルからコンテンツを取得するには、FETCH_CONTENT を使用します。 |
image_format | STRING | いいえ | 出力イメージフォーマットです。サポートされている値: 'jpg'、'png'。デフォルト: 'jpg'。 |
dpi | INT | いいえ | イメージの鮮明度をコントロールする、ドット/インチ (DPI) 単位のレンダリング解像度です。デフォルト: 200。 |
start_page | INT | いいえ | 処理を開始する最初のページです。ページ番号は 0 から始まります。デフォルト: 0。 |
pages | INT | いいえ | start_page から処理するページ数です。start_page と一緒に使用する必要があり、単独では使用できません。この関数は、[start_page, start_page + pages) の範囲のページを処理します。デフォルト: start_page からドキュメントの最後まで。 |
戻り値のパラメーター
この関数は、ページごとに 1 行を返し、次の列が含まれます。
| パラメーター | 型 | 説明 |
|---|---|---|
mime_type | STRING | image/jpeg などの出力イメージの MIME タイプです。 |
page_no | INT | PDF のページ番号です (0 から始まります)。 |
image_content | VARBINARY | ページイメージのバイナリコンテンツです。 |
例
次のクエリは、URL から PDF をフェッチし、各ページを 150 DPI の JPEG イメージに変換します。LATERAL TABLE 構文は、PDF_TO_IMAGES をテーブル値関数として呼び出し、その出力行を入力と結合します。
SELECT
p.mime_type AS mime_type,
p.page_no AS page_no
FROM (
SELECT FETCH_CONTENT(pdf_url) AS pdf_content
FROM (
VALUES ('https://example.com/sample.pdf')
) T (pdf_url)
) AS t1,
LATERAL TABLE(PDF_TO_IMAGES(t1.pdf_content, 'jpg', 150)) AS p(mime_type, page_no, image_content);出力例:
| mime_type(STRING) | page_no(INT) |
|---|---|
| image/jpeg | 0 |
| image/jpeg | 1 |
| image/jpeg | 2 |
| image/jpeg | 3 |