Passa al contenuto principale

Dividi il PDF in base al testo in Power Automate: trasforma un batch di documenti scansionati in file separati con PDF4me

· 24 minuti di lettura
SEO and Content Writer

PDF4me Dividi il PDF in base al testo è un'azione di Power Automate che taglia un PDF in più file ovunque appaia un marcatore di testo. Questo flusso monitora una cartella di SharePoint, divide ogni nuova scansione su un Serial#: Un marcatore, quindi esegue un ciclo di scansione dei risultati in Dropbox. Una singola scansione in batch genera tre file denominati, senza necessità di selezionare manualmente le pagine.

Chiunque utilizzi uno scanner conosce il problema. Qualcuno inserisce una pila di documenti nell'alimentatore, preme il pulsante di scansione una sola volta e si ottiene un singolo PDF contenente venti documenti non correlati. Qualsiasi strumento online per dividere i documenti che compare nella prima pagina di Google risolverebbe volentieri il problema, a patto che sia una persona a caricare il file, selezionare le pagine e scaricare i singoli frammenti. Questo va bene una volta. Il problema sorge quando lo scanner è in funzione ogni mattina. Questo flusso di lavoro elimina completamente l'intervento umano.

Il flusso in sintesi
1. When a file is created in a folder
SharePoint trigger watching /Shared Documents/ScanSplitInput.
2. PDF - Split PDF by Text
PDF4me cuts the scan before every page carrying the Serial#: marker.
3. For each
Loops over body/splitedDocuments, once per split file.
4. Create file
Dropbox writes each piece into /ScanSplitOutput under its own name.
La versione breve

Una scansione viene salvata in una libreria di SharePoint. PDF4me legge il livello di testo, individua ogni pagina che inizia un nuovo record e restituisce un array di file PDF separati. Un ciclo "For each" scorre l'array e carica ciascun file in Dropbox. Quattro azioni, nessuna espressione da scrivere, e l'intera operazione si conclude in meno di sei secondi.

Domande e risposte basate sul "perché"

Perché suddividere in base al testo anziché al numero di pagine? Il conteggio delle pagine funziona solo quando ogni record ha la stessa lunghezza. I lotti reali non sono uniformi. Una fattura occupa una pagina, la successiva quattro. Un indicatore di testo accompagna il record, in modo che la suddivisione rimanga corretta indipendentemente dalle variazioni di lunghezza.

Perché il PDF ha bisogno di un livello di testo? L'azione cerca il testo all'interno del documento, non i pixel. Una fotografia o una scansione a superficie piana senza OCR applicato non contiene testo da cercare, quindi ogni corrispondenza restituisce un risultato vuoto. Esegui prima l'OCR e lo stesso flusso funzionerà anche sui documenti cartacei originali.

Perché un ciclo For each dopo la divisione? L'azione restituisce un array, non un singolo file. Power Automate non può scrivere un array nella memoria di archiviazione in un'unica operazione, quindi il ciclo trasforma "tre documenti" in tre chiamate separate alla creazione di file.

Perché inviare l'output a Dropbox e non di nuovo a SharePoint? Principalmente per abitudine, inoltre mantiene le cartelle di input e output visibilmente separate durante i test. Sostituisci l'ultima azione con "Crea file SharePoint" e nient'altro nel flusso cambierà.


Cosa riceverai

Ingresso: un PDF multi-record inserito in una raccolta documenti di SharePoint, dove ogni record inizia con una riga che legge Serial#: SPTEST-A, Serial#: SPTEST-Be così via. Produzione: Un file PDF per ogni record in una cartella Dropbox, ciascuno contenente esattamente le pagine relative a quel record.

Raccolta di documenti di SharePoint che mostra la cartella ScanSplitInput contenente scan-split-test.pdf e sharepoint-trigger-test.pdf, entrambi modificati dall'account Pdf4me Flow.

La cartella SharePoint monitorata. Qualsiasi elemento che finisce qui avvia un'esecuzione.

Elenco delle cartelle Dropbox ScanSplitOutput sharepoint-trigger-test 1.pdf, sharepoint-trigger-test 2.pdf e sharepoint-trigger-test 3.pdf prodotte dalla divisione

