Ana içeriğe geç

Power Automate'te Dropbox Klasörüne Bırakılan Her PDF Dosyasını Otomatik Olarak Birleştirme: 6 Adımlı Dinamik İş Akışı

· 23 dakikalık okuma
SEO and Content Writer

"Bu PDF'leri birleştir" taleplerinin acı veren kısmı birleştirme değil, şudur: Çalışma zamanında klasörün içinde ne olduğunu bilmekİsimler değişiyor, dosyalar gelip gidiyor, biri saat 16:55'te beşinci bir belge ekliyor. Bu kılavuz, tam olarak bu modelin nasıl işlediğini gösteriyor. Güç Otomasyonu ile PDF4me Birden fazla PDF dosyasını birleştirin, Dropboxve her döngüye tek bir Uygula işlemi. Altı akış eylemi. Sıfır sabit kodlanmış dosya adı. İzlenen klasördeki her PDF, yeni bir dosya geldiği anda bir araya getirilir ve çıktı adı dosya sayısını içerir, böylece her çalıştırma benzersiz bir şekilde tanımlanabilir.

Akışa genel bakış
1. When a file is created
Dropbox trigger on /blog data/merge files dropbox. Fires the moment any file lands.
2. List files in folder
Dropbox action on the same folder. Returns every current file as an array of metadata objects.
3. Initialize variable
Name Files, Type Array. Buffer for the binary content of every file.
4. Apply to each
Loop body(List_files_in_folder). Inside, Get file content by Id, then Append to array with base64ToBinary on $content.
5. Merge multiple PDFs
PDF4me action. Body/docContent the Files array, Output File Name Output.pdf. One consolidated PDF out.
6. Create file
Dropbox /blog data/merge blog template/output. File Name expression concat(merge-, length(List_files_in_folder), .pdf).
kısa versiyon

A Bir dosya oluşturulduğunda Dropbox tetikleyicisi her yeni yüklemede devreye giriyor. Klasördeki dosyaları listele Klasörde bulunan her dosyanın anlık görüntüsünü döndürür (bu çalıştırmada dört PDF dosyası): PDF_Örnek.pdf, örnek_3_sayfa.pdf, örnek_pdf.pdf, örnek.pdf). Her birine uygula döngüsü bu listede gezinir, çağırır Dosya içeriğini al Kimlik numarasına göre ve itiyor base64ToBinary(body('Get_file_content')?['$content']) adlı bir dizi değişkenine DosyalarPDF4me'nin Birden fazla PDF dosyasını birleştirme Diziyi tüketir ve bir PDF dosyası oluşturur. Dropbox Dosya oluştur bunu şu şekilde geri yazıyor: birleştirme-4.pdfÇünkü dört giriş dosyası vardı. Yarın beşinci bir dosya ekleyin ve bir sonraki çalıştırmada sonuç aynı olacaktır. birleştirme-5.pdf otomatik olarak.

Neden Odaklı Soru-Cevap

Klasördeki tetikleyici ve dosya listeleme özelliklerini neden birlikte kullanmalıyız? Bu tetikleyici size tek bir yeni dosya olayı bildirir, ancak klasördeki diğer her şeyin güncel bir listesini garanti etmez. Klasördeki dosyaları listele Çalışma zamanındaki mevcut durumun anlık görüntüsünü alır, bu nedenle birleştirme işlemi her zaman tetikleyici çalıştığında veya akış tasarlandığında diskte bulunanı değil, tam olarak şu anda diskte bulunanı yansıtır.

Neden Path yerine Id ile veri çekiliyor? Dosya adları çakışabilir veya değişebilir. Dropbox kimlikleri sabittir, benzersizdir ve yeniden adlandırmaya karşı bağışıklıdır. Eşleme İD Liste dosyalarından Dosya içeriğini al Bu, kullanıcının bir dosyayı işlem sırasında yeniden adlandırması veya iki dosyanın farklı alt klasörlerde aynı görünen ada sahip olması durumunda bile döngünün çalışmaya devam edeceği anlamına gelir.

