XE8 FMX Windows 修复列印旋转文字问题

问题:XE8 Firemonkey Windows 无法列印旋转文字(与显示在视窗里的代码相同时)

适用:XE8 Windows 平台(其它平台测试没问题)

修复前效果:

修复后效果:

修复方法:

请将源码 FMX.Printer.Win.pas 复制到自己的工程目录里,再进行修改。

找到 TPrinterWin.GetCanvas 函数,修改如下:

uses System.Math.Vectors; // 加入这个
..... 省略 ......

function TPrinterWin.GetCanvas: TCanvas;

begin
  if FCanvas = nil then
  begin
    FCanvas := TCanvasManager.CreateFromPrinter(Self);
    SetCanvasDefaultSettings;

{+++>}FCanvas.SetMatrix(TMatrix.Identity); // 加入这行

  end;
  Result := FCanvas;
end;

时间: 2024-08-02 12:19:33

XE8 FMX Windows 修复列印旋转文字问题的相关文章

C#利用GDI+绘制旋转文字等效果实例

本文实例讲述了C#利用GDI+绘制旋转文字等效果的方法,是非常实用的技巧.分享给大家供大家参考之用.具体如下: C#中利用GDI+绘制旋转文本的文字,网上有很多资料,基本都使用矩阵旋转的方式实现.但基本都只提及按点旋转,若要实现在矩形范围内旋转文本,资料较少.经过琢磨,可以将矩形内旋转转化为按点旋转,不过需要经过不少的计算过程.利用下面的类可以实现该功能. 具体实现代码如下: using System; using System.Collections.Generic; using System

大型物件列印之翹曲現象與加熱板作用論述

大型物件列印之翹曲現象與加熱板作用論述 原文出處:http://goo.gl/088nW 這篇文章的許多論點主要是延續原作者的前一篇"warping fundamentals"去思考.特別是,去思考列印的速度.列印物件的尺寸.以及塑料的種類,這些都會是造成物件捲曲的因素.還有一些顯而易見的論點提到,為何加熱板的使用會減少捲曲的現象. More of the same ‘out loud’ thinking on the issue of warping in this post to follo

拆卸列印件的方法

拆卸列印件的方法 转自http://diy3dprint.blogspot.tw/2014/12/blog-post.html 這是我個人的方法,不是一定要照我這樣做.不過我這個方法相當安全,提供給大家參考. 從玻璃板背後,吹熱風.一直加熱到列印件底部也受熱.利用玻璃與列印件熱膨脹係數不同的特性,讓列印件不再黏的那麼牢. 玻璃翻回正面,一側靠牆,油漆鏟刀從另一側下刀.這樣施力才能完全用於鏟起工件,施力方向也不會朝向自己的另外一隻手,避免刀具傷到手的意外.可以旋轉玻璃,從四個方向慢慢推進鏟刀. 漆

旋转文字的CSS代码

旋转文字的CSS代码:文字旋转效果如果使用CSS2很难实现,不过CSS3已经提供现成的属性,下面就是一段这样的代码实例和大家分享一下,希望能够给大家带来借鉴作用,代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /&g

【ExtJs】表格控件Grid的增删改查,利用renderer让操作列actioncolumn使用文字而不是图标

在<[ExtJs]与后台数据库交互的带分页表格组件grid的查询>(点击打开链接)中介绍了Grid控件是怎么分页显示的.再加上对此控件内的数据的增加.删除.修改,就真的是大功告成了.此控件的排序,应该在后台的数据库查询语句中增加一条order by语句即可,前台的排序在分页之后,仅能对当前页进行排序,没有什么意义.下面举一个例子来说明,如果对ExtJs的表格控件Grid进行增删改查 一.基本目标 还是在数据库中有一张user表: 然后在网页中,如下图所示,通过增加.编辑.删除按钮能为这个表格控

JS实现固定在网页右上角3D风格旋转文字

始终显示在网页右上角的文字特效,而且还可以围绕成3D风格的旋转,文字自己修改下,是使用较原生的JS代码来实现,无jquery和其它插件,代码简单可参考性强. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>JS实现固定在网页右上角3D风格旋转文字丨石家庄花卉绿植租摆|河北叉车</ti

PIVOT 用于将列值旋转为列名

PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 注意:PIVOT.UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->兼容级别改为   90 ) SQL2008 中可以直接使用 完整语法:   UNPIVOT 用于将列明转为列值(即列转行),在SQL Server 2000可以用UN

可以旋转文字的验证码

直接上图,验证码可以设置字符个数,字符颜色,背景颜色,旋转角度,新的字体. 请注意加载新字体那一块代码,一定要注册一下,不然带不出文字. 自己看代码吧... package com.ukWord.servlet; import com.ukWord.util.AppConst; import org.apache.commons.lang3.StringUtils; import sun.font.FontDesignMetrics; import javax.imageio.ImageIO;

修复 XE8 FMX TGridLayout 容器自动计算宽度及高度的问题

说明:TGridLayout 提供计算容器内控件等分的功能: 横式(Orientation=Horizontal)可将 ItemWidth = -1(小于0则自动等分) 直式(Orientation=Vertical)可将 ItemHeight = -1(小于0则自动等分) 问题:当 TGridLayout 设定 Padding 边界时,会造成等分计算错误. 适用:XE8 Firemonkey 修复方法: 请将源码 FMX.Layouts.pas 复制到自己的工程目录里,再进行修改. 找到: i