Una scansione di tre pagine, tre PDF numerati separatamente in uscita.


Di cosa hai bisogno

  • Power Automate. Open Power AutomateUna licenza standard di Microsoft 365 copre tutto ciò che viene utilizzato qui. Si tratta di un flusso cloud, non di Power Automate Desktop.
  • Chiave API di PDF4me. Ottieni la tua chiave APICollegalo la prima volta che aggiungi un'azione PDF4me.
  • Un sito SharePoint e un account DropboxPrima di creare il flusso, crea una cartella di input in una raccolta documenti di SharePoint e una cartella di output in Dropbox, in modo che entrambi gli elementi di selezione abbiano un punto di riferimento.
  • Un PDF di prova con marcatori di testo ripetuti. scan-batch-sample.pdfTre pagine, ognuna delle quali inizia con la propria riga contenente il numero di serie.

Prendi prima i campioni. Una volta salvato il flusso, scarica il PDF di input e caricalo nella cartella di input di SharePoint. Qui troverai anche i tre file di output previsti, che potrai confrontare con quelli prodotti dalla tua esecuzione.


Il flusso in sintesi

  1. Quando un file viene creato in una cartella (Trigger di SharePoint) puntato a /Shared Documents/ScanSplitInput.
  2. PDF - Dividi il PDF in testo (PDF4me) con il testo di ricerca Serial#:(.*) e tipo diviso before.
  3. Per ciascuno iterazione body/splitedDocuments.
  4. Crea file (Dropbox) scrivere in /ScanSplitOutput.

Panoramica completa del flusso

La cronologia di esecuzione di Power Automate mostra quattro azioni riuscite in ordine: SharePoint Quando viene creato un file in una cartella a 0,3 secondi, PDF Dividi PDF per testo a 0,4 secondi, Per ciascuno a 4 secondi che mostra l'iterazione 1 di 3 e Dropbox Crea file a 1 secondo

L'intero flusso si compone di quattro azioni. Per ogni lettura del contatore "1 di 3" la divisione sta svolgendo il suo compito.


Passaggio 1: Come si monitora una cartella di SharePoint per rilevare nuove scansioni?

Flusso finora: Ancora niente, questo è l'elemento scatenante.

Il trigger si attiva ogni volta che un file viene trovato in una specifica cartella della raccolta documenti. Seleziona la cartella con precisione. Impostandolo sulla directory principale di una raccolta condivisa, ogni caricamento di file non correlati avvierà l'attivazione del trigger.

  1. Crea un nuovo Flusso di nuvole automatizzato e cercare nell'elenco dei trigger Quando un file viene creato in una cartella.
  2. Specificare:
    • Indirizzo del sito: il tuo sito, ad esempio PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints
    • ID cartella: /Shared Documents/ScanSplitInput
  3. Aprire Parametri avanzati e accendere Dedurre il tipo di contenuto, quindi impostalo su Yes.

configurazione del trigger di SharePoint

Power Automate Quando viene creato un file in una cartella, attiva un pannello di attivazione con Indirizzo sito impostato su PDF4me Sharepoints, ID cartella impostato su /Shared Documents/ScanSplitInput e il parametro avanzato Deduzione tipo di contenuto impostato su Sì

L'impostazione "Inferisci tipo di contenuto" su "Sì" fa sì che il trigger ti restituisca dei veri byte PDF anziché un blocco di dati generico.

Mancia. Questo trigger ha un'etichetta "(obsoleto)" nel selettore. Funziona ancora ed è quello mostrato qui, ma per un nuovo flusso di produzione preferire Quando viene creato un file (solo proprietà) seguito da Ottieni il contenuto del file. Il resto del flusso è identico, perché entrambi i percorsi terminano con i byte del file in mano. Microsoft elenca ogni trigger e il suo stato in Riferimento ai connettori SharePoint.


Passaggio 2: Come fa la funzione "Dividi PDF per testo" a decidere dove tagliare?

Flusso finora: Attivatore SharePoint.