Neden base64ToBinary(...) Açık $içerik? Dropbox Dosya içeriğini al Dosyayı bir parantez içine alınmış base64 dizesi olarak döndürür. $içerik PDF4me'nin "Birden fazla PDF dosyasını birleştir" eylemi, base64 dizeleri değil, ikili arabelleklerden oluşan bir koleksiyon bekler. base64ToBinary(body('Get_file_content')?['$content']) Bu, dosya diziye ulaştığı anda her dosyayı dönüştüren köprüdür.

Çıktı dosya adını neden bu şekilde oluşturuyoruz? birleştirme() Ve uzunluk()? Sabit kodlama Çıktı.pdf Bu, her çalıştırmanın bir öncekini üzerine yazacağı anlamına gelir. concat('merge-', string(length(body('Klasördeki_dosyaların_listesi'))), '.pdf') Dosya sayısını isme ekler, böylece ardışık çalıştırmalar aynı şekilde kaydedilir. birleştirme-3.pdf, birleştirme-4.pdf, birleştirme-5.pdfBonus: Çıktı klasörüne hızlıca göz atarak her seferinde kaç dosyanın kapsam içinde olduğunu görebilirsiniz.


Neler Alacaksınız?

Giriş: Dropbox klasörü şu adreste: /blog data/merge files dropbox İçine attığınız tüm PDF dosyalarını içerebilir. Bu kılavuzda dört farklı yöntem kullanılmaktadır: PDFA_Sample.pdf, sample_3_page.pdf, sample_pdf.pdf, sample.pdf. Çıktı: Tek bir birleştirilmiş PDF dosyası /blog data/merge blog template/output/ adı merge-N.pdf Neresi N Bu, çalışma zamanındaki dosya sayısıdır. Daha fazla dosya ekleyin ve bir sonraki çalıştırma bunları otomatik olarak algılar.

Koşudan önceki Dropbox klasörü

Dropbox klasörü /blog data/merge files, adı sırasına göre sıralanmış dört PDF dosyasını listeliyor: PDFA_Sample.pdf 16.5 KB, sample_3_page.pdf 2.48 KB, sample_pdf.pdf 2.14 KB, sample.pdf 97.67 KB. Tüm dosyalara yalnızca sizin erişiminiz izin veriliyor.

Çalıştırma işleminden sonraki Dropbox klasörü

Dropbox çıktı klasöründe merge-3.pdf (37,22 KB) ve merge-4.pdf (110,78 KB) dosyaları listelenmiştir; her çıktı, akış çalıştırıldığında kapsamda bulunan dosya sayısına göre adlandırılmıştır.

İkinci çalıştırmada klasörde dört dosya vardı, bu nedenle çıktı şu şekildedir: birleştirme-4.pdfÖnceki seride üç tane vardı.


İhtiyacınız Olanlar

  • Güç Otomasyonu. Open Power Automate. Premium bağlantı noktalarına sahip herhangi bir plan (PDF4me Connect premium bir plandır).
  • PDF4me API anahtarı. API anahtarınızı alınPDF4me eylemini ilk kez eklediğinizde bağlantıyı kurun.
  • DropboxGiriş PDF'leri için kaynak klasör, birleştirilmiş çıktı için hedef klasör. SharePoint, OneDrive ve Google Drive, ilgili bağlantı araçlarıyla aynı şekilde çalışır.
  • Birkaç PDFHerhangi bir boyut, herhangi bir kombinasyon. Bu kılavuz dört örnek kullanmaktadır: PDF_Örnek.pdf, örnek_3_sayfa.pdf, örnek_pdf.pdf, örnek.pdfEkran görüntülerinin her birini birebir kopyalamak için bunları ekleyin.

Öncelikle girdi kümesini ve beklenen çıktıyı alın. Dört örneği indirin. /blog verileri/dosyaları dropbox'a birleştir Dropbox'ınıza yükleyin, ardından akışı yayınlayın. İlk çalıştırmanız bir sonuç üretmelidir. birleştirme-4.pdf Burada bağlantısı verilenle tamamen aynı.


Akışa Genel Bakış

  1. Dropbox: Bir dosya oluşturulduğunda (tetiklemek).
  2. Dropbox: Klasördeki dosyaları listeleİzlenen klasörde bulunan tüm dosyaları döndürür.
  3. Değişkeni başlat adı Files (Sıralamak).
  4. Her birine uygulayın Açık body('List_files_in_folder'):
    • Dropbox: Dosya içeriğini al ile Id.
    • Dizi değişkenine ekle ile base64ToBinary(body('Get_file_content')?['$content']).
  5. PDF4me: Birden fazla PDF dosyasını tek bir PDF dosyasına birleştirin.. Files içinde, Output.pdf dışarı.
  6. Dropbox: Dosya oluştur. Dosya adı concat('merge-', string(length(body('List_files_in_folder'))), '.pdf').

