7

サービス プロセス図用に高解像度の出力を PDF でエクスポートする必要がある mxGraph を使用するプロジェクトに取り組んでいます。Java Swing クライアントである JGraphX を使用してグラフを再作成し、それを PDF にエクスポートしようとしましたが、結果はブラウザが表示するものに近くありません。

クライアントの JavaScript には PDF エクスポートはありません。mxGraph は JavaScript からの PDF 生成を明示的にサポートしていますか?

4

2 に答える 2

0

完全なベクトル ソリューション:

  1. 設定mxClient.NO_FO = true;
  2. svg2pdf.jsで SVG を PDF にエクスポート
  3. すべての DIV のテキストをjsPDFで pdf に書き込む

例:

let pdf = new jsPDF('p', 'pt', 'a4', false, false);
mxClient.NO_FO = true;
let graph = Draw(drawdiv, false);
let svgEl = drawdiv.children[1];
//draw svg:
svg2pdf(svgEl, pdf, {
  xOffset: pdfPageDefaultOffsetX,
  yOffset: pdfOffsetY,
  scale: divToPdfRatio
});
//draw text:
for (let child of drawdiv.children) {
  if (child.tagName === 'DIV') {
    let splitText = pdf.splitTextToSize(child.innerText, Math.ceil((childSizes.width) * divToPdfRatio));
    pdf.text(pdfPageDefaultOffsetX + (child.offsetLeft * divToPdfRatio), textPositionTop, splitText, {
      align: child.style.textAlign,
      lineHeightFactor: 1,
    });
  }
}
pdf.save('Test.pdf');
于 2020-07-29T14:50:56.130 に答える