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" + } + } +}