Questa è l'azione che svolge il lavoro vero e proprio. Legge il livello di testo del documento, trova tutte le pagine che contengono il testo cercato e taglia il documento in corrispondenza di tali pagine. Tutto il resto è solo un'operazione di base.

  1. Aggiungi un nuovo passaggio e cerca PDF - Dividi il PDF in testo.
  2. Specificare:
    • Contenuto del file: File Content dal grilletto
    • Nome del file: x-ms-file-name-encoded dal grilletto
    • Testo: Serial#:(.*)
    • Tipo diviso: before
    • Denominazione dei file divisi: NameAsPerOrder
  3. Collega il tuo account PDF4me quando ti viene richiesto di farlo.

Dividi il PDF in base ai parametri di testo

ParametroValore utilizzato quiCiò che controlla
Contenuto del fileFile Content dal grillettoI byte del PDF da dividere. Deve trattarsi di un PDF valido con un livello di testo ricercabile.
Nome del filex-ms-file-name-encodedNome sorgente utilizzato per l'identificazione del processo e come radice per i nomi di output.
TestoSerial#:(.*)Il marcatore che avvia un nuovo record. La corrispondenza è sensibile alle maiuscole/minuscole, quindi serial#: non troverebbero nulla.
Tipo divisobeforeTaglia immediatamente prima di ogni pagina corrispondente, in modo che la pagina del marcatore apra il proprio documento. after per chiudere invece quello precedente.
Denominazione dei file divisiNameAsPerOrderNumera le uscite nell'ordine in cui sono state tagliate, producendo name 1.pdf, name 2.pdf, name 3.pdf.
Pannello di azione PDF4me PDF Split PDF by Text che mostra il contenuto del file mappato dal trigger di SharePoint, il nome del file mappato a x-ms-file-name-encoded, il testo impostato sul modello di ricerca Serial#, il tipo di divisione impostato su before e la denominazione del file diviso impostata su NameAsPerOrder

La distinzione tra "Split Type" e "Before" indica la differenza tra un indicatore che apre il suo record e quello che lo sovrasta che lo chiude. Se si sbaglia questo passaggio, ogni file risulterà sfalsato di una pagina.

Mancia. Scegli un indicatore che non possa comparire in nessun altro punto del documento. Serial#: è sicuro. Una semplice parola come Invoice No, perché corrisponderà anche alla frase "Totale fattura" a metà pagina e la dividerà anche lì.


Passaggio 3: Perché è necessario un ciclo For each in questo caso?

Flusso finora: Attivazione tramite trigger di SharePoint e divisione di un PDF in base al testo.

L'azione di divisione restituisce un array chiamato splitedDocumentsOgni voce contiene un file di output. Power Automate non offre un modo per scrivere un intero array nella memoria di archiviazione con una singola azione, quindi l'array deve essere percorso una voce alla volta.

  1. Aggiungi un Controllare azione e scelta Per ciascuno.
  2. Specificare:
    • Seleziona un output dai passaggi precedenti: body/splitedDocuments dall'azione Dividi PDF per testo
  3. Lascia la concorrenza del ciclo al valore predefinito. Questi file sono piccoli e l'ordine è più facile da leggere quando le esecuzioni rimangono sequenziali. Microsoft documenta i limiti di concorrenza e annidamento nel Applicare a ciascun riferimento.

Per ogni configurazione

Power Automate Per ogni pannello di azioni con il campo Seleziona un output dai passaggi precedenti popolato con il token body/splitedDocuments dall'azione PDF4me Dividi PDF per testo

Un singolo token rappresenta l'intera configurazione. Se Power Automate ha automaticamente racchiuso l'azione "Crea file" in un ciclo, lo ha già fatto per te.

Questa è la riga che decide se il flusso funziona. Se si punta il ciclo verso qualcosa di diverso da corpo/documenti divisiL'azione "Crea file" al suo interno verrà eseguita una sola volta con il payload errato oppure non verrà eseguita affatto.


Passaggio 4: Come si salva ciascun file suddiviso su Dropbox?

Flusso finora: Attivatore SharePoint più Dividi PDF per testo più Per ciascuno.

