Может ли Mathematica создавать многостраничные файлы PDF? - PullRequest
9 голосов
/ 02 ноября 2011

Когда импортируется многостраничный PDF-файл (файл, который я имею в виду, содержит изображения иллюстраций, по одному на страницу) в Mathematica 8.0.1 с помощью

book = Import ["simple.pdf"]

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

Экспорт ["DistortedSimple.pdf", искаженная книга]

Полученный файл содержит все изображения на одной странице. Есть ли удобный способ экспортировать список изображений в PDF, по одному на страницу?

Ответы [ 3 ]

5 голосов
/ 02 ноября 2011

(Привет, Кевин!)

Я только что оценил:

Print[ExampleData[#]] & /@ Take[ExampleData["TestImage"], 6]

Export["Desktop/Kevin.pdf", EvaluationNotebook[]]

с использованием V8.0.1 для OS X, и полученный PDF был разделен на четыре страницы. Поэтому я думаю, что вам лучше всего (программно) создать блокнот с вашими измененными изображениями и экспортировать этот блокнот.

4 голосов
/ 02 ноября 2011

Это кажется невозможным с Export, независимо от того, сколько я играю с элементом Pages (кроме решений для ноутбуков, предоставленных другими). ​​

Альтернативой является установка pdftk (относительно небольшой инструмент командной строки, который мы будем использовать для сборки страниц) и использование следующей функции Mathematica:

exportMultipagePDF[name_String, g_List, options___] :=
  Module[
    {fileNames, quote},
    quote[s_] := "\"" <> s <> "\"";
    fileNames = 
      Table[
        FileNameJoin[{$TemporaryDirectory, "mmapage" <> IntegerString[i] <> ".pdf"}],
        {i, Length[g]}
      ];
    Check[
      Export[#1, #2, "PDF", options] & @@@ Thread[{fileNames, g}], 
      Return[$Failed]
    ];
    If[
      Run["pdftk", Sequence @@ (quote /@ fileNames), "cat output", name] =!= 0,
      Return[$Failed]
    ];
    DeleteFile /@ fileNames;
  ]

OnWindows Мне нужно было процитировать имена файлов перед передачей их в PDFtk.Я не знаю о других платформах, надеюсь, это не вызовет никаких проблем.

Попробуйте с

exportMultipagePDF["test.pdf", Table[Graphics[{Hue[x], Disk[]}], {x, 0, 1, .2}]]
3 голосов
/ 02 ноября 2011

Попробуйте сохранить записную книжку в формате PDF, а не экспортировать набор ячеек в формате PDF.

РЕДАКТИРОВАТЬ:

Чтобы обеспечить разрывы страниц в нужном месте, установите для параметра «Среда экрана» значение «Печать».(Вы можете сделать это с помощью команды меню или программно ) и вставить разрывы страниц с помощью соответствующей команды меню .Эта страница справки может быть полезна.

Из вашего комментария кажется, что вам нужно установить параметр ImageSize для преобразованного изображения, чтобы убедиться, что оно являетсяРазмер, который вы хотите при отображении на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...