作者nosignal90 (NoSignal)
看板Web_Design
标题[问题] 如何判断页面的右边界
时间Sat Feb 20 02:30:05 2016
各位好,
我目前在做的计划是要比对PDF的格式
在google看了很久以後
发现jpedal的pdf->html5转换的格式让我很好处理
所以目前打算用这个方法来实作看看
(如果有更好的方法也麻烦告诉我!)
总之,jpedal转换之後的html里面包含了css的配置
转换後的范例如下:
#t5_1{left:124px;top:236px;letter-spacing:-0.1px;word-spacing:0.1px;}
#t6_1{left:124px;top:251px;letter-spacing:-0.1px;word-spacing:0.3px;}
#t7_1{left:124px;top:295px;}
#t5_1这个同时也是一行文字的id
<div id="t5_1" class="t s4_1">90089-0781, U.S.A</div>
然後有文字的格式内容
.s4_1{
FONT-SIZE: 54.8px;
FONT-FAMILY: 'Times New Roman', Times, serif;
color: rgb(0,0,0);
FONT-STYLE: italic;
}
所以整个页面是以一行一行的文字为单位去做转换
老板那边对於pdf的格式有规定的要求(不然找我来做格式系统干嘛XD)
例如边界,上下左右各2 inch
上下左这3个边界处理起来没有问题
拿个标准档案来转换inch px很容易判断
但是右边界我想了很久都不知道怎麽算
有想过的方法是用letter-spacing, word-spacing去算
一行的最後一个文字的位置应该可以用这个推出来?
不过我其实对css只有超级粗浅的概念
不懂为什麽letter spacing 怎麽会是-0.1px?
(word spacing也是有正有负)
如果用spacing去计算的话,怎麽会是负值@@?
然後还有个要求是要看文字是否置中
我是想说这个基本是只要知道右边界就可以知道了吧~
去算该行文字的左边界有没有等於右边界就好了
(或者各位有更好的方法也欢迎给我点建议)
怕大家不知道我在说什麽,在这边附上图片
http://imgur.com/SCfqoM6
谢谢各位了~(鞠躬)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 97.93.122.75
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1455906607.A.C43.html
1F:推 b35894814: 自己算一下,全页-left-内文=right,不就可以了吗?0.0 02/20 02:49
嗯...
内文好像可以用word or letter spacing 去计算?
目前只有一行的起始位置,也就是left是已知
计算的话,我的想法是起始位置+一行几个字*字距 = 一行的最後一个字的位置
知道最後一个字的位置的话,就可以和页面比较得出右边界是否合於标准
不懂的地方是为什麽字距值可以是负的@@?
2F:推 mmis1000: 如果是不知道文字实际宽度,canvas有一个method可以算, 02/20 03:16
3F:→ mmis1000: 叫measureText 02/20 03:16
4F:→ mmis1000: 但算出来的结果不完全准确 02/20 03:19
5F:→ mmis1000: 一切还是以浏览器实际执行为准 02/20 03:19
6F:→ mmis1000: 像是 To 这种组合的宽度,并不等於 T + o 的宽度,因为 02/20 03:20
7F:→ mmis1000: 排版上可能会把o往内移进T里面,算出来当然是错的 02/20 03:21
好的 来查查看这个用法 看适不适合
另外...我是没有考虑过浏览器的问题(其实是觉得不用考虑?)
大致的流程是:
使用者送出pdf档案
->系统转换成html5+css
->有标准的html5+css的格式值和转换过来的档案比对
所以,我想浏览器执行应该不是我需要考虑的部份?
如果以上想法有误麻烦告诉我~~~ 感激不尽>_<
※ 编辑: nosignal90 (66.215.98.249), 02/21/2016 12:48:51
※ 编辑: nosignal90 (66.215.98.249), 02/21/2016 12:52:39