Akışın genel görünümü

Power Automate akış tuvali, yukarıdan aşağıya doğru sıralanmış altı eylemi göstermektedir: Dosya oluşturulduğunda, Klasördeki dosyaları listele, Değişkeni başlat, Her birine uygula, Dosya içeriğini al ve dizi değişkenine 4 kez yineleyerek ekle, Birden fazla PDF dosyasını tek bir PDF dosyasına birleştir, Dosya oluştur

Altı işlem. Her karta uygula seçeneği "4'te 1" gösteriyor çünkü izlenen klasör çalışma sırasında dört PDF dosyası içeriyordu.


Adım 1: Dropbox: Dosya Oluşturulduğunda (Tetikleyici)

Şu ana kadarki akış: Sadece tetikleyici.

  1. İçinde Güç Otomasyonu tıklamak Yaratmak, seçmek Otomatik bulut akışı.
  2. Akışa bir isim verin (örneğin: Auto-Merge Dropbox Folder), seçmek Dropbox: Bir dosya oluşturulduğunda tetikleyici olarak tıklayın Yaratmak.
  3. Bağlamak Henüz yapmadıysanız Dropbox'ı kullanın.
  4. Yapılandır:
    • Dosya: /blog data/merge files dropbox
    • Gelişmiş parametrelerVarsayılan değerde bırakın (1 üzerinden 0 gösteriliyor).

Tetikleyici yapılandırması

Power Automate Dropbox Dosya oluşturulduğunda tetikle, Klasör /blog data/merge files dropbox olarak ayarlanmış ve Gelişmiş parametreler daraltılmış, 0/1 gösteriliyor, Dropbox'a bağlı

Tetikleyici, izlenen klasörü kontrol eder ve her yeni yüklemede çalışır. Varsayılan kontrol sıklığı plana göre değişir, genellikle 1 ila 5 dakikadır.


Adım 2: Dropbox: Klasördeki Dosyaları Listele

Şu ana kadarki akış: Tetikleyiciyi çalıştır ve klasördeki dosyaları listele.

Tetikleyici tek bir yeni dosya üzerinde çalışır. Birleştirme işlemi için klasörde bulunan tüm PDF dosyalarına ihtiyaç duyulur. Klasördeki dosyaları listele Çalışma zamanında klasör içeriğinin yeni bir anlık görüntüsünü alır.

  1. Tıklamak + Yeni adım, aramak Dropbox, seçmek Klasördeki dosyaları listele.
  2. Yapılandır:
    • Dosya: /blog data/merge files dropbox (tetikleyiciyle aynı yol)

Dosya listesi yapılandırması

Power Automate Dropbox List files in folder action with Folder set to /blog data/merge files dropbox, Connected to Dropbox
  1. Eylem geri dönüyor body('List_files_in_folder')Dosya meta verisi nesnelerinin bir dizisi. Her nesne şunları içerir: Id, Name, DisplayName, Path, LastModified, Ve SizeSonraki adımda bu dizi üzerinde döngü yapılır.

