1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
# Copyright (C) 2021 - 2022 Advanced Micro Devices, Inc. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
import subprocess
import pathlib
import docx
import perflib.docx_emf_patch
def pdf2emf(path: pathlib.Path):
"""Convert PDF to EMF."""
pdf, svg, emf = str(path), str(path.with_suffix(".svg")), str(
path.with_suffix(".emf"))
subprocess.check_call(["pdf2svg", pdf, svg])
# Older versions of inkscape use -M.
#subprocess.check_call(["inkscape", svg, "-M", emf])
subprocess.check_call(["inkscape", svg, "--export-filename", emf])
return emf
def make_docx(figs, docdir, outdirs, secondtype=None):
docdir = pathlib.Path(docdir)
document = docx.Document()
document.add_heading('rocFFT benchmarks', 0)
# document.add_paragraph("Each data point represents the median of " + str(nsample) + " values, with error bars showing the 95% confidence interval for the median. Transforms are " + precision + "-precision, forward, and in-place.")
# if secondtype == "gflops":
# document.add_paragraph(gflopstext)
# if secondtype == "efficiency":
# document.add_paragraph(efficiencytext)
# specfilename = os.path.join(outdir, "specs.txt")
# if os.path.isfile(specfilename):
# with open(specfilename, "r") as f:
# specs = f.read()
# for line in specs.split("\n"):
# document.add_paragraph(line)
for fig in figs:
emfname = pdf2emf(fig.filename)
document.add_picture(emfname, width=docx.shared.Inches(6))
document.add_paragraph(fig.caption)
document.save(str(docdir / 'figs.docx'))
|