All'interno del ciclo, ogni iterazione espone il file attualmente suddiviso tramite due token: fileName E streamFileMappali in linea retta.

  1. All'interno del Per ciascuno blocco, aggiungi un Dropbox azione e scelta Crea file.
  2. Specificare:
    • Percorso cartella: /ScanSplitOutput
    • Nome del file: fileName
    • Contenuto del file: streamFile
  3. Collega il tuo account Dropbox quando richiesto.

Dropbox Crea configurazione file

Pannello di azione Dropbox Crea file all'interno del ciclo Per ogni con Percorso cartella impostato su /ScanSplitOutput, Nome file mappato al token fileName e Contenuto file mappato al token streamFile dall'azione di divisione PDF4me

fileName e streamFile provengono dall'elemento del ciclo corrente, non dal trigger. Entrambi i token riportano l'icona di PDF4me.

Mancia. Assicurati che la cartella di output sia diversa da quella di input. Scrivere i file suddivisi nella cartella monitorata dal trigger crea un ciclo che si riattiva automaticamente sul proprio output, un metodo dispendioso in termini di tempo per individuare il problema.


Esegui il flusso e verifica

  1. Salva il flusso in alto a destra.
  2. Caricamento scan-batch-sample.pdf nella cartella SharePoint monitorata dal trigger. Il trigger esegue un polling, quindi attendi un minuto anziché aspettarti un'esecuzione immediata.
  3. Apri il flusso storia di corsa e confermare che tutte e quattro le azioni abbiano un segno di spunta verde. Il blocco Per ogni mostra un contatore e dovrebbe essere letto 1 di 3 per il file di esempio.
  4. Aprire /ScanSplitOutput in Dropbox. Dovresti vedere tre file PDF numerati 1, 2 e 3, ognuno contenente esattamente un record Serial#.

Che cosa hai costruito esattamente? Un separatore di documenti consapevole del contenuto. Le stesse quattro azioni funzionano su qualsiasi batch in cui ogni record si identifica con una stringa coerente, che si tratti di un numero di fattura, un ID paziente, un riferimento al caso o un titolo di capitolo. La stessa azione PDF4me esiste in Fare, Zapier E n8n, quindi lo schema si sposta da una piattaforma all'altra, cambiando solo i passaggi di attivazione e archiviazione.


Varianti comuni che puoi aggiungere senza dover ricostruire

OCR prima la scansione
Gli originali cartacei non hanno un livello di testo. Inserendo un'azione OCR di PDF4me tra il trigger e la divisione, le scansioni contenenti solo immagini inizieranno a corrispondere allo stesso marcatore.
Dividere invece in base a un codice a barre
Se lo scanner inserisce fogli separatori, invertire l'azione per Dividi il PDF tramite codice a barreStesso ciclo, stesso file di creazione, metodo di rilevamento diverso.
Percorso per contenuto
Aggiungi una condizione all'interno del ciclo che legga il nome del file corrente e scriva in una cartella diversa per ogni prefisso. Una singola scansione si ramifica poi in diverse destinazioni.
PDF4me a confronto con le alternative
Consulta la tabella comparativa qui sotto per vedere in che modo questo approccio si differenzia dagli splitter online manuali e da Power Automate Desktop.
Cloudflow a confronto con le alternativeFunziona senza supervisioneDivisioni sui contenutiRichiede un computer desktop
PDF4me in un flusso cloud di Power AutomateSì, su qualsiasi indicatore di testoNO
Splitter manuale onlineNo, ogni file viene caricato da una persona.A volte, tramite il selettore di paginaNO
Power Automate DesktopSolo mentre la macchina è accesaDipende dalle azioni installate

Domande frequenti

Come dividere un PDF in Power Automate?

Aggiungi il PDF - Dividi il PDF in testo azione da PDF4me a un flusso cloud, mappa i byte PDF in Contenuto del filee dargli un Testo valore da cercare. L'azione restituisce un array di PDF separati in body/splitedDocuments. Avvolgi un'azione di archiviazione come Dropbox Crea file in un Per ciascuno Esegui un ciclo su quell'array e salva ogni elemento.