Uç. Klasörünüzde karışık içerik (PDF'ler, resimler ve Office belgeleri) varsa ve yalnızca PDF'leri birleştirmek istiyorsanız, şunu ekleyin: Filtre dizisi Bu adımdan sonraki eylem, ifadeyle birlikte gerçekleştirilir. endsWith(toLower(item()?['Name']), '.pdf') ve filtrelenmiş diziyi bunun yerine döngüye besleyin.


Adım 3: Değişken Dosyalarını Başlatma

Şu ana kadarki akış: Tetikleyici artı Dosyaları listele artı Değişkeni başlat.

Birleştirme işlemi bir ikili dosya koleksiyonu istiyor. Bunları toplamak için boş bir dizi ayırın.

  1. Tıklamak + Yeni adım, seçmek Değişkeni başlat.
  2. Yapılandır:
    • İsim: Files
    • Tip: Array
    • Değer: boş bırakın

Değişken yapılandırmasını başlatın

Power Automate'te, Adı Dosyalar ve Türü Dizi olarak yapılandırılmış ve Değer alanı boş bırakılmış bir Değişkeni Başlat eylemi.

Adım 4: Her Birine Uygula, Dosya İçeriğini Al ve Diziye Ekle

Şu ana kadarki akış: Tetikleyiciyi etkinleştir, Dosyaları listele, Değişkeni başlat, Her birine uygula.

Bu, akışın kalbidir. Anlık görüntünün döndürdüğü her dosyayı döngüye alın, baytlarını alın, ikiliye dönüştürün ve ardından sisteme ekleyin. Files.

Adım 4a: Her birine uygulayın (kaynağı seçin)

  1. Tıklamak + Yeni adım, seçmek Her birine uygulayın.
  2. Yapılandır:
    • Önceki adımlardan bir çıktı seçin. (ifade): body('List_files_in_folder')
Power Automate'te "Önceki adımlardan bir çıktı seçin" ifadesinin gövdesine "List_files_in_folder" tırnak işaretiyle "List_files_in_folder" tırnak işaretiyle "close paren" kapatılarak her eyleme uygulayın; burada "List_files_in_folder" ifadesinden "Body" belirteci gösterilir.

Adım 4b: Dosya içeriğini alın (döngü içinde)

  1. Döngünün içinde tıklayın Bir işlem ekle, seçmek Dropbox: Dosya içeriğini al.
  2. Yapılandır:
    • Dosya: seçin İD Klasördeki dinamik içerikteki dosyaları listele seçeneğinden alınan belirteç (otomatik olarak geçerli öğenin kimliğine çözümlenir).
    • İçerik Türünü Çıkar: Yes (Gelişmiş parametreler altında)
Power Automate Dropbox Dosya içeriğini alma eylemi, Dosya ayarı klasördeki dosyaları listele bölümünden Kimlik belirteciyle, Gelişmiş parametre İçerik Türünü Çıkar Evet olarak ayarlandığında, sağda klasördeki dosyaları listele bölümünden Kimlik, Ad, Görünen Ad, Yol, Son Değiştirme, Boyut belirteçlerini gösteren dinamik içerik paneli açılır.

Adım 4c: Dizi değişkenine ekle (döngü içinde)

  1. Aşağıda Dosya içeriğini al, Bir işlem ekle, seçmek Dizi değişkenine ekle.
  2. Yapılandır:
    • İsim: Files
    • Değer (ifade, tıklayın) fx): base64ToBinary(body('Get_file_content')?['$content'])
Power Automate'te "Her birine uygula" döngüsü içinde dizi değişkenine ekleme, Dosyaları adlandırma, Değeri ifade düzenleyicisinde gösterilen base64ToBinary gövdesine ayarlama: açılış tırnak işareti Get_file_content kapanış tırnak işareti kapanış parantez soru işareti dolar içeriği kapanış köşeli parantez

Her şeyi birbirine bağlayan tek satır bu. Dropbox her dosyayı şu şekilde döndürür: { "$content": "<base64 string>", "$content-type": "application/pdf" }Birleştirme işlemi ikili bir arabellek istiyor. base64ToBinary(...) Açık $içerik İkisini birleştirir. Dönüştürmeyi atlayın ve "geçersiz içerik" ile ilgili birleştirme işlemi hatalarını giderin.


Adım 5: PDF4me: Birden Çok PDF Dosyasını Tek Bir PDF Dosyasında Birleştirme

Şu ana kadarki akış: Tetikleyiciyi çalıştır, Dosyaları listele, Değişkeni başlat, Her birine uygula, Birden çok PDF dosyasını birleştir.

Tüm veriler girilir ve tek bir PDF dosyası çıkar.

  1. "Her döngüye uygula" seçeneğinin altında yer almaktadır. + Yeni adım, aramak PDF4me, seçmek Birden fazla PDF dosyasını tek bir PDF dosyasına birleştirin..
  2. Bağlamak PDF4me'ye API anahtarınızla bağlanın (yalnızca ilk seferde).
  3. Yapılandır:
    • Gövde/belge içeriği: seçin Files değişken belirteç
    • Çıktı Dosya Adı: Output.pdf

