如何从 PDF 文件推断 Tikz?

如何从 PDF 文件推断 Tikz?

我有一个 PDF 文件,其中包含使用 PdfPages 生成的矢量图像(从 matplotlib.backends.backend_pdf 导入 PdfPages)。现在我不再有生成此文件的脚本,而且由于我想修改此图像并将其合并到 tex 文件中,因此我想将此 PDF 还原为 tikz 文件。tikz 表示是否精确并不重要,重要的是它包含主要信息(例如线条的位置,因为图像是函数的图)。

答案1

我认为没有办法,但这是我的尝试:

  1. 我用的是回答从 M4rtini 生成一个 PDF 文件,其中包括一些用 PdfPages 生成的图表。

  2. 然后我用pdf转svg将 PDF 文件转换为 SVG 文件。具体命令如下pdf2svg test.pdf test1.svg 1

  3. 使用编辑器打开 SVG 文件并找到与曲线对应的路径。在该示例中,路径由以下公式给出<path style="fill:none;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:round;stroke:rgb(12.156677%,46.665955%,70.587158%);stroke-opacity:1;stroke-miterlimit:10;" d="M 73.832031 50.111719 L 109.90625 53.1 L 145.976562 62.057031 L 182.050781 76.990625 L 218.125 97.896875 L 254.195312 124.779688 L 290.269531 157.63125 L 326.34375 196.459375 L 362.414062 241.260156 L 398.488281 292.033594 " transform="matrix(1,0,0,-1,0,345.6)"/>

  4. 使用 pgfplots 环境创建 TEX 文件并将坐标复制到其中。

  5. 使用 x 和 y 过滤器适当缩放外推坐标。

例如,最终结果是

\documentclass[]{article}

\usepackage{tikz,pgfplots}
\pgfplotsset{width=7cm,compat=1.12}

\begin{document}
\begin{tikzpicture}
  \begin{axis}
    \addplot[blue,
    x filter/.code={\pgfmathparse{(#1-73.832031)/(109.90625-73.832031)}\pgfmathresult},
    y filter/.code={\pgfmathparse{(#1-50.111719)/(53.1-50.111719)}\pgfmathresult}] coordinates {
      (73.832031,50.111719)
      (109.90625,53.1)
      (145.976562,62.057031)
      (182.050781,76.990625)
      (218.125,97.896875)
      (254.195312,124.779688)
      (290.269531,157.63125)
      (326.34375,196.459375)
      (362.414062,241.260156)
      (398.488281,292.033594) };
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容