diff --git a/FileFlows.Common.dll b/FileFlows.Common.dll
index af090c27..13328f97 100644
Binary files a/FileFlows.Common.dll and b/FileFlows.Common.dll differ
diff --git a/FileFlows.Common.pdb b/FileFlows.Common.pdb
index 0237bcdc..fc8238fc 100644
Binary files a/FileFlows.Common.pdb and b/FileFlows.Common.pdb differ
diff --git a/FileFlows.Plugin.dll b/FileFlows.Plugin.dll
index 459b6da8..a95ed038 100644
Binary files a/FileFlows.Plugin.dll and b/FileFlows.Plugin.dll differ
diff --git a/FileFlows.Plugin.pdb b/FileFlows.Plugin.pdb
index 209cbb1c..ae662871 100644
Binary files a/FileFlows.Plugin.pdb and b/FileFlows.Plugin.pdb differ
diff --git a/FileFlowsPlugins.sln b/FileFlowsPlugins.sln
index 60672e05..3e49d123 100644
--- a/FileFlowsPlugins.sln
+++ b/FileFlowsPlugins.sln
@@ -45,6 +45,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Docker", "Docker\Docker.csp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Reseller", "Reseller\Reseller.csproj", "{AB24139B-9B44-47EA-829A-954CFFC23A65}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pdf", "Pdf\Pdf.csproj", "{4E968B9E-7B02-4F2B-BA99-F671C9336F0D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -135,6 +137,10 @@ Global
{AB24139B-9B44-47EA-829A-954CFFC23A65}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB24139B-9B44-47EA-829A-954CFFC23A65}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB24139B-9B44-47EA-829A-954CFFC23A65}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4E968B9E-7B02-4F2B-BA99-F671C9336F0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4E968B9E-7B02-4F2B-BA99-F671C9336F0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4E968B9E-7B02-4F2B-BA99-F671C9336F0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4E968B9E-7B02-4F2B-BA99-F671C9336F0D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Pdf/FlowElements/PdfContainsText.cs b/Pdf/FlowElements/PdfContainsText.cs
new file mode 100644
index 00000000..cfb13b3e
--- /dev/null
+++ b/Pdf/FlowElements/PdfContainsText.cs
@@ -0,0 +1,51 @@
+namespace FileFlows.Pdf.FlowElements;
+
+///
+/// A flow element that tests if a PDF contains the specified text
+///
+public class PdfContainsText : Node
+{
+ ///
+ public override int Inputs => 1;
+ ///
+ public override int Outputs => 2;
+ ///
+ public override FlowElementType Type => FlowElementType.Logic;
+ ///
+ public override string Icon => "fas fa-file-pdf";
+ ///
+ public override string HelpUrl => "https://fileflows.com/docs/plugins/pdf/pdf-contains-text";
+ ///
+ public override string Group => "PDF";
+
+ ///
+ /// Gets or sets the text to check for
+ ///
+ [Required]
+ [TextVariable(1)]
+ public string Text { get; set; } = null!;
+
+ ///
+ public override int Execute(NodeParameters args)
+ {
+ var fileResult = args.FileService.GetLocalPath(args.WorkingFile);
+ if (fileResult.Failed(out var error))
+ return args.Fail("Failed to get local file: " + error);
+
+ var file = fileResult.Value;
+ var text = args.ReplaceVariables(Text);
+ args.Logger?.ILog("Checking if PDF contains text: " + text);
+ var containsResult = args.PdfHelper.ContainsText(file, text);
+ if(containsResult.Failed(out error))
+ return args.Fail("Failed to get contains text: " + error);
+
+ if (containsResult.Value == false)
+ {
+ args.Logger?.ILog("PDF does not contain the text: " + text);
+ return 2;
+ }
+
+ args.Logger?.ILog("PDF contains the text: " + text);
+ return 1;
+ }
+}
\ No newline at end of file
diff --git a/Pdf/FlowElements/PdfMatchesText.cs b/Pdf/FlowElements/PdfMatchesText.cs
new file mode 100644
index 00000000..7971dece
--- /dev/null
+++ b/Pdf/FlowElements/PdfMatchesText.cs
@@ -0,0 +1,51 @@
+namespace FileFlows.Pdf.FlowElements;
+
+///
+/// A flow element that tests if a PDF matches the specified text
+///
+public class PdfMatchesText : Node
+{
+ ///
+ public override int Inputs => 1;
+ ///
+ public override int Outputs => 2;
+ ///
+ public override FlowElementType Type => FlowElementType.Logic;
+ ///
+ public override string Icon => "fas fa-file-pdf";
+ ///
+ public override string HelpUrl => "https://fileflows.com/docs/plugins/pdf/pdf-matches-text";
+ ///
+ public override string Group => "PDF";
+
+ ///
+ /// Gets or sets the text to check for
+ ///
+ [Required]
+ [TextVariable(1)]
+ public string Text { get; set; } = null!;
+
+ ///
+ public override int Execute(NodeParameters args)
+ {
+ var fileResult = args.FileService.GetLocalPath(args.WorkingFile);
+ if (fileResult.Failed(out var error))
+ return args.Fail("Failed to get local file: " + error);
+
+ var file = fileResult.Value;
+ var text = args.ReplaceVariables(Text);
+ args.Logger?.ILog("Checking if PDF match text: " + text);
+ var matchResult = args.PdfHelper.MatchesText(file, text);
+ if(matchResult.Failed(out error))
+ return args.Fail("Failed to find match text: " + error);
+
+ if (matchResult.Value == false)
+ {
+ args.Logger?.ILog("PDF does not match the text: " + text);
+ return 2;
+ }
+
+ args.Logger?.ILog("PDF match the text: " + text);
+ return 1;
+ }
+}
\ No newline at end of file
diff --git a/Pdf/FlowElements/PdfToTextFile.cs b/Pdf/FlowElements/PdfToTextFile.cs
new file mode 100644
index 00000000..8289bbaf
--- /dev/null
+++ b/Pdf/FlowElements/PdfToTextFile.cs
@@ -0,0 +1,58 @@
+namespace FileFlows.Pdf.FlowElements;
+
+///
+/// A flow element that extracts the text of a PDF to a file
+///
+public class PdfToTextFile : Node
+{
+ ///
+ public override int Inputs => 1;
+ ///
+ public override int Outputs => 2;
+ ///
+ public override FlowElementType Type => FlowElementType.Logic;
+ ///
+ public override string Icon => "fas fa-file-pdf";
+ ///
+ public override string HelpUrl => "https://fileflows.com/docs/plugins/pdf/pdf-to-text-file";
+ ///
+ public override string Group => "PDF";
+
+ ///
+ /// Gets or sets the output text location
+ ///
+ [TextVariable(1)]
+ [Required]
+ public string File { get; set; } = null!;
+
+ ///
+ public override int Execute(NodeParameters args)
+ {
+ var fileResult = args.FileService.GetLocalPath(args.WorkingFile);
+ if (fileResult.Failed(out var error))
+ return args.Fail("Failed to get local file: " + error);
+
+ var file = fileResult.Value;
+ var output = args.ReplaceVariables(File);
+ args.Logger?.ILog("Extracting PDF to file: " + output);
+ var result = args.PdfHelper.ExtractText(file);
+ if (result.Failed(out error))
+ return args.Fail("Failed to extract text: " + error);
+
+ var text = result.Value;
+ if (string.IsNullOrWhiteSpace(text))
+ {
+ args.Logger?.ILog("No text found in PDF file");
+ return 2;
+ }
+
+ args.FileService.FileDelete(file);
+ var writeResult = args.FileService.FileAppendAllText(file, text);
+ if (writeResult.Failed(out error))
+ return args.Fail("Failed to write text to file: " + error);
+
+ args.Logger?.ILog("Saved PDF text to file: " + file);
+ args.SetWorkingFile(file);
+ return 1;
+ }
+}
\ No newline at end of file
diff --git a/Pdf/GlobalUsings.cs b/Pdf/GlobalUsings.cs
new file mode 100644
index 00000000..63e0c527
--- /dev/null
+++ b/Pdf/GlobalUsings.cs
@@ -0,0 +1,6 @@
+global using System;
+global using System.Text;
+global using System.ComponentModel.DataAnnotations;
+global using FileFlows.Plugin;
+global using FileFlows.Plugin.Attributes;
+global using FileFlows.Common;
\ No newline at end of file
diff --git a/Pdf/Pdf.csproj b/Pdf/Pdf.csproj
new file mode 100644
index 00000000..cbd4e59e
--- /dev/null
+++ b/Pdf/Pdf.csproj
@@ -0,0 +1,99 @@
+
+
+
+ net8.0
+ enable
+ enable
+ FileFlows.$(MSBuildProjectName.Replace(" ", "_"))
+ 1.1.1.528
+ 1.1.1.528
+ true
+ FileFlows
+ John Andrews
+ PDF
+ https://fileflows.com/
+ Plugin that provides PDF related flow elements
+ True
+
+
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+
+
+
+
+
+ ..\FileFlows.Plugin.dll
+
+
+ ..\FileFlows.Common.dll
+ False
+
+
+
diff --git a/Pdf/Plugin.cs b/Pdf/Plugin.cs
new file mode 100644
index 00000000..465c816c
--- /dev/null
+++ b/Pdf/Plugin.cs
@@ -0,0 +1,21 @@
+namespace FileFlows.Pdf;
+
+///
+/// Plugin Information
+///
+public class Plugin : FileFlows.Plugin.IPlugin
+{
+ ///
+ public Guid Uid => new Guid("af8fa0a9-53ad-457d-9729-14f1f996d477");
+ ///
+ public string Name => "PDF";
+ ///
+ public string MinimumVersion => "25.01.1.4200";
+ ///
+ public string Icon => "fas fa-file-pdf";
+
+ ///
+ public void Init()
+ {
+ }
+}
diff --git a/Pdf/i18n/de.json b/Pdf/i18n/de.json
new file mode 100644
index 00000000..7a9fd446
--- /dev/null
+++ b/Pdf/i18n/de.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Überprüft, ob eine PDF-Datei den angegebenen Text enthält.",
+ "Label": "PDF enthält Text",
+ "Fields": {
+ "Text": "Text",
+ "Text-Help": "Der Text, nach dem in der PDF-Datei gesucht werden soll."
+ },
+ "Outputs": {
+ "1": "PDF enthält den angegebenen Text.",
+ "2": "PDF enthält den angegebenen Text nicht."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Prüft, ob eine PDF-Datei mit dem angegebenen Text übereinstimmt, indem erweiterte Optionen verwendet werden.",
+ "Label": "PDF stimmt mit Text überein",
+ "Fields": {
+ "Text": "Text",
+ "Text-Help": "Der Text, der mit der PDF-Datei abgeglichen werden soll. Unterstützt erweiterte Optionen wie Regex, beginnt mit, endet mit, usw."
+ },
+ "Outputs": {
+ "1": "PDF stimmt mit dem angegebenen Text überein.",
+ "2": "PDF stimmt nicht mit dem angegebenen Text überein."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extrahiert den Inhalt der PDF-Datei in eine Textdatei und aktualisiert die Arbeitsdatei auf die extrahierte Textdatei.",
+ "Label": "PDF zu Textdatei",
+ "Fields": {
+ "File": "Datei",
+ "File-Description": "Die Datei, in die der PDF-Inhalt geschrieben werden soll. Wenn diese Datei bereits existiert, wird sie überschrieben."
+ },
+ "Outputs": {
+ "1": "PDF erfolgreich in Textdatei gespeichert.",
+ "2": "Kein Textinhalt zum Extrahieren gefunden."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin, das PDF-bezogene Flow-Elemente bereitstellt.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/en.json b/Pdf/i18n/en.json
new file mode 100644
index 00000000..ddd1c191
--- /dev/null
+++ b/Pdf/i18n/en.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Checks if a PDF contains the specified text.",
+ "Label": "PDF Contains Text",
+ "Fields": {
+ "Text": "Text",
+ "Text-Help": "The text to check for in the PDF file."
+ },
+ "Outputs": {
+ "1": "PDF contains the specified text.",
+ "2": "PDF does not contain the specified text."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Tests if a PDF matches the specified text using advanced matching options.",
+ "Label": "PDF Matches Text",
+ "Fields": {
+ "Text": "Text",
+ "Text-Help": "The text to match against in the PDF file. Supports advanced options such as regex, starts with, ends with, etc."
+ },
+ "Outputs": {
+ "1": "PDF matches the specified text.",
+ "2": "PDF does not match the specified text."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extracts the contents of the PDF file to a text file and updates the working file to the extracted text file.",
+ "Label": "PDF To Text File",
+ "Fields": {
+ "File": "File",
+ "File-Description": "The file to write the PDF contents to. If this file already exists, it will be replaced."
+ },
+ "Outputs": {
+ "1": "PDF successfully saved to text file.",
+ "2": "No text content found to extract."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin that provides PDF-related flow elements.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/es.json b/Pdf/i18n/es.json
new file mode 100644
index 00000000..8b5c8994
--- /dev/null
+++ b/Pdf/i18n/es.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Comprueba si un PDF contiene el texto especificado.",
+ "Label": "PDF Contiene Texto",
+ "Fields": {
+ "Text": "Texto",
+ "Text-Help": "El texto a buscar en el archivo PDF."
+ },
+ "Outputs": {
+ "1": "El PDF contiene el texto especificado.",
+ "2": "El PDF no contiene el texto especificado."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Comprueba si un PDF coincide con el texto especificado utilizando opciones avanzadas.",
+ "Label": "PDF Coincide con Texto",
+ "Fields": {
+ "Text": "Texto",
+ "Text-Help": "El texto con el que coincidir en el archivo PDF. Admite opciones avanzadas como expresiones regulares, comienza con, termina con, etc."
+ },
+ "Outputs": {
+ "1": "El PDF coincide con el texto especificado.",
+ "2": "El PDF no coincide con el texto especificado."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extrae el contenido del archivo PDF a un archivo de texto y actualiza el archivo de trabajo al archivo de texto extraído.",
+ "Label": "PDF a Archivo de Texto",
+ "Fields": {
+ "File": "Archivo",
+ "File-Description": "El archivo donde se guardará el contenido del PDF. Si este archivo ya existe, será reemplazado."
+ },
+ "Outputs": {
+ "1": "PDF guardado correctamente en un archivo de texto.",
+ "2": "No se encontró contenido de texto para extraer."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Complemento que proporciona elementos de flujo relacionados con PDF.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/fr.json b/Pdf/i18n/fr.json
new file mode 100644
index 00000000..e15bca1c
--- /dev/null
+++ b/Pdf/i18n/fr.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Vérifie si un PDF contient le texte spécifié.",
+ "Label": "PDF Contient Texte",
+ "Fields": {
+ "Text": "Texte",
+ "Text-Help": "Le texte à rechercher dans le fichier PDF."
+ },
+ "Outputs": {
+ "1": "Le PDF contient le texte spécifié.",
+ "2": "Le PDF ne contient pas le texte spécifié."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Vérifie si un PDF correspond au texte spécifié en utilisant des options avancées.",
+ "Label": "PDF Correspond au Texte",
+ "Fields": {
+ "Text": "Texte",
+ "Text-Help": "Le texte à faire correspondre dans le fichier PDF. Prend en charge des options avancées telles que les expressions régulières, commence par, se termine par, etc."
+ },
+ "Outputs": {
+ "1": "Le PDF correspond au texte spécifié.",
+ "2": "Le PDF ne correspond pas au texte spécifié."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extrait le contenu du fichier PDF dans un fichier texte et met à jour le fichier de travail avec le fichier texte extrait.",
+ "Label": "PDF vers Fichier Texte",
+ "Fields": {
+ "File": "Fichier",
+ "File-Description": "Le fichier dans lequel le contenu du PDF sera écrit. Si ce fichier existe déjà, il sera remplacé."
+ },
+ "Outputs": {
+ "1": "PDF enregistré avec succès dans un fichier texte.",
+ "2": "Aucun contenu texte trouvé à extraire."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin qui fournit des éléments de flux liés aux PDF.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/it.json b/Pdf/i18n/it.json
new file mode 100644
index 00000000..3563e649
--- /dev/null
+++ b/Pdf/i18n/it.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Verifica se un PDF contiene il testo specificato.",
+ "Label": "PDF Contiene Testo",
+ "Fields": {
+ "Text": "Testo",
+ "Text-Help": "Il testo da cercare nel file PDF."
+ },
+ "Outputs": {
+ "1": "Il PDF contiene il testo specificato.",
+ "2": "Il PDF non contiene il testo specificato."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Verifica se un PDF corrisponde al testo specificato utilizzando opzioni avanzate.",
+ "Label": "PDF Corrisponde al Testo",
+ "Fields": {
+ "Text": "Testo",
+ "Text-Help": "Il testo da confrontare nel file PDF. Supporta opzioni avanzate come regex, inizia con, termina con, ecc."
+ },
+ "Outputs": {
+ "1": "Il PDF corrisponde al testo specificato.",
+ "2": "Il PDF non corrisponde al testo specificato."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Estrae il contenuto del file PDF in un file di testo e aggiorna il file di lavoro al file di testo estratto.",
+ "Label": "PDF a File di Testo",
+ "Fields": {
+ "File": "File",
+ "File-Description": "Il file in cui verrà scritto il contenuto del PDF. Se il file esiste già, verrà sovrascritto."
+ },
+ "Outputs": {
+ "1": "PDF salvato con successo in un file di testo.",
+ "2": "Nessun contenuto testuale trovato da estrarre."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin che fornisce elementi di flusso relativi ai PDF.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/ja.json b/Pdf/i18n/ja.json
new file mode 100644
index 00000000..3563e649
--- /dev/null
+++ b/Pdf/i18n/ja.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Verifica se un PDF contiene il testo specificato.",
+ "Label": "PDF Contiene Testo",
+ "Fields": {
+ "Text": "Testo",
+ "Text-Help": "Il testo da cercare nel file PDF."
+ },
+ "Outputs": {
+ "1": "Il PDF contiene il testo specificato.",
+ "2": "Il PDF non contiene il testo specificato."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Verifica se un PDF corrisponde al testo specificato utilizzando opzioni avanzate.",
+ "Label": "PDF Corrisponde al Testo",
+ "Fields": {
+ "Text": "Testo",
+ "Text-Help": "Il testo da confrontare nel file PDF. Supporta opzioni avanzate come regex, inizia con, termina con, ecc."
+ },
+ "Outputs": {
+ "1": "Il PDF corrisponde al testo specificato.",
+ "2": "Il PDF non corrisponde al testo specificato."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Estrae il contenuto del file PDF in un file di testo e aggiorna il file di lavoro al file di testo estratto.",
+ "Label": "PDF a File di Testo",
+ "Fields": {
+ "File": "File",
+ "File-Description": "Il file in cui verrà scritto il contenuto del PDF. Se il file esiste già, verrà sovrascritto."
+ },
+ "Outputs": {
+ "1": "PDF salvato con successo in un file di testo.",
+ "2": "Nessun contenuto testuale trovato da estrarre."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin che fornisce elementi di flusso relativi ai PDF.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/ko.json b/Pdf/i18n/ko.json
new file mode 100644
index 00000000..2f6e8d1b
--- /dev/null
+++ b/Pdf/i18n/ko.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "PDF에 지정된 텍스트가 포함되어 있는지 확인합니다.",
+ "Label": "PDF 텍스트 포함 여부",
+ "Fields": {
+ "Text": "텍스트",
+ "Text-Help": "PDF 파일에서 검색할 텍스트입니다."
+ },
+ "Outputs": {
+ "1": "PDF에 지정된 텍스트가 포함되어 있습니다.",
+ "2": "PDF에 지정된 텍스트가 포함되어 있지 않습니다."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "고급 옵션을 사용하여 PDF가 지정된 텍스트와 일치하는지 확인합니다.",
+ "Label": "PDF 텍스트 일치 여부",
+ "Fields": {
+ "Text": "텍스트",
+ "Text-Help": "PDF 파일에서 일치할 텍스트입니다. 정규식, 시작 문자, 끝 문자 등을 지원합니다."
+ },
+ "Outputs": {
+ "1": "PDF가 지정된 텍스트와 일치합니다.",
+ "2": "PDF가 지정된 텍스트와 일치하지 않습니다."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "PDF 파일의 내용을 텍스트 파일로 추출하고 작업 파일을 추출된 텍스트 파일로 업데이트합니다.",
+ "Label": "PDF를 텍스트 파일로 변환",
+ "Fields": {
+ "File": "파일",
+ "File-Description": "PDF 내용을 저장할 파일입니다. 이 파일이 이미 존재하면 덮어씌워집니다."
+ },
+ "Outputs": {
+ "1": "PDF가 텍스트 파일로 성공적으로 저장되었습니다.",
+ "2": "추출할 텍스트 내용이 없습니다."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "PDF 관련 플로우 요소를 제공하는 플러그인입니다.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/nl.json b/Pdf/i18n/nl.json
new file mode 100644
index 00000000..d1d60a11
--- /dev/null
+++ b/Pdf/i18n/nl.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Controleert of een PDF de opgegeven tekst bevat.",
+ "Label": "PDF Bevat Tekst",
+ "Fields": {
+ "Text": "Tekst",
+ "Text-Help": "De tekst om te controleren in het PDF-bestand."
+ },
+ "Outputs": {
+ "1": "PDF bevat de opgegeven tekst.",
+ "2": "PDF bevat de opgegeven tekst niet."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Controleert of een PDF overeenkomt met de opgegeven tekst met behulp van geavanceerde opties.",
+ "Label": "PDF Komt Overeen Met Tekst",
+ "Fields": {
+ "Text": "Tekst",
+ "Text-Help": "De tekst om te vergelijken in het PDF-bestand. Ondersteunt geavanceerde opties zoals regex, begint met, eindigt met, enz."
+ },
+ "Outputs": {
+ "1": "PDF komt overeen met de opgegeven tekst.",
+ "2": "PDF komt niet overeen met de opgegeven tekst."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extraheert de inhoud van het PDF-bestand naar een tekstbestand en wijzigt het werkbestand naar het geëxtraheerde tekstbestand.",
+ "Label": "PDF Naar Tekstbestand",
+ "Fields": {
+ "File": "Bestand",
+ "File-Description": "Het bestand om de inhoud van de PDF naar te schrijven. Als dit bestand al bestaat, wordt het overschreven."
+ },
+ "Outputs": {
+ "1": "PDF succesvol opgeslagen in tekstbestand.",
+ "2": "Geen tekstinhoud gevonden om te extraheren."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin die PDF-gerelateerde stroomelementen biedt.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/pt.json b/Pdf/i18n/pt.json
new file mode 100644
index 00000000..0f61ff14
--- /dev/null
+++ b/Pdf/i18n/pt.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Verifica se um PDF contém o texto especificado.",
+ "Label": "PDF Contém Texto",
+ "Fields": {
+ "Text": "Texto",
+ "Text-Help": "O texto a ser verificado no arquivo PDF."
+ },
+ "Outputs": {
+ "1": "O PDF contém o texto especificado.",
+ "2": "O PDF não contém o texto especificado."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Verifica se um PDF corresponde ao texto especificado usando opções avançadas.",
+ "Label": "PDF Corresponde ao Texto",
+ "Fields": {
+ "Text": "Texto",
+ "Text-Help": "O texto a ser correspondido no arquivo PDF. Suporta opções avançadas, como regex, começa com, termina com, etc."
+ },
+ "Outputs": {
+ "1": "O PDF corresponde ao texto especificado.",
+ "2": "O PDF não corresponde ao texto especificado."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extrai o conteúdo do arquivo PDF para um arquivo de texto e atualiza o arquivo de trabalho para o arquivo de texto extraído.",
+ "Label": "PDF Para Arquivo de Texto",
+ "Fields": {
+ "File": "Arquivo",
+ "File-Description": "O arquivo para salvar o conteúdo do PDF. Se este arquivo já existir, ele será substituído."
+ },
+ "Outputs": {
+ "1": "O PDF foi salvo com sucesso no arquivo de texto.",
+ "2": "Nenhum conteúdo de texto encontrado para extrair."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin que fornece elementos de fluxo relacionados a PDFs.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/ru.json b/Pdf/i18n/ru.json
new file mode 100644
index 00000000..c92c8aa5
--- /dev/null
+++ b/Pdf/i18n/ru.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Проверяет, содержит ли PDF указанный текст.",
+ "Label": "PDF Содержит Текст",
+ "Fields": {
+ "Text": "Текст",
+ "Text-Help": "Текст для проверки в PDF-файле."
+ },
+ "Outputs": {
+ "1": "PDF содержит указанный текст.",
+ "2": "PDF не содержит указанный текст."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Проверяет, совпадает ли PDF с указанным текстом, используя расширенные параметры.",
+ "Label": "PDF Совпадает С Текстом",
+ "Fields": {
+ "Text": "Текст",
+ "Text-Help": "Текст для проверки в PDF-файле. Поддерживаются расширенные параметры, такие как регулярные выражения, начинается с, заканчивается на и т. д."
+ },
+ "Outputs": {
+ "1": "PDF совпадает с указанным текстом.",
+ "2": "PDF не совпадает с указанным текстом."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Извлекает содержимое PDF-файла в текстовый файл и обновляет рабочий файл на извлечённый текстовый файл.",
+ "Label": "PDF В Текстовый Файл",
+ "Fields": {
+ "File": "Файл",
+ "File-Description": "Файл для записи содержимого PDF. Если файл уже существует, он будет перезаписан."
+ },
+ "Outputs": {
+ "1": "PDF успешно сохранён в текстовый файл.",
+ "2": "Не найдено текстового содержимого для извлечения."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Плагин, предоставляющий элементы потока, связанные с PDF.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/sv.json b/Pdf/i18n/sv.json
new file mode 100644
index 00000000..6223e18a
--- /dev/null
+++ b/Pdf/i18n/sv.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "Kontrollerar om en PDF innehåller den angivna texten.",
+ "Label": "PDF Innehåller Text",
+ "Fields": {
+ "Text": "Text",
+ "Text-Help": "Texten att söka efter i PDF-filen."
+ },
+ "Outputs": {
+ "1": "PDF innehåller den angivna texten.",
+ "2": "PDF innehåller inte den angivna texten."
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "Testar om en PDF matchar den angivna texten med avancerade matchningsalternativ.",
+ "Label": "PDF Matchar Text",
+ "Fields": {
+ "Text": "Text",
+ "Text-Help": "Texten att matcha mot i PDF-filen. Stödjer avancerade alternativ som regex, börjar med, slutar med, etc."
+ },
+ "Outputs": {
+ "1": "PDF matchar den angivna texten.",
+ "2": "PDF matchar inte den angivna texten."
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "Extraherar innehållet från PDF-filen till en textfil och uppdaterar arbetsfilen till den extraherade textfilen.",
+ "Label": "PDF Till Textfil",
+ "Fields": {
+ "File": "Fil",
+ "File-Description": "Filen där innehållet från PDF:en ska sparas. Om denna fil redan finns kommer den att ersättas."
+ },
+ "Outputs": {
+ "1": "PDF sparades framgångsrikt till textfil.",
+ "2": "Inget textinnehåll hittades att extrahera."
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "Plugin som tillhandahåller PDF-relaterade flödeselement.",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/zh.json b/Pdf/i18n/zh.json
new file mode 100644
index 00000000..827b0260
--- /dev/null
+++ b/Pdf/i18n/zh.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "检查 PDF 是否包含指定的文本。",
+ "Label": "PDF 包含文本",
+ "Fields": {
+ "Text": "文本",
+ "Text-Help": "要在 PDF 文件中检查的文本。"
+ },
+ "Outputs": {
+ "1": "PDF 包含指定的文本。",
+ "2": "PDF 不包含指定的文本。"
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "测试 PDF 是否使用高级匹配选项匹配指定的文本。",
+ "Label": "PDF 匹配文本",
+ "Fields": {
+ "Text": "文本",
+ "Text-Help": "在 PDF 文件中匹配的文本。支持正则表达式、以某个文本开头、以某个文本结尾等高级选项。"
+ },
+ "Outputs": {
+ "1": "PDF 匹配指定的文本。",
+ "2": "PDF 不匹配指定的文本。"
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "将 PDF 文件内容提取到文本文件中,并将工作文件更新为提取的文本文件。",
+ "Label": "PDF 转文本文件",
+ "Fields": {
+ "File": "文件",
+ "File-Description": "要将 PDF 内容写入的文件。如果此文件已存在,将被替换。"
+ },
+ "Outputs": {
+ "1": "PDF 成功保存到文本文件。",
+ "2": "未找到可提取的文本内容。"
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "提供 PDF 相关流程元素的插件。",
+ "Label": "PDF"
+ }
+ }
+}
diff --git a/Pdf/i18n/zht.json b/Pdf/i18n/zht.json
new file mode 100644
index 00000000..d9cff879
--- /dev/null
+++ b/Pdf/i18n/zht.json
@@ -0,0 +1,48 @@
+{
+ "Flow": {
+ "Parts": {
+ "PdfContainsText": {
+ "Description": "檢查 PDF 是否包含指定的文本。",
+ "Label": "PDF 包含文本",
+ "Fields": {
+ "Text": "文本",
+ "Text-Help": "要在 PDF 文件中檢查的文本。"
+ },
+ "Outputs": {
+ "1": "PDF 包含指定的文本。",
+ "2": "PDF 不包含指定的文本。"
+ }
+ },
+ "PdfMatchesText": {
+ "Description": "測試 PDF 是否使用高級匹配選項匹配指定的文本。",
+ "Label": "PDF 匹配文本",
+ "Fields": {
+ "Text": "文本",
+ "Text-Help": "在 PDF 文件中匹配的文本。支持正則表達式、以某個文本開頭、以某個文本結尾等高級選項。"
+ },
+ "Outputs": {
+ "1": "PDF 匹配指定的文本。",
+ "2": "PDF 不匹配指定的文本。"
+ }
+ },
+ "PdfToTextFile": {
+ "Description": "將 PDF 文件內容提取到文本文件中,並將工作文件更新為提取的文本文件。",
+ "Label": "PDF 轉文本文件",
+ "Fields": {
+ "File": "文件",
+ "File-Description": "要將 PDF 內容寫入的文件。如果此文件已存在,將被替換。"
+ },
+ "Outputs": {
+ "1": "PDF 成功保存到文本文件。",
+ "2": "未找到可提取的文本內容。"
+ }
+ }
+ }
+ },
+ "Plugins": {
+ "Pdf": {
+ "Description": "提供 PDF 相關流程元素的插件。",
+ "Label": "PDF"
+ }
+ }
+}