Kostenlose Erstellung von PDFs aus Bildern über Google Slides und Google Drive
Dies ist ein Design, AI, Marketing-Bereich Automatisierungsworkflow mit 20 Nodes. Hauptsächlich werden Set, Sort, Limit, Filter, GoogleDrive und andere Nodes verwendet, kombiniert mit KI-Technologie für intelligente Automatisierung. Erstellen Sie kostenlos PDFs aus Bildern über Google Slides und Google Drive
- •Google Drive API-Anmeldedaten
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
Verwendete Nodes (20)
{
"meta": {
"instanceId": "632f65756c0dfa07ac80bbf68a720ffbe7ae34338cadcb46b58428622d4ef469",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "65d94bcc-e528-46a5-be6e-393a06ec620c",
"name": "Bei Klick auf 'Test workflow'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-360,
200
],
"parameters": {},
"typeVersion": 1
},
{
"id": "36d5034f-6d1a-4619-a009-f6e2e30ec7a5",
"name": "Nach Erstellungsdatum sortieren",
"type": "n8n-nodes-base.sort",
"position": [
1140,
200
],
"parameters": {
"options": {},
"sortFieldsUi": {
"sortField": [
{
"fieldName": "createdTime"
}
]
}
},
"typeVersion": 1
},
{
"id": "bc3a71c4-e073-4ef0-b74e-62e6005ee3c7",
"name": "Über Elemente iterieren",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1360,
200
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "5698ad5a-7635-423c-a63c-a1d5266551ea",
"name": "Bildberechtigungen aktualisieren",
"type": "n8n-nodes-base.googleDrive",
"position": [
1800,
200
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Sort by Created Date').item.json.id }}"
},
"options": {},
"operation": "share",
"permissionsUi": {
"permissionsValues": {
"role": "reader",
"type": "anyone"
}
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2aQwB7XQiOAR6v4J",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "7862bbd3-2300-4dd5-9ad9-02c81d608f3d",
"name": "Folien in PDF konvertieren",
"type": "n8n-nodes-base.googleDrive",
"position": [
2020,
0
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('CopyPdfTemplate').item.json.id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "application/pdf",
"slidesToFormat": "application/pdf"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2aQwB7XQiOAR6v4J",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "07e69808-f221-4424-838c-e1d53ce7ca0c",
"name": "Limit: 1 Seite",
"type": "n8n-nodes-base.limit",
"position": [
1580,
0
],
"parameters": {
"keep": "lastItems"
},
"typeVersion": 1
},
{
"id": "0028a6c9-460b-4ee9-968c-f46b6102fd44",
"name": "Filter: Nur Bilder",
"type": "n8n-nodes-base.filter",
"position": [
920,
200
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "12999f01-4775-46ab-bc60-1c1e68a3c4d2",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.mimeType }}",
"rightValue": "image/png"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "9d0898a8-4f62-4c03-bf9f-5f62177854a7",
"name": "Finale PDF-Datei hochladen",
"type": "n8n-nodes-base.googleDrive",
"position": [
2240,
0
],
"parameters": {
"name": "={{ $('Set Pdf File Name').item.json.presentation_title }}",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Get Folder Id w Presentation').item.json.parents[0] }}"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2aQwB7XQiOAR6v4J",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "0d51a9da-0a99-47ab-a356-fd084d3d3a58",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
-240
],
"parameters": {
"color": 4,
"width": 400,
"height": 1020,
"content": "## 📚 Create a PDF from Google Drive Images\n\nThis workflow takes all images from a Google Drive folder you specify, sorts them by creation date, and compiles them into a single PDF using a Google Slides template.\n\n**Key Things to Know Before You Start:**\n\n **Set Your File Name:**\n- Go to the **'Set Pdf File Name'** node \n- Update the `presentation_title` value with your desired PDF name.\n\n🔑 **Connect Google Accounts:**\n- Authenticate your Google Drive & Google Slides accounts in all relevant Google nodes and HTTP nodes.\n\n📏 **Use a Google Slides Template for Custom Page Size:**\n- Google Slides defaults to a 16:9 aspect ratio. If you need specific PDF dimensions (e.g., A4, US Letter, square), **first create a Google Slides file with your desired page size.**\n- Then, select this custom Google Slides file in the **'CopyPdfTemplate'** node (under 'File').\n\n🖼️ **Image & Folder Setup:**\n- In the **'CopyPdfTemplate'** node, also select the Google Drive **Folder** where your source images are located. The copied presentation and final PDF will also be created here.\n- The workflow filters for `.png` images by default. To use other types (like JPG), update the **'Filter: Only Images'** node.\n\n⚠️ **Image Size & Workflow Limits:**\n- Google Slides may have limitations on individual image size and the overall PDF file size when exporting.\n- This workflow works well for smaller presentations (10–20 pages). Larger files may run into errors or performance issues during export.\n\n💰 **Cost:** Free to use (relies on standard Google API calls, which are generally within free tier limits for typical usage)."
},
"typeVersion": 1
},
{
"id": "478b42b2-ad5a-4e2d-bbe0-88f412cb57b2",
"name": "PDF-Dateiname setzen",
"type": "n8n-nodes-base.set",
"position": [
-140,
200
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b994aa5e-1580-43f6-90b0-f0ea8efd9614",
"name": "presentation_title",
"type": "string",
"value": "[Your PDF Name Here]"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "eb4ef58f-77cd-408a-825a-720ced2a07f1",
"name": "Erste leere Folie löschen",
"type": "n8n-nodes-base.httpRequest",
"position": [
1800,
0
],
"parameters": {
"url": "=https://slides.googleapis.com/v1/presentations/{{ $('Get Created Presentation').item.json.presentationId }}:batchUpdate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"requests\": [\n {\n \"deleteObject\": {\n \"objectId\": \"{{ $('Get Created Presentation').item.json.slides[0].objectId }}\" \n } \n } \n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleSlidesOAuth2Api"
},
"credentials": {
"googleSlidesOAuth2Api": {
"id": "puHiyhiyJ7v8EzCp",
"name": "Google Slides account"
}
},
"typeVersion": 4.2
},
{
"id": "fccfdcd0-9407-45bb-9065-ba0d0d63b1a6",
"name": "PDF-Vorlage kopieren",
"type": "n8n-nodes-base.googleDrive",
"position": [
80,
200
],
"parameters": {
"name": "={{ $json.presentation_title }}",
"fileId": {
"__rl": true,
"mode": "list",
"value": "1_Mfgb7lUD8tXRg3cXeIQXjQ9vgCG-TzwOoWVok_ROQ8",
"cachedResultUrl": "https://docs.google.com/presentation/d/1_Mfgb7lUD8tXRg3cXeIQXjQ9vgCG-TzwOoWVok_ROQ8/edit?usp=drivesdk",
"cachedResultName": "Book_Template"
},
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "list",
"value": "",
"cachedResultUrl": "",
"cachedResultName": ""
},
"operation": "copy",
"sameFolder": false
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2aQwB7XQiOAR6v4J",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "e9fb8627-1385-474c-badc-7aa1645a99da",
"name": "Erstellte Präsentation abrufen",
"type": "n8n-nodes-base.googleSlides",
"position": [
300,
200
],
"parameters": {
"operation": "get",
"presentationId": "={{ $('CopyPdfTemplate').item.json.id }}"
},
"credentials": {
"googleSlidesOAuth2Api": {
"id": "puHiyhiyJ7v8EzCp",
"name": "Google Slides account"
}
},
"typeVersion": 2
},
{
"id": "c6429ca5-db95-4e33-b470-43a5df1feed3",
"name": "Ordner-ID mit Präsentation abrufen",
"type": "n8n-nodes-base.httpRequest",
"position": [
500,
200
],
"parameters": {
"url": "=https://www.googleapis.com/drive/v3/files/{{ $json.presentationId }}?fields=parents",
"options": {},
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2aQwB7XQiOAR6v4J",
"name": "Google Drive account"
}
},
"typeVersion": 4.2
},
{
"id": "bd8c64b0-f8a4-4bf6-bb3a-cabba5597fed",
"name": "Alle Dateien aus dem Ordner abrufen",
"type": "n8n-nodes-base.googleDrive",
"position": [
700,
200
],
"parameters": {
"filter": {
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.parents[0] }}"
}
},
"options": {
"fields": [
"*"
]
},
"resource": "fileFolder",
"returnAll": true,
"queryString": "="
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "2aQwB7XQiOAR6v4J",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "f1680bfa-8ce1-4b0e-af59-83332e9511a0",
"name": "Leere Folie erstellen",
"type": "n8n-nodes-base.httpRequest",
"position": [
1580,
200
],
"parameters": {
"url": "=https://slides.googleapis.com/v1/presentations/{{ $('CopyPdfTemplate').item.json.id }}:batchUpdate",
"method": "POST",
"options": {},
"jsonBody": "{\n \"requests\": [\n {\n \"createSlide\": {\n \"slideLayoutReference\": {\n \"predefinedLayout\": \"BLANK\"\n \n } \n } \n } \n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleSlidesOAuth2Api"
},
"credentials": {
"googleSlidesOAuth2Api": {
"id": "puHiyhiyJ7v8EzCp",
"name": "Google Slides account"
}
},
"typeVersion": 4.2
},
{
"id": "0c883f43-b498-4da5-a5ee-ee44d11bb7f6",
"name": "Bild zur Folie hinzufügen",
"type": "n8n-nodes-base.httpRequest",
"position": [
2020,
280
],
"parameters": {
"url": "=https://slides.googleapis.com/v1/presentations/{{ $('CopyPdfTemplate').item.json.id }}:batchUpdate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"requests\": [\n {\n \"createImage\": {\n \"url\": \"{{ $('Sort by Created Date').item.json.webContentLink }}\",\n \"elementProperties\": {\n \"size\": {\n \"width\": {\n \"unit\": \"{{ $('Get Created Presentation').item.json.pageSize.width.unit }}\",\n \"magnitude\": {{ $('Get Created Presentation').item.json.pageSize.width.magnitude }}\n },\n \"height\": {\n \"unit\": \"{{ $('Get Created Presentation').item.json.pageSize.height.unit }}\",\n \"magnitude\": {{ $('Get Created Presentation').item.json.pageSize.height.magnitude }}\n }\n },\n \"transform\": {\n \"scaleX\": 1,\n \"scaleY\": 1,\n \"translateX\": 0,\n \"translateY\": 0,\n \"unit\": \"PT\"\n },\n \"pageObjectId\": \"{{ $('Create An Empty Slide').item.json.replies[0].createSlide.objectId }}\" \n } \n } \n } \n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleSlidesOAuth2Api"
},
"credentials": {
"googleSlidesOAuth2Api": {
"id": "puHiyhiyJ7v8EzCp",
"name": "Google Slides account"
}
},
"typeVersion": 4.2
},
{
"id": "4ba1bd72-7097-4774-9ce6-a770d4e8cacc",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
20,
-180
],
"parameters": {
"color": 6,
"width": 440,
"height": 620,
"content": "## Configure Template & Image Folder\n\n⚙️ In the **'CopyPdfTemplate'** node configure:\n\n1. **File -> From list:** Select your Google Slides template file. This will be the base for your PDF. If you want book orientation, it should be specified in the template in File-> Page Setup\n\n2. **Parent Folder -> From list:** Choose the Google Drive folder where your source images are located.\n\n➡️ **Important:** The workflow will create the final PDF in the *same folder* where you have your images"
},
"typeVersion": 1
},
{
"id": "e1e1bb1f-d73e-4dd5-b665-e669b5c343b1",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
860,
-180
],
"parameters": {
"color": 6,
"width": 420,
"height": 600,
"content": "## Image Filter Information\n\n🖼️ **Image Format Note** \n\nThis workflow is preset to find and process `.png` images from your Google Drive folder (using MIME type `image/png`).\n\nIf you're using other image formats (e.g., JPG, GIF), you'll need to update the **'Filter: Only Images'** node.\n\nSpecifically, change the filter condition from `image/png` to the correct MIME type for your image files (e.g., `image/jpeg` for JPGs)."
},
"typeVersion": 1
},
{
"id": "ba71a7ef-5309-4eb9-9aa8-a0bf275127a7",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1320,
500
],
"parameters": {
"color": 6,
"width": 840,
"height": 340,
"content": "## How the Image-to-Slide Process Works\n\n🔄 **How Images Are Added to Slides** \n1. The workflow fetches all images (that pass the filter) from your specified Google Drive folder.\n2. It sorts these images by their creation date.\n3. For each image, the workflow:\n a. Creates a new blank slide in your Google Slides presentation.\n b. Updates the image's permissions in Google Drive to be publicly readable (this is a temporary step, necessary for the Google Slides API to insert the image using its URL).\n c. Adds the image to the new slide, fitting it to the slide's dimensions.\n\n**Final Touch:** After all images are added, the *very first slide* of the presentation (which is a blank page from your template) is deleted."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"07e69808-f221-4424-838c-e1d53ce7ca0c": {
"main": [
[
{
"node": "eb4ef58f-77cd-408a-825a-720ced2a07f1",
"type": "main",
"index": 0
}
]
]
},
"fccfdcd0-9407-45bb-9065-ba0d0d63b1a6": {
"main": [
[
{
"node": "e9fb8627-1385-474c-badc-7aa1645a99da",
"type": "main",
"index": 0
}
]
]
},
"bc3a71c4-e073-4ef0-b74e-62e6005ee3c7": {
"main": [
[
{
"node": "07e69808-f221-4424-838c-e1d53ce7ca0c",
"type": "main",
"index": 0
}
],
[
{
"node": "f1680bfa-8ce1-4b0e-af59-83332e9511a0",
"type": "main",
"index": 0
}
]
]
},
"478b42b2-ad5a-4e2d-bbe0-88f412cb57b2": {
"main": [
[
{
"node": "fccfdcd0-9407-45bb-9065-ba0d0d63b1a6",
"type": "main",
"index": 0
}
]
]
},
"0028a6c9-460b-4ee9-968c-f46b6102fd44": {
"main": [
[
{
"node": "36d5034f-6d1a-4619-a009-f6e2e30ec7a5",
"type": "main",
"index": 0
}
]
]
},
"36d5034f-6d1a-4619-a009-f6e2e30ec7a5": {
"main": [
[
{
"node": "bc3a71c4-e073-4ef0-b74e-62e6005ee3c7",
"type": "main",
"index": 0
}
]
]
},
"7862bbd3-2300-4dd5-9ad9-02c81d608f3d": {
"main": [
[
{
"node": "9d0898a8-4f62-4c03-bf9f-5f62177854a7",
"type": "main",
"index": 0
}
]
]
},
"f1680bfa-8ce1-4b0e-af59-83332e9511a0": {
"main": [
[
{
"node": "5698ad5a-7635-423c-a63c-a1d5266551ea",
"type": "main",
"index": 0
}
]
]
},
"0c883f43-b498-4da5-a5ee-ee44d11bb7f6": {
"main": [
[
{
"node": "bc3a71c4-e073-4ef0-b74e-62e6005ee3c7",
"type": "main",
"index": 0
}
]
]
},
"eb4ef58f-77cd-408a-825a-720ced2a07f1": {
"main": [
[
{
"node": "7862bbd3-2300-4dd5-9ad9-02c81d608f3d",
"type": "main",
"index": 0
}
]
]
},
"e9fb8627-1385-474c-badc-7aa1645a99da": {
"main": [
[
{
"node": "c6429ca5-db95-4e33-b470-43a5df1feed3",
"type": "main",
"index": 0
}
]
]
},
"5698ad5a-7635-423c-a63c-a1d5266551ea": {
"main": [
[
{
"node": "0c883f43-b498-4da5-a5ee-ee44d11bb7f6",
"type": "main",
"index": 0
}
]
]
},
"c6429ca5-db95-4e33-b470-43a5df1feed3": {
"main": [
[
{
"node": "bd8c64b0-f8a4-4bf6-bb3a-cabba5597fed",
"type": "main",
"index": 0
}
]
]
},
"bd8c64b0-f8a4-4bf6-bb3a-cabba5597fed": {
"main": [
[
{
"node": "0028a6c9-460b-4ee9-968c-f46b6102fd44",
"type": "main",
"index": 0
}
]
]
},
"65d94bcc-e528-46a5-be6e-393a06ec620c": {
"main": [
[
{
"node": "478b42b2-ad5a-4e2d-bbe0-88f412cb57b2",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Design, Künstliche Intelligenz, Marketing
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Nadia Privalikhina
@nadiapAutomation consultant with a dev brain and a get-things-done mindset. I help marketing and content teams build automation workflows, learn the tools, and actually use them in their business
Diesen Workflow teilen