2016-06-22 5 views
1

Мы используем Aspose tools for .Net для обработки PDF. У нас есть 1000+ PDF-документов, которые необходимо объединить, а затем снова разбить. Процесс слияния добавит страницу разделителя между двумя документами PDF при слиянии. Так что процесс расщепления будет знать, где разделить документ.Слияние и разделение больших документов PDF?

Эти 1000 документов состоят из 3-х разных типов. Поэтому мне нужно создать 3 разных разделителя (по одному для каждого типа). Процесс слияния добавит соответствующий разделитель при слиянии в зависимости от типа документа.

Я знаю, как объединить & сплит PDF-документов с использованием Aspose. Мой вопрос: как я могу создать & эту страницу разделителя?

Один из вариантов, о котором я думал, заключается в создании страницы PDF со специальным штрих-кодом, и процесс разделения будет читать штрих-код. (Using Aspose Barcode) Но это похоже на трудоемкий процесс, потому что процесс расщепления должен читать каждую страницу, проверять, есть ли штрих-код и если это правда, а затем извлечь данные для проверки типа.

Есть ли другой лучший способ сделать это?

ответ

0

Не могли бы вы поделиться некоторой информацией о различных типах разделителей, которые вы используете при слиянии документов (образец документа или изображения с благодарностью). Если вы добавляете пустые страницы в качестве разделителей, Aspose.Pdf для .NET предоставляет возможность определять пустые страницы внутри PDF-файла. Но при использовании этого подхода вам нужно пройти через все страницы и идентифицировать пустые страницы. Кроме того, вы также можете отслеживать индекс, где добавляется разделитель, и когда вам нужно разделить, используйте ту же информацию.

// The path to the documents directory. 
string dataDir = RunExamples.GetDataDir_AsposePdfFacades_TechnicalArticles(); 

// Instantiate a memoryStream object to hold the extracted text from Document 
MemoryStream ms = new MemoryStream(); 
// Instantiate PdfExtractor object 
PdfExtractor extractor = new PdfExtractor(); 

// Bind the input PDF document to extractor 
extractor.BindPdf(dataDir + "FilledForm.pdf"); 
// Extract text from the input PDF document 
extractor.ExtractText(); 

bool containsText = false; 
bool containsImage = false; 
// Save the extracted text to a text file 
extractor.GetText(ms); 
// Check if the MemoryStream length is greater than or equal to 1 
if (ms.Length >= 1) 
containsText = true; 

// Extract images from the input PDF document 
extractor.ExtractImage(); 

// Calling HasNextImage method in while loop. When images will finish, loop will exit 
if (extractor.HasNextImage()) 
containsImage = true; 

// Now find out whether this PDF is text only or image only 
if (containsText == true && containsImage == false) 
Console.WriteLine("PDF contains text only"); 
else if (containsText == false && containsImage == true) 
Console.WriteLine("PDF contains image only"); 
else if (containsText == true && containsImage == true) 
Console.WriteLine("PDF contains both text and image"); 
else if (containsText == false && containsImage == false) 
Console.WriteLine("PDF contains neither text or nor image"); 

Меня зовут Найер, и я являюсь евангелистом-разработчиком в Aspose.

+0

Я решил свою проблему, используя страницу штрих-кода в качестве разделителя. Мы используем Aspose BarCode для определения страницы разделителя. Да, нам нужно зацикливаться на всех страницах – LP13