Birleştirme işlemi yapılandırması

Power Automate PDF4me'de, "Body/docContent" değişkeni "Files" değişkenine ve "Output File Name.pdf" dosyasına ayarlanmış şekilde, birden fazla PDF dosyasını tek bir PDF dosyasına birleştirme işlemi gerçekleştirilir. Dinamik içerik paneli açılır ve şu seçenekler gösterilir: Değişkenler: Files, Apply to each, Current item, List files in folder, Body.
  1. PDF dosyaları birleştirildi. dizi sırasıBu, Dropbox'ın dosyaları döndürdüğü sıradır (genellikle isme göre alfabetik). Farklı bir sıralama gerekiyorsa, sıralayın. body('List_files_in_folder') ile Seçme Döngüden önceki eylem, örneğin şu şekilde: LastModified En yeniden başlayarak.

Uç. İçsel Çıktı.pdf "Name" yalnızca PDF meta veri başlığıdır, Dropbox dosya adı değildir. Gerçek Dropbox adı 6. adımda belirlenir. Bunu, Power Automate çalıştırma geçmişinde akış çalıştırmalarını bu isimle arayabilmeniz için sabit bir yer tutucu olarak saklayın.


Adım 6: Dropbox: Dinamik Dosya Adıyla Dosya Oluşturma

Şu ana kadarki akış: Tetikleyiciyi çalıştır, Dosyaları listele, Değişkeni başlat, Her birine uygula, Birden çok PDF dosyasını birleştir, Dosya oluştur.

Birleştirilmiş PDF dosyasını, dosya sayısını da içeren, çalışma zamanında hesaplanmış bir dosya adıyla Dropbox'a geri yazın.

  1. Tıklamak + Yeni adım, seçmek Dropbox: Dosya oluştur.
  2. Yapılandır:
    • Klasör Yolu: /blog data/merge blog template/output
    • Dosya adı (ifade, tıklayın) fx): concat('merge-', string(length(body('List_files_in_folder'))), '.pdf')
    • Dosya İçeriği: seçin Dosya İçeriği Birden çok PDF'i birleştirme işleminden gelen belirteç

Dosya adı ifadesi

Power Automate Dropbox Dosya Oluşturma eylemi Klasör Yolu /blog data/merge blog template/output, Dosya Adı ifadesi concat open paren merge dash comma string open paren length open paren body open quote List_files_in_folder close quote close paren close paren comma dot pdf close paren, Birleştirme eyleminden Dosya İçeriği

Son işlem hazır

Power Automate Dropbox Dosya Oluşturma eylemi, Klasör Yolu /blog data/merge blog template/output, Dosya Adı belirteci birleştirme ifadesi, Birden fazla PDF dosyasını tek bir PDF dosyasına birleştirme eyleminden Dosya İçeriği belirteci, Dosya İçeriğini gösteren dinamik içerik paneli, headers/FileName, headers/PageCount belirteçleri ile birlikte.

Aynı ifade ayrıca şunu da ortaya koymaktadır: başlıklar/SayfaSayısı Birleştirme çıktısında, birleştirilmiş PDF'nin kaç sayfa içerdiğini kaydetmek istediğinizde faydalı olur.

Uç. Dosya sayısı yerine çalıştırma işlemine tarih eklemeyi tercih ederseniz, ifadeyi değiştirin. concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf')Dosyalar şu şekilde gelir: merge-2026-06-12-094501.pdf ve tekrarlar asla çakışmaz.


Akışı Çalıştırın ve Doğrulayın

  1. Kaydetmek Sağ üstteki akış.
  2. Dosyalardan birini (veya dördünü) sürükleyip bırakın. /blog data/merge files dropboxHerhangi bir şey olur, yoklama aralığı birkaç dakika içinde tetikleyiciyi devreye sokar.
  3. Açın Çalıştırma geçmişi Sağ üst köşeye tıklayın ve işlemlerin yeşil renge dönüştüğünü izleyin. "Her birine uygula" seçeneği, klasörde dört dosya varsa "4'te 1" gibi doğru yineleme sayısını göstermelidir.
  4. Dropbox'ı şu adresten açın: /blog data/merge blog template/output/. adlı bir dosya merge-4.pdf Bekliyor. Açın, giriş klasöründeki tüm PDF dosyaları tek bir belgeye birleştirilecek.

