Abiword页面布局

Abiword页面布局

   

  

  • AP_Win32FrameImpl::_DocumentWndProc 文档窗口过程函数

 在WM_SIZE消息中设置FV_View对象的整体尺寸,跟窗体的:设备单位 转换成:布局单位。m_iWindowWidth = 19695,m_iWindowHeight= 8520

设备单位和布局单位的比例是:1:15。

    在设置尺寸是会根据文档窗体的实际尺寸利用下面的公式转换:

    m_iWindowWidth = 实际窗体尺寸*1440*100/96*100

         1440 是:#define UT_LAYOUT_RESOLUTION    1440,是版面设计的分辨率,在ut_units.cpp的单位转换函数中用到。

         100 是固定的值;

         96 是:利用GetDeviceCaps函数得到 LOGPIXELSX:沿屏幕宽度每逻辑英寸的像素数;

         100是:视图的显示比例

在WM_PAINT中绘制FV_View,FV_View::_draw

         #define fl_PAGEVIEW_PAGE_SEP m_pG->tlu(20)  // must be <= MARGIN_Y 页面之间的边距
         #define fl_PAGEVIEW_MARGIN_X m_pG->tlu(100) //左外边距 1500

         #define fl_PAGEVIEW_MARGIN_Y m_pG->tlu(25)   //上外边距 375

         右外边距(6290) = m_iWindowWidth - fp_Page.Width

  • 对于fp_Page类利用fp_PageSize类设置页面的尺寸。默认是A4纸(210,297),转换后的尺寸是(11905,16837)

    对每个Page调用fp_Page::draw绘制各个页。在fp_Page::_reformatColumns函数中计算每页的列宽。每个页得左右内边距是:1440 ,上下内边距是:1440,

    列宽是:9025

页边距在fl_DocSectionLayout::_lookupProperties函数中设置。默认边距是:2.54cm。

1 Inch = 2.54 Centimeters ,1 cm = 0.4 in

    fp_Line::setContainer设置每一行的宽等属性

 

  •  fp_Line,fp_Line::recalcHeight函数计算每一行的高度

iNewHeight = static_cast<UT_sint32>(iNewHeight * dLineSpace +50);// wfw edit 0.5 改为 50

dLineSpace 段落设置的中的行距,系统默认是单倍行距,现在改为1.5倍行距

 

  • fp_TextRun::_draw

UT_sint32 yTopOfRun = pDA->yoff - getAscent() + (getDescent()/2);// wfw edit,加上 getDescent()/2

  •  fb_LineBreaker类

 fb_LineBreaker encapsulates knowledge of how to break runs across lines.  
 It also breaks them between words, to help with later justification.

其中针对行尾是空格的情况做了改动,原来的程序存在bug会将空格一直输出到超过每个行最大行宽的位置

转载于:https://www.cnblogs.com/songtzu/p/3539787.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php图片编辑失真,PHP处理图片固定大小 不失真 不变形

由于工中使用到此代码 借鉴了各位前辈们代码的基础上修改而来 如果您的项目中有需要此代码 要以尽情的复制和修改 &#xff1b;如果您有更好的代码烦请告知本人 。我将感激不尽下面由上代码//图像处理类class Image {private $file;//图片地址private $width;//图片长度privat…

abiword Namespace List

abiword Namespace List Here is a list of all namespaces with brief descriptions: abicollab 这个命名空间以及下面的abicollab::service均是在线协作相关。abicollab::service 这个命名空间是在线协作相关。AiksaurusImpl 词库相关&#xff0c;命名空间名字翻译&#xff1…

ios php 表单提交图片上传,axios发送post请求提交图片表单步骤详解

这次给大家带来axios发送post请求提交图片表单步骤详解&#xff0c;axios发送post请求提交图片表单的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。DOME接口const userUploadAtt (File,config) > axios.post("接口",File,config)处理数…

solr4.6本地数据提交异常

初次学习solr的时候不能把dist文件夹所有的包都导入工程中&#xff0c;这样会有slf4j异常&#xff0c;这是因为slf4j版本冲突导致的。一个一个jar的导入的话&#xff0c;中间还是有许多异常出在哪个jar包中不清楚&#xff0c;所以我把我遇到的异常整理了一下。 异常一&#xff…

php 文件内容对比,php 比较两个文件是否相同

-### php比较两个文件是否相同小一点的文件直接实用内置函数就可以了function md5_files($filename,$filename1){$file1 md5_file($filename);$file md5_file($filename1);if($file $file1){return "文件相同";}else{return "文件不同";}}md5_file()…

今日心得:给自己写信

1.tomorrow is another day 2.有一种人一认识就觉得温馨 3.这个世界只在乎你是否达到了一定的高度&#xff0c;不在乎你是站在巨人的肩膀还是垃圾上上去的 4.花儿总要在风雨的洗礼下盛开 5.有一种“无能为力”叫宿命 6.幸福是什么&#xff1f;有很多幸福的瞬间&#xff0c;幸福…

Hibernate READ_WRITE CacheConcurrencyStrategy如何工作

