Слияние файлов PDF в Cocoa

Я хотел бы объединить несколько файлов PDF в один файл PDF. Теперь я зашел так далеко, что знаю, что PDFKit - правильный путь (я думаю). Но я не уверен, как выполнить слияние. Должен ли я иметь один PDFDocument и несколько PDFPage, а затем вызывать insertPage на PDFDocument? Или есть гораздо более простой способ? Я не хочу изменять PDF-файлы по существу, я просто хочу их объединить. Большое спасибо!


person tzippy    schedule 10.04.2011    source источник


Ответы (1)


Как вы указали, вам нужен один выходной объект PDFDocument, который будет содержать все страницы всех входных файлов PDF. Для этого вам нужно пройтись по всем входным файлам, создать объекты PDFDocument для каждого и перебрать все страницы, чтобы добавить их с помощью insertPage к выходному объекту PDFDocument.

Предполагая, что inputDocuments представляет собой NSArray одного или более PDFDocument объектов, вы можете использовать этот фрагмент:

PDFDocument *outputDocument = [[PDFDocument alloc] init];
NSUInteger pageIndex = 0;
for (PDFDocument *inputDocument in inputDocuments) {
    for (NSUInteger j = 0; j < [inputDocument pageCount]; j++) {
        PDFPage *page = [inputDocument pageAtIndex:j];
        [outputDocument insertPage:page atIndex:pageIndex++];
    }
}
person fjoachim    schedule 10.04.2011
comment
Я действительно не совсем уверен, как это будет работать, когда я пытаюсь использовать быстрое перечисление для PDFDocument, я получаю, Collection expression type "PDFDocument *" may not respond to 'countByEnumeratingWithState:objects:count:' - person Alex Gray; 27.02.2013
comment
Да, вам нужно просмотреть все страницы каждого PDFDocument. Я исправил ошибку. - person fjoachim; 01.03.2013