Gerçekte ne inşa ettiniz? Her yeni yüklemeye tepki veren, çalışma zamanında tüm klasör durumunu okuyan ve her geçerli dosyayı içeren benzersiz isimli tek bir PDF yazan, sıfır dokunuşlu bir birleştirme hattı. Sabit kodlanmış listeler yok, zamanlanmış toplu iş yok, manuel tıklama yok. Aynı yöntem, sıfır değişiklikle 4 PDF veya 400 PDF'i işler. Aynı yöntem Make'te (Dropbox Liste Dosyaları Üzerinde Yineleyici) ve Zapier'da (Zapier tarafından Dosya Bulma sonuçları üzerinde Döngü) çalışır.


Yeniden derlemeye gerek kalmadan ekleyebileceğiniz yaygın varyasyonlar

Yalnızca PDF'leri filtrele
İçine bir tane ekleyin. Filtre dizisi 2. ve 3. adımlar arasındaki eylem ile endsWith(toLower(item()?['Name']), '.pdf')Döngü daha sonra .docx, .png ve klasördeki diğer tüm dosyaları yok sayar.
En yeniden başlayarak sırala
Ekle Seçme Listeyi eşleyen ve sıralayan eylem sort(body('Klasördeki_dosyaların_listesi'), 'SonDeğiştirilme Tarihi'). Tersine çevir tersi(...) Birleştirilmiş PDF'de en yeni içeriğin en üstte olmasını istiyorsanız.
Birleştirme işleminden sonra PDF/A'ya dönüştürün.
PDF4me'yi ekle PDF/A oluştur Uyumluluk ile 5. adım ile 6. adım arasında PDF/A-2bDropbox'a aktarılan çıktı artık ISO 19005 arşiv standardına uygun.
Arşiv kaynak dosyaları
6. adımdan sonra bir tane daha ekleyin. Her birine uygulayın Dosya listesi üzerinde işlem yapın ve Dropbox'ı çağırın. Dosyayı taşı her bir girdiyi itmek için /işlenmişSonraki çalıştırmada yalnızca yeni yüklenenler görülecektir.

Sorun giderme

"Geçersiz içerik" içeren eylem hatalarını birleştir.

Diziye Ekle Değer ifade sarmalanmamış base64ToBinary(...)Dönüştürme işlemi yapılmadığı takdirde dizi, ikili arabellekler yerine base64 dizeleri içerir ve PDF4me bunları reddeder. "Diziye Ekle" seçeneğini yeniden açın, ifade düzenleyicisine geçin ve yapıştırın. base64ToBinary(body('Get_file_content')?['$content']) kelimesi kelimesine.

Her çalıştırmaya sıfır kez uygulayın.

Tetikleyici çalıştı ancak List files boş bir dizi döndürdü. Tetikleyiciyi ve List files'ı kontrol edin. Dosya Değerler özdeş. Yol uyuşmazlıkları (birinde sondaki eğik çizgi, diğerinde yok) yaygın bir nedendir.

Dosya adı şu şekilde çıkıyor: birleştirme-.pdf

O uzunluk() Çağrı tasarım aşamasında çözümlenmedi. İfadeyi doğru şekilde yapıştırdığınızdan emin olun. Dosya adı saha aracılığıyla fx İfade düzenleyicisinde, düz metin olarak değil. Düz metin, süslü parantezleri olduğu gibi bırakır ve işlev asla çalışmaz.

Çıktı, önceki çalıştırmanın üzerine yazılır.

Aynı dosya sayısıyla yapılan iki ardışık çalıştırma, özdeş isimler üretir (birleştirme-4.pdf). Ya ifadeyi bir zaman damgasıyla değiştirin (concat('merge-', utcNow('yyyy-MM-dd-HHmmss'), '.pdf')) veya bir GUID ekleyin kılavuz().


Sonraki Adımlar

Aynı altı adımlı kalıp (izle, listele, döngüyle diziye dönüştür, birleştir, çalışma zamanı adıyla kaydet), herhangi bir "klasöre tepki ver" otomasyonunu ele alır. Yarın yeni bir dosya ekleyin, çalıştırma işlemi onu algılar. Düzenleme yok, yeniden dağıtım yok.