- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以下代码(它是一个 Gtk 应用程序)使用 Cairo 和 RSVG 在 Python 中打印动态创建的 SVG。
它是一种特殊类型的纸张,正好是 147x205mm。如果我在 EOG 中打开 SVG,我可以毫无问题地打印它,但是使用下面的代码它会使 SVG 太大,所以只有一部分适合在纸上。
我正在寻找一种方法来告诉 RSVG/Cairo 将 SVG 缩放到打印上下文。
#in the initializer:
self.PrintSettings = Gtk.PrintSettings()
self.PrintSettings.set_paper_width(147, Gtk.Unit.MM)
self.PrintSettings.set_paper_height(204, Gtk.Unit.MM)
self.PageSetup = Gtk.PageSetup()
pageSize = Gtk.PaperSize.new_custom("bill", "Papel de factura", 147, 205, Gtk.Unit.MM)
self.PageSetup.set_paper_size(pageSize)
self.PageSetup.set_top_margin(0, Gtk.Unit.MM)
self.PageSetup.set_bottom_margin(0, Gtk.Unit.MM)
self.PageSetup.set_left_margin(0, Gtk.Unit.MM)
self.PageSetup.set_right_margin(0, Gtk.Unit.MM)
def on_PrintButton_clicked(self, widget):
self.make_bill() #generates the SVG as "./temp.svg"
printOperation = Gtk.PrintOperation()
printOperation.set_n_pages(1)
printOperation.set_print_settings(self.PrintSettings)
printOperation.set_default_page_setup(self.PageSetup)
printOperation.connect("draw_page", self.print_bill)
print printOperation.run(Gtk.PrintOperationAction.PRINT_DIALOG, self)
def print_bill(self, printOperation, printContext, pageNr):
pageSetup = printContext.get_page_setup()
cairoContext = printContext.get_cairo_context()
svg = rsvg.Handle(file = os.getcwd() + "/temp.svg")
svg.render_cairo(cairoContext)
return
如果它有用,我的 SVG 的开头(总是相同):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
version="1.1"
width="513.77954"
height="726.37793"
id="svg2">
<defs
id="defs4" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-325.9842)"
id="layer1">
更新
我将以下行添加到 print_bill
print printContext.get_width() # returns 416.692913386
print printContext.get_height() # returns 581.102362205
这正好等于 SVG 的大小。我在 Inkscape 中重新检查,它告诉我,这是大小和 PX,但如果我在 MM 中查找值,它会显示正确的值。
也许有一个 SVG 标签可以解决这个问题?
最佳答案
我玩了(很多)transform
<g>
的参数element 我的所有元素都包含在其中。
减少 matrix
的第一个和第四个参数在transform
标签允许您将其调整到所需的纸张/绘图区域。
也可以使用第五个和第六个参数移动整个绘图。
示例代码:
<g
transform="matrix(0.70,0,0,0.70,20,-190)"
id="layer1">
我仍然假设(希望)有一种 Cairo/Python 方法可以更好地解决这个问题,但这应该有所帮助。
关于Python+RSVG+Cario : Scale SVG to printing size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17327477/
我正在尝试在 View 中同时使用 scalegesture 监听器和 gesturelistener。如果比例为 1,则一切正常,但如果将比例设置为其他值,图像会跳到一个新位置,然后平滑缩放。 我的
我在使用 Canvas 和 canvas.scale(Scale, Scale) 时遇到图像质量问题;它们看起来完全像下面这样: android:运行时调整大小的图像质量 我相信我已经阅读了所有关于调
我有一个使用 svg 过滤器附加阴影的 svg 图形。我需要缩放阴影,但找不到可以执行此操作的过滤器。有谁知道这是否可能?
我正在构建一个逻辑回归分类器。 我从一组 500.000 条记录开始,我只想使用其中的一个样本。 你有什么建议: 1) 缩放总体然后采样2)缩放样本3) 仅缩放样本的 X_TRAIN 分割? 为什么?
我有一个功能,我用它在鼠标进入时放大图片并在鼠标离开时返回到正常大小。问题是,如果我在允许图片返回正常大小之前快速将鼠标移出然后将鼠标移入,那么图片将从鼠标输入时当前的任何大小放大(x2.7) (并且
可以在 scale-y-2 中使用 zoomtovalues 吗?我在多个 y 轴上有几个系列,我想将每个 scale-y-n 缩放到特定值,但我不知道如何... 谢谢和问候, 最佳答案 我们在最近的
我正在尝试在 Android 中创建(我认为是)一个相对简单的动画。也就是说,我想让某个 TextView 在单击按钮时缩小到 0 并返回到 1。当我单击该按钮时实际发生的是 TextView 立即缩
我有一个元素需要缩放到父元素的 100%。因为该元素包含基于像素的动画和可以缩放的图像,所以我不能使用百分比。有没有办法使用 css transform scale 来做到这一点? 最佳答案 相对 c
我在 ChartJS 中遇到一个奇怪的错误并且不知道如何修复它,由于这个错误我无法更改比例的任何内容。 我的代码(Sensor.tsx): import { useParams } from "sol
我有一些数据,我正试图通过不断增加的分母来准确和精确地处理这些数据。 请假设分子总是有小数。 我在 docs 中看到divide(BigDecimal divisor) 实际上会减小比例,这看起来很奇
喂, https://jsfiddle.net/jbwq6y87/7/ #box { width: 500px; height: 500px; transition: 0.5s; ov
几个 Tk 小部件也存在于 Ttk 版本中。通常它们具有相同的一般行为,但使用“样式”和“主题”而不是每个实例的外观属性(例如 bg 等)。这很好,因为 Ttk 小部件默认采用操作系统窗口管理器的“标
我尝试转换视频并使用 scale=-1:720 调整其大小,但出现错误“宽度不能被 2 整除”。我解决了这个问题:scale=-2:720。 之间有什么区别 scale=-1:720 和 scale=
我正在尝试重新创建此 codepen变换:我网站上特定页面的缩放转换,但它没有按预期工作 - 正如您在此代码片段中看到的那样(在整页上查看) - 图像覆盖/覆盖不足和不稳定而不是平滑。 /* Part
我有 3 个 Scale 小部件 scale1、scale2 和 scale3。我想使用 scale1 按以下方式控制 scale2 和 scale3 的值: 我不希望 scale2 和 scale3
我目前正在将我的数据分析从 R 转移到 Python。在 R 中缩放数据集时,我会使用 R.scale(),据我所知,它会执行以下操作:(x-mean(x))/sd(x) 为了替换该函数,我尝试使用
从文档中,定义为: 量化 ..a variant of linear scales with a discrete rather than continuous range. The input do
我有一个时基折线图,我正在尝试获取点击坐标处每个刻度的值。 我在 ChartJS 选项中指定的 onClick 函数: onClick: function(event, elementsAtEvent
我见过这样写的代码: ,但我也看到过这样写的代码: initial-scale=1 和 initial-scale=1.0 有区别吗? 最佳答案 没有。 specification描述视口(viewp
给定 y 轴 (s) 上的缩放和 x 轴 (t) 上的平移参数,当目的是最大化曲线叠加(而不是最小化距离)时,如何缩放和对齐两条不重合的曲线? 正如 @DWin 所指出的,这可能会被重新命名为“如何使
我是一名优秀的程序员,十分优秀!