介绍 在我以前的文章中&#xff0c;我介绍了NONSTRICT_READ_WRITE二级缓存并发机制。 在本文中&#xff0c;我将使用READ_WRITE策略继续本主题。 直写式缓存 NONSTRICT_READ_WRITE是一种通读缓存策略&#xff0c;可更新最终无效的缓存条目。 尽管这种策略可能很简单&#xff0…

matlab中的控制语句,MATLAB控制语句

目的&#xff1a;研究控制结构(用于, 是否, 切换, 中断, 继续, 输入/输出功能, 读取和存储数据)。If&#xff1a;If评估逻辑表达式并根据表达式的值执行一组语句。If语句的语法if expression 1statement1elseif expression 2statement 2elsestatement 3end例子>> a7a 7&g…

java.logging的重定向?

java.logging的重定向&#xff1f; 接着昨天的工作。 上面说要重定向java.util.logging.Logger的输出&#xff0c; 发现也不是不可能。 package jmx;import java.util.logging.FileHandler; import java.util.logging.Filter; import java.util.logging.Handler; import java.u…

Spring Enable批注–编写自定义的Enable批注

Spring提供了一系列名称以Enable *开头的注释&#xff0c;这些注释本质上使某些Spring管理的功能可以被激活。 这样的注释的一个很好的例子是EnableWebMvc &#xff0c;它引入了在基于Spring的应用程序中支持MVC流所需的所有bean。 另一个很好的例子是EnableAsync注释&#xff…

java hashmap替换key,HashMap 用可变对象作为 key 踩坑

点击上方☝Java编程技术乐园&#xff0c;轻松关注&#xff01;及时获取有趣有料的技术文章做一个积极的人编码、改bug、提升自己我有一个乐园&#xff0c;面向编程&#xff0c;春暖花开&#xff01;作者&#xff1a;Icharlehttps://icharle.com/hashmapkebianobj.html前言在 Ja…

(转)Eclipse平台技术概述

转载&#xff1a;周金根 http://zhoujg.blog.51cto.com/1281471/516833Eclipse&#xff1a;Eclipse平台技术概述2010-10-19 13:35:00标签&#xff1a;Eclipse 休闲 职场原创作品&#xff0c;允许转载&#xff0c;转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明…

php post调用api,PHP(CURL)POST数据调用API简单示例

/***一个完整的POST调用API的过程 百度知道*author: bo.xiao*/$url ‘http://zhidao.chanjet.com/restserver/zhidao’;$data array(‘api_key’>’3qQ2Edm62Vd4bAVCwNoxgn0l’,‘method’>’baidu.zhidao.getQuestionList’,‘call_id’>’1308713190’,‘cid’>…

【重温经典算法之二】快速排序

快速排序的思想与归并排序思想类似&#xff0c;都是采用分治法的思想。将一个数组A[l...r]使用快速排序可以分解为三个主要的步骤&#xff1a; 通过随机算法获得数组A中的一个下标k&#xff0c;将A[k]与A[r]交换。将数组分解成左右两个数组&#xff0c;左边数组的值均小于A[r]&…

用随机数发生器射击自己的脚

这将不是说明随机数生成器毕竟不是那么随机的文章之一。 因此&#xff0c;您中的那些人希望获得有关如何破解老虎机&#xff0c;继续前进的指南&#xff0c;在这里什么也看不到。 相反&#xff0c;它是有关一个不太常见的锁争用问题的帖子&#xff0c;该问题隐藏在Java API的随…

谈谈你对php的收获和不足,我的收获与不足

在我们的生活中&#xff0c;会经历很多不同的事情。有些是如流水般奔流向海&#xff1b;有些是如云烟一般消散&#xff1b;有些是能够像年轮般随时间流逝&#xff0c;一圈一圈留在那里&#xff0c;却始终浮现在于脑海&#xff0c;因为她曾经一次一次叮呤着你--“知不足才能自强…

cocos2dx

http://blog.csdn.net/iamlazybone/article/details/19046377 转载于:https://www.cnblogs.com/sgdkg/p/3548017.html

带有光纤的可扩展,健壮和标准的Java Web服务

这篇博客文章讨论了负载下的基准Web服务性能。 要了解有关Web服务性能理论的更多信息&#xff0c;请阅读利特尔定律&#xff0c;可伸缩性和容错 。 使用阻塞和异步IO对Web服务进行基准测试 Web应用程序&#xff08;或Web服务&#xff09;如何在负载下&#xff0c;面对各种故障…

转document.documentElement和document.body的区别

网页中获取滚动条卷去部分的高度&#xff0c;可以通过 document.body.scrollTop 来获取&#xff0c;比如使div跟着滚动条滚动&#xff1a; 转至:http://www.cnblogs.com/ckmouse/archive/2012/01/30/2332070.html <div id"div" style"width:100px;height:100…

php js 图片旋转,jQuery实现可以控制图片旋转角度效果

本文实例讲述了jQuery实现可以控制图片旋转角度效果。分享给大家供大家参考&#xff0c;具体如下&#xff1a;运行效果截图如下&#xff1a;具体代码如下&#xff1a;/p>"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">img { margin-top:100px; m…