Google Slides와 Google Drive를 통해 무료로 이미지에서 PDF 생성
고급
이것은Design, AI, Marketing분야의자동화 워크플로우로, 20개의 노드를 포함합니다.주로 Set, Sort, Limit, Filter, GoogleDrive 등의 노드를 사용하며인공지능 기술을 결합하여 스마트 자동화를 구현합니다. Google Slides와 Google Drive를 사용하여 무료로 이미지에서 PDF 생성
사전 요구사항
- •Google Drive API 인증 정보
- •대상 API의 인증 정보가 필요할 수 있음
사용된 노드 (20)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "632f65756c0dfa07ac80bbf68a720ffbe7ae34338cadcb46b58428622d4ef469",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "65d94bcc-e528-46a5-be6e-393a06ec620c",
"name": "'Test workflow' 클릭 시",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-360,
200
],
"parameters": {},
"typeVersion": 1
},
{
"id": "36d5034f-6d1a-4619-a009-f6e2e30ec7a5",
"name": "생성 날짜별 정렬",
"type": "n8n-nodes-base.sort",
"position": [
1140,
200
],
"parameters": {
"options": {},
"sortFieldsUi": {
"sortField": [
{
"fieldName": "createdTime"
}
]
}
},
"typeVersion": 1
},
{
"id": "bc3a71c4-e073-4ef0-b74e-62e6005ee3c7",
"name": "항목 순회",
"type": "n8n-nodes-base.splitInBatches",
"position": [
1360,
200
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "5698ad5a-7635-423c-a63c-a1d5266551ea",
"name": "이미지 권한 업데이트",
"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": "슬라이드를 PDF로 변환",
"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": "제한: 1페이지",
"type": "n8n-nodes-base.limit",
"position": [
1580,
0
],
"parameters": {
"keep": "lastItems"
},
"typeVersion": 1
},
{
"id": "0028a6c9-460b-4ee9-968c-f46b6102fd44",
"name": "필터: 이미지만",
"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": "최종 PDF 파일 업로드",
"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": "메모지",
"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 파일 이름 설정",
"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": "첫 번째 빈 슬라이드 삭제",
"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 템플릿 복사",
"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": "생성된 프레젠테이션 가져오기",
"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": "프레젠테이션 폴더 ID 가져오기",
"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": "폴더 내 모든 파일 가져오기",
"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": "빈 슬라이드 생성",
"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": "슬라이드에 이미지 추가",
"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": "메모지2",
"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": "메모지3",
"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": "메모지4",
"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
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 디자인, 인공지능, 마케팅
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Meta 광고 라이브러리 스크래핑 및 Gemini를 사용한 비디오 광고 분석, 데이터를 Google Sheets에 저장
Gemini를 사용하여 Meta 광고 라이브러리 동영상 광고 분석 및 결과를 Google Sheets에 저장
Set
Code
Sort
+
Set
Code
Sort
24 노드Daniel Setzermann
인공지능
AI 기반 뉴스를 비디오로 변환하는 생성기(Heygen과 GPT4o 사용)
Heygen과 GPT-4o를 사용하여 RSS 뉴스를 AI 가상 인물 비디오로 변환
Set
Code
Wait
+
Set
Code
Wait
18 노드David Olusola
디자인
Browserflow와 Google Sheets를 사용한 LinkedIn 요청 및 첫 메시지 자동화
Browserflow 및 Google Sheets를 사용한 자동화된 LinkedIn 요청 및 아이스브레이킹 메시지
If
Set
Sort
+
If
Set
Sort
44 노드PollupAI
영업
내 작업 흐름 3
콘텐츠와 브랜드 가이드를 기반으로 9:16 비율 이미지 생성
Set
Wait
Limit
+
Set
Wait
Limit
39 노드Alex Kim
인공지능
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업
Google Drive 이미지에서 고급 배경 제거
Google Drive 이미지 자동 배경 제거
If
Set
Merge
+
If
Set
Merge
16 노드Simon
디자인
워크플로우 정보
난이도
고급
노드 수20
카테고리3
노드 유형10
저자
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
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유