Non è prevista alcuna espressione scritta. Le quattro azioni mostrate in questo post costituiscono l'intero flusso.

È possibile dividere un PDF in base al contenuto tramite Power Automate?

Sì, è esattamente ciò che fa questo flusso. Power Automate non dispone di una funzione nativa per la divisione dei PDF, quindi il riconoscimento del contenuto proviene dal connettore PDF4me. Questo connettore legge il livello di testo del documento e taglia in corrispondenza della stringa di ricerca, il che significa che la divisione segue i record anziché un numero fisso di pagine.

L'unico requisito è la presenza di un vero e proprio strato di testo. Una scansione che non è mai stata elaborata tramite OCR è, per la ricerca, solo un insieme di parole.

Come si divide un PDF in più file in Power Automate?

La divisione in sé è un'unica operazione, ma per ottenere più file da essa ne occorrono due. Dividi il PDF in base al testo produce l'array e un Per ciascuno Il ciclo trasforma quell'array in una chiamata di creazione file per ogni documento. Saltare il ciclo è la ragione più comune per cui si ottiene un singolo file di output anziché diversi.

Nell'esempio eseguito qui, una scansione di tre record produce tre file denominati sharepoint-trigger-test 1.pdf Attraverso sharepoint-trigger-test 3.pdf, Perché Denominazione dei file divisi è stato impostato su NameAsPerOrder.

La funzione di divisione dei PDF funziona in Power Automate Desktop?

Questo flusso è un flusso cloud, e questa è una scelta deliberata. Viene eseguito sull'infrastruttura Microsoft ogni volta che un file viene caricato su SharePoint, senza la necessità di tenere acceso un computer fisso o di gestire un gateway. Power Automate Desktop può richiamare la stessa API di PDF4me, ma in questo caso è necessario gestire un computer programmato e i relativi tempi di attività.

Se i tuoi documenti sono già presenti in SharePoint, OneDrive o Dropbox, il flusso cloud è la soluzione più semplice.

È possibile dividere un PDF in base ai segnalibri anziché al testo?

Non con questa azione. Dividi il PDF in base al testo corrispondenze solo sul livello di testo. Se i documenti sorgente contengono segnalibri affidabili, gli equivalenti PDF4me più vicini sono Dividi il PDF per numero di pagina, oppure Dividi il PDF tramite codice a barre quando sono in uso fogli separatori.

In pratica, un marcatore di testo è più affidabile di un segnalibro su materiale scansionato, perché gli scanner non creano segnalibri ma conservano ciò che era stampato sulla pagina.


Risoluzione dei problemi

Il flusso viene eseguito, ma in Dropbox compare un solo file.

L'azione Crea file si trova al di fuori del ciclo Per ogni, oppure il ciclo punta al token sbagliato. Apri il ciclo e verifica che venga letto corpo/documenti divisie verificare che il file creato si trovi all'interno del limite del ciclo anziché al di sotto di esso.

La divisione restituisce il file originale, invariato

Nessuna pagina corrispondeva al testo cercato, quindi non c'era nulla da tagliare. Controlla prima le maiuscole e le minuscole, perché la corrispondenza è sensibile alle maiuscole e minuscole. Quindi apri il PDF e prova a selezionare il testo del marcatore con il cursore. Se non viene evidenziato, il documento non ha un livello di testo e necessita di OCR prima che questa azione possa rilevare qualcosa.

Ogni file di output è sfalsato di una pagina

Il tipo di divisione è impostato sul valore errato. Con Prima, la pagina che contiene il marcatore inizia un nuovo documento. Con Dopo, termina il precedente. Inverti l'impostazione e riavvia.

Il flusso continua ad attivarsi

La cartella di output è la stessa cartella monitorata dal trigger, quindi ogni file suddiviso avvia un'altra esecuzione. Imposta la creazione del file su una cartella separata, in questo caso Dropbox. /ScanSplitOutput percorso, e il ciclo si ferma.


Prossimi passi

Lo stesso schema in quattro fasi (monitorare una cartella, dividere in base a un marcatore, iterare sull'array, salvare ogni parte) gestisce qualsiasi documento batch che deve essere suddiviso in più copie.