n8nにおける無料のPDFジェネレーター – 外部ライブラリや有料サービスなし

上級

これはDocument Extraction, Multimodal AI分野の自動化ワークフローで、20個のノードを含みます。主にSet, Slack, GoogleDrive, HttpRequest, ManualTriggerなどのノードを使用。 OpenAI、Google Docs、Slack を使用して専門のな PDF を生成して共有

前提条件
  • Slack Bot Token または Webhook URL
  • Google Drive API認証情報
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "BY9w2cNMUAvBWpJ7",
  "meta": {
    "instanceId": "4a2e6764ba7a6bc9890d9225f4b21d570ce88fc9bd57549c89057fcee58fed0f",
    "templateCredsSetupCompleted": true
  },
  "name": "Free PDF Generator in n8n – No External Libraries or Paid Services",
  "tags": [],
  "nodes": [
    {
      "id": "1a0c48b7-71a1-43ea-84f4-bc9d471f3d94",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        176,
        144
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "PPSwAKeLQYgAPobT",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9c32fc19-37c9-4a40-90b1-a00ac76923d9",
      "name": "PDFファイルのアーカイブ",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1152,
        -80
      ],
      "parameters": {
        "name": "={{ $json.name }}.pdf",
        "driveId": {
          "__rl": true,
          "mode": "list",
          "value": "My Drive"
        },
        "options": {},
        "folderId": {
          "__rl": true,
          "mode": "list",
          "value": "1IPcko8bzogO3W4mxhrW2Q017QA0Lc5MI",
          "cachedResultUrl": "https://drive.google.com/drive/folders/1IPcko8bzogO3W4mxhrW2Q017QA0Lc5MI",
          "cachedResultName": "SmartSales"
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "7e0a5a61-9004-4392-b1a5-786fd40cfcd9",
      "name": "添付ファイルのダウンロード",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1376,
        -80
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {},
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "bcb58059-951e-4e60-a925-595e4d9a7829",
      "name": "ドキュメントファイルの作成",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        704,
        -80
      ],
      "parameters": {
        "url": "https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=true",
        "body": "=--foo_bar_baz\nContent-Type: application/json; charset=UTF-8\n\n{\n  \"name\": \"{{ $json.Today }}\",\n  \"mimeType\": \"application/vnd.google-apps.document\",\n  \"parents\": [\"{{ $json['Drive Folder ID'] }}\"]\n}\n\n--foo_bar_baz\nContent-Type: text/markdown; charset=UTF-8\n\n{{ $('Generate sample markdown document').item.json.output }}\n\n--foo_bar_baz--",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendQuery": true,
        "contentType": "raw",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "rawContentType": "multipart/related; boundary=foo_bar_baz",
        "queryParameters": {
          "parameters": [
            {
              "name": "uploadType",
              "value": "multipart"
            },
            {
              "name": "supportsAllDrives",
              "value": "true"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "boundary",
              "value": "foo_bar_baz"
            }
          ]
        },
        "nodeCredentialType": "googleDriveOAuth2Api"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e540e238-4bde-4dae-ac86-ac88764e7dc9",
      "name": "ドキュメントからPDFへ変換",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        928,
        -80
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {
          "googleFileConversion": {
            "conversion": {
              "docsToFormat": "application/pdf"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "fC471es5gk5Mm900",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "e214322b-302f-4c54-906c-75e1e6c93ba9",
      "name": "「ワークフロー実行」クリック時",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -144,
        -80
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "a36ca7db-6c6d-491a-8cd0-243916a2cd3a",
      "name": "メッセージ送信",
      "type": "n8n-nodes-base.slack",
      "position": [
        1600,
        -80
      ],
      "webhookId": "524619ce-d662-428d-bb56-ea97e5366dec",
      "parameters": {
        "options": {
          "fileName": "={{ $json.name }}",
          "channelId": "C097VAKKPUP",
          "initialComment": "Formatted PDF file from markdown"
        },
        "resource": "file",
        "authentication": "oAuth2"
      },
      "credentials": {
        "slackOAuth2Api": {
          "id": "4JSKt9sIRV1KGswQ",
          "name": "Slack account"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "d1253bec-da2d-4530-baeb-6e5adc989a1c",
      "name": "サンプルMarkdownドキュメント生成",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        80,
        -80
      ],
      "parameters": {
        "text": "=You are a Markdown expert. Write a single sample document in Markdown format that demonstrates all major Markdown syntax.\nThe document should be well-organized and easy to follow, with each section labeled clearly.\n\nInclude examples for:\n\t1.\tHeadings (H1 to H6)\n\t2.\tParagraphs and line breaks\n\t3.\tBold, italic, bold italic, and strikethrough\n\t4.\tBlockquotes (single and nested)\n\t5.\tLists: unordered, ordered, nested lists, and task lists\n\t6.\tLinks: inline, reference-style, and automatic links\n\t7.\tImages: inline and reference-style\n\t8.\tCode: inline code, fenced code blocks with language highlighting\n\t9.\tTables with alignment options\n\t10.\tHorizontal rules\n\t11.\tFootnotes\n\t12.\tEscaping special characters\n\t13.\tEmoji usage (if supported)\n\t14.\tHTML elements inside Markdown (example: <details> or <sup>)\n\nAt the top, add a short title and description of the document.\nUse clear section headings and short explanations before each example.\nMake sure the output is entirely valid Markdown so it can be rendered directly without edits.\n\nOutput only the Markdown content, nothing else.",
        "options": {
          "systemMessage": ""
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "17545deb-4c68-4038-abd7-1c7e9de0b99f",
      "name": "Google Driveフォルダ設定",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        -80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1ff0b9a4-7d60-44ec-b047-e49252f1ace9",
              "name": "Drive Folder ID",
              "type": "string",
              "value": "1IPcko8bzogO3W4mxhrW2Q017QA0Lc5MI"
            },
            {
              "id": "d64a1ac4-15db-4c84-a1db-fbd6b48084f5",
              "name": "Today",
              "type": "string",
              "value": "={{ $now.format(\"ddMMyyyyhhmmss\") }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4bf9bfbc-3791-4c28-b32a-085f1864e726",
      "name": "付箋メモ",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1216,
        -720
      ],
      "parameters": {
        "width": 912,
        "height": 1472,
        "content": "# Free PDF Generator in n8n – No External Libraries or Paid Services\n> A 100% free n8n workflow for generating professionally formatted PDFs without relying on external libraries or paid converters. It uses OpenAI to create Markdown content, Google Docs to format and convert to PDF, and integrates with Google Drive and Slack for archiving and sharing, ideal for reports, BRDs, proposals, or any document you need directly inside n8n.\n### Watch the demo video below:\n[![Watch the video](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Presentation1+(1).jpg)](https://www.youtube.com/watch?v=BB32RPQYI94)\n\n## **Who’s it for**\n- Teams that need **auto-generated documents** (reports, guides, checklists) in PDF format.\n- Operations or enablement teams who want files **archived in Google Drive** and **shared in Slack** automatically.\n- Anyone experimenting with **LLM-powered document generation** integrated into business workflows.\n\n## **How it works / What it does**\n1. **Manual trigger** starts the workflow.\n2. **LLM generates** a sample Markdown document (via OpenAI Chat Model).\n3. **Google Drive folder** is configured for storage.\n4. **Google Doc is created** from the generated Markdown content.\n5. **Document is exported to PDF** using Google Drive. ([Sample PDF generated from comprehensive markdown](https://wisestackai.s3.ap-southeast-1.amazonaws.com/12082025052957.pdf))\n6. **PDF is archived** in a designated Drive folder.\n7. **Archived PDF is downloaded** for sharing.\n8. **Slack message is sent** with the PDF attached.\n\n## **How to set up**\n1. **Add nodes in sequence**:\n   - Manual Trigger\n   - OpenAI Chat Model (prompt to generate sample Markdown)\n   - Set/Manual input for Google Drive folder ID(s)\n   - HTTP Request or Google Drive Upload (convert to Google Docs)\n   - Google Drive Download (PDF export)\n   - Google Drive Upload (archive PDF)\n   - Google Drive Download (fetch archived file)\n   - Slack Upload (send message with attachment)\n2. **Configure credentials** for OpenAI, Google Drive, and Slack.\n3. **Map output fields**:\n   - `data.markdown` → Google Docs creation\n   - `docId` → PDF export\n   - `fileId` → Slack upload\n4. **Test run** to ensure PDF is generated, archived, and posted to Slack.\n\n## **Requirements**\n- **Credentials**:\n  - OpenAI API key (or compatible LLM provider)\n  - Google Drive (OAuth2) with read/write permissions\n  - Slack bot token with `files:write` permission\n- **Access**:\n  - Write access to target Google Drive folders\n  - Slack bot invited to the target channel\n\n## **How to customize the workflow**\n- **Change the prompt** in the OpenAI Chat Model to generate different types of content (reports, meeting notes, checklists).\n- **Automate triggering**:\n  - Replace Manual Trigger with Cron for scheduled document generation.\n  - Use Webhook Trigger to run on-demand from external apps.\n- **Modify storage logic**:\n  - Save both `.md` and `.pdf` versions in Google Drive.\n  - Use separate folders for drafts vs. final versions.\n- **Enhance distribution**:\n  - Send PDFs to multiple Slack channels or via email.\n  - Integrate with project management tools for automated task creation."
      },
      "typeVersion": 1
    },
    {
      "id": "184cfef9-d92a-462d-9e8b-b6034eaa5ff9",
      "name": "付箋メモ1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -272,
        -208
      ],
      "parameters": {
        "color": 4,
        "width": 288,
        "height": 480,
        "content": "**Trigger the Workflow**  \n   Start the process manually or replace with another trigger (e.g., Cron or Webhook) to run automatically."
      },
      "typeVersion": 1
    },
    {
      "id": "49d2e923-1356-4671-96e4-a6a39893e291",
      "name": "付箋メモ2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        -208
      ],
      "parameters": {
        "color": 4,
        "width": 352,
        "height": 480,
        "content": "**Generate Markdown Content with AI**  \n   Use the OpenAI Chat Model to create a structured Markdown document based on your prompt, perfect for reports, BRDs, proposals, or meeting notes."
      },
      "typeVersion": 1
    },
    {
      "id": "350d767b-0ed5-4cbd-9f86-f5ea4044fbff",
      "name": "付箋メモ3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        -208
      ],
      "parameters": {
        "color": 4,
        "width": 432,
        "height": 480,
        "content": "**Create Google Doc from Markdown**  \n   Upload the generated Markdown content to Google Drive and convert it into a Google Doc for proper formatting.\n\n[Sample PDF generated from comprehensive markdown](https://wisestackai.s3.ap-southeast-1.amazonaws.com/12082025052957.pdf)"
      },
      "typeVersion": 1
    },
    {
      "id": "2c5fc8ea-4c52-4b4b-8e13-c2ae0041aa1f",
      "name": "付箋メモ4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        -208
      ],
      "parameters": {
        "color": 4,
        "width": 384,
        "height": 480,
        "content": "**Export and Archive as PDF**  \n   Convert the Google Doc to a PDF file, then upload it to your chosen Google Drive folder for storage and record-keeping."
      },
      "typeVersion": 1
    },
    {
      "id": "c3e95369-34a3-4f11-9204-78ee6b6e2217",
      "name": "付箋メモ5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1328,
        -208
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 480,
        "content": "**Share the PDF via Slack**  \n   Download the archived PDF and post it to a Slack channel with a message and links for quick access."
      },
      "typeVersion": 1
    },
    {
      "id": "9bc94ec2-4bce-4ed4-9afd-9270d2e46052",
      "name": "付箋メモ7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1808,
        -240
      ],
      "parameters": {
        "width": 768,
        "height": 528,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/pdf-1.png \"Optional title text\")"
      },
      "typeVersion": 1
    },
    {
      "id": "bf330105-df5e-4956-858a-b29d26e651d4",
      "name": "付箋メモ8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        352
      ],
      "parameters": {
        "width": 768,
        "height": 992,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/pdf-2.png \"Optional title text\")"
      },
      "typeVersion": 1
    },
    {
      "id": "12aea9ee-032f-4522-980b-69bee5d89913",
      "name": "付箋メモ9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        352
      ],
      "parameters": {
        "width": 768,
        "height": 992,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/pdf-3.png \"Optional title text\")"
      },
      "typeVersion": 1
    },
    {
      "id": "e754721c-dce2-4d19-a47d-b146e6bba331",
      "name": "付箋メモ10",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1328,
        352
      ],
      "parameters": {
        "width": 768,
        "height": 992,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/pdf-4.png \"Optional title text\")"
      },
      "typeVersion": 1
    },
    {
      "id": "53e3dcc8-1e6e-4cb4-9f44-5fa49d731a9a",
      "name": "付箋メモ11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2112,
        352
      ],
      "parameters": {
        "width": 768,
        "height": 992,
        "content": "![Alt text](https://wisestackai.s3.ap-southeast-1.amazonaws.com/pdf-5.png \"Optional title text\")"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "93a6ffab-7fbe-42af-8025-f3e2a72ceea7",
  "connections": {
    "1a0c48b7-71a1-43ea-84f4-bc9d471f3d94": {
      "ai_languageModel": [
        [
          {
            "node": "d1253bec-da2d-4530-baeb-6e5adc989a1c",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "9c32fc19-37c9-4a40-90b1-a00ac76923d9": {
      "main": [
        [
          {
            "node": "7e0a5a61-9004-4392-b1a5-786fd40cfcd9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bcb58059-951e-4e60-a925-595e4d9a7829": {
      "main": [
        [
          {
            "node": "e540e238-4bde-4dae-ac86-ac88764e7dc9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e540e238-4bde-4dae-ac86-ac88764e7dc9": {
      "main": [
        [
          {
            "node": "9c32fc19-37c9-4a40-90b1-a00ac76923d9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7e0a5a61-9004-4392-b1a5-786fd40cfcd9": {
      "main": [
        [
          {
            "node": "a36ca7db-6c6d-491a-8cd0-243916a2cd3a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "17545deb-4c68-4038-abd7-1c7e9de0b99f": {
      "main": [
        [
          {
            "node": "bcb58059-951e-4e60-a925-595e4d9a7829",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "d1253bec-da2d-4530-baeb-6e5adc989a1c": {
      "main": [
        [
          {
            "node": "17545deb-4c68-4038-abd7-1c7e9de0b99f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e214322b-302f-4c54-906c-75e1e6c93ba9": {
      "main": [
        [
          {
            "node": "d1253bec-da2d-4530-baeb-6e5adc989a1c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - 文書抽出, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

関連ワークフロー

マルチエージェントアーキテクチャ用の無償で使える入門テンプレート
コラボラティブなセールスプランニング:マルチエージェントAI、GoogleドキュメントとSlack
Set
Slack
Google Drive
+
Set
Slack
Google Drive
24 ノードTrung Tran
文書抽出
DecodoクロールAPIワークフローテンプレート(n8nによるアマゾン書籍購入レポート自動化)
DecodoスクレイピングとGPT 4.1 miniを使ってAmazonの本データを抽取し、購入レポートを生成
Set
Code
Slack
+
Set
Code
Slack
22 ノードTrung Tran
AI要約
AWS における SSL/TLS 証明書の有効期限切れレポートの自動化
AWS ACMとAIを使ってSlackとメールのSSL/TLS証明書の期限切れレポートを生成する
Set
Code
Slack
+
Set
Code
Slack
23 ノードTrung Tran
AI要約
Slack候補者評価のためのAI駆動チャットボット構築
AI履歴書分析と候補者評価:SlackとGoogleスプレッドシートの統合
If
Code
Slack
+
If
Code
Slack
29 ノードTrung Tran
AIチャットボット
AIツールノードとGPT-4、DALL-Eを使ったマルチエージェント書籍作成ワークフロー
GPT-4.1-mini、DALL-E、Google Drive、AWS S3を使ってAI(人工知能)による書籍生成
Set
Aws S3
Markdown
+
Set
Aws S3
Markdown
25 ノードTrung Tran
コンテンツ作成
よりスマートな BRD(ビジネスタ需求文書)作成のためのマルチエージェント RAG システム
マルチエージェント GPT と Google Workspace を使ってビジネス要件書を生成
Set
Code
Merge
+
Set
Code
Merge
37 ノードTrung Tran
AI RAG検索拡張
ワークフロー情報
難易度
上級
ノード数20
カテゴリー2
ノードタイプ8
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
Trung Tran

Trung Tran

@trungtran

Empowering small and medium businesses with smart automation and practical AI, no big tech team required.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34