Mathematica可以创建多页PDF文件吗?

Kev*_*ant 9 pdf wolfram-mathematica

当我将一个多页的pdf文件(我想到的文件包含艺术作品的图像,每页一个)导入到Mathematica 8.0.1中时

book = Import ["simple.pdf"]

Mathematica返回一个图形对象列表,每个页面对应一个.我在每个页面上执行了一些操作,然后想要将更改的页面保存回单个PDF文件中

导出["DistortedSimple.pdf",distortedbook]

生成的文件在单个页面上包含所有图像.有没有一种方便的方法将图像列表导出为PDF,每页一个?

Bre*_*ion 5

(嗨凯文!)

我刚评价过:

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

Export["Desktop/Kevin.pdf", EvaluationNotebook[]]
Run Code Online (Sandbox Code Playgroud)

使用V8.0.1 for OS X,生成的PDF分为四页.因此,我认为您最好的方法是(以编程方式)创建已修改图像的笔记本,并导出该笔记本.

  • 8.0.1?你还没有得到更新消息;-) (2认同)

Sza*_*lcs 5

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;
  ]
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,我需要在将文件名传递给 PDFtk 之前引用它们。不知道其他平台怎么样,希望不会造成任何麻烦。

尝试一下

exportMultipagePDF["test.pdf", Table[Graphics[{Hue[x], Disk[]}], {x, 0, 1, .2}]]
Run Code Online (Sandbox Code Playgroud)