iOS有一个惯例,即双击顶部栏(即显示当前时间的位置)将应用程序滚动到顶部状态.例如,双击Safari中的顶栏会将您带到当前网页的顶部,并且在Facebook/Twitter中双击顶部会将您带到Feed的顶部.这是一个非常有用的导航快捷方式.
为了解决这个问题,我们称之为TopTap.
我想知道如何在移动Safari中的JavaScript应用程序中检测TopTaps - 也就是说,不是在iOS应用程序中,而是在移动Safari中正好查看的网页中.
在我的特定情况下,我不能依赖内置的移动Safari TopTap行为,因为我的文档由一个<canvas>实现其自己的可滚动界面的元素组成.我希望能够检测到TopTap,以便我可以<canvas>将其滚动到顶部状态.
我已经尝试添加一个onscroll事件处理程序,但是在那个事件中没有可以区分TopTaps的区别信息.此外,我无法使用触摸事件(touchstart等),因为TopTap发生在浏览器/ OS chrome中,超出了网页的范围.
有任何想法吗?
我试图在给定当前变换矩阵(CTM)的情况下确切地弄清楚线宽如何影响PDF中的描边线.两个问题......
第一:如何使用CTM将线宽转换为设备空间?PDF 1.7参考中的页面208 描述了如何使用CTM转换点,假设输入数据是(x,y)点.线宽只是一个值,所以我该如何转换它?我是否像(lineWidth,lineWidth)一样创建一个"虚拟"点?
第二:一旦我进行了计算,我将得到另一个(x,y)点.如果CTM具有不同的水平与垂直比例因子,则会给出两种不同的线宽.这些线宽实际上是如何应用的?第一个(x)是否仅在绘制水平线时应用?
第二个问题的具体示例:如果我使用线宽(2,1)从(0,0)到(4,4)绘制/描边水平线,得到的矩形的边界框的坐标是什么(即,包含线宽的矩形)?
这是参考文献中的第215页,但实际上并没有解释描边线的粗细如何变化:
在设备空间中产生的效果取决于在描边路径时有效的当前变换矩阵(CTM).如果CTM通过水平和垂直维度中的不同因素指定缩放,则设备空间中的描边线的厚度将根据其方向而变化.
我使用以下Python/Boto代码生成一个到Amazon S3存储桶的一次性文件上传URL:
from boto.s3.connection import S3Connection
def get_signed_upload_url():
s3 = S3Connection(ACCESS_KEY_ID, SECRET_ACCESS_KEY, is_secure=True)
return s3.generate_url(300, 'PUT', bucket=BUCKET, key=KEY,
headers={'Content-Type': 'text/plain'})
Run Code Online (Sandbox Code Playgroud)
它已经运行了好几年了,今天仍在继续.
但是现在,我正在转换为IAM角色 - 这将使我免于硬编码ACCESS_KEY_ID和SECRET_ACCESS_KEY.因此,我删除了硬编码密钥,导致此代码:
from boto.s3.connection import S3Connection
def get_signed_upload_url():
s3 = S3Connection(is_secure=True)
return s3.generate_url(300, 'PUT', bucket=BUCKET, key=KEY,
headers={'Content-Type': 'text/plain'})
Run Code Online (Sandbox Code Playgroud)
使用此代码,每当我生成一个URL并PUT从我的客户端Web应用程序(通过Ajax)向它发出请求时,我都会收到HTTP 400 Bad Request来自S3 的错误:
<Error>
<Code>InvalidToken</Code>
<Message>The provided token is malformed or otherwise invalid.</Message>
<!-- account-specific stuff removed -->
</Error>
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
一些额外的细节:
generate_url()生成GETURL的调用- …我正在尝试计算矢量PDF中每个文本字形的确切边界框。
这包括跟踪CTM,绘制/放置PDF指令等,还包括计算“字形空间”中每个特定字形的边界(使用嵌入字体中的GLYF表中的信息)。
我意识到PDF FontDescriptor为每个嵌入字体都包括一个粗略的边框,但这是字体中所有字形的组合-即,适合字体中所有字形的最小边框。就我的目的而言,我需要更精确的定位。
我的特定应用是从活页乐谱的矢量PDF中提取音乐语义。因此,一个不错的约束条件是我可以假定字形没有在同一Tj / TJ运算符中绘制在一起。每个字形都是独立绘制的。
另外,请注意,我将边界框定义为“可以包含字形的所有绘制部分的最小框”。无需忽略ascenders / descenders / etc。在其他应用程序中可能被视为在边界框之外。
这里有很多活动的部分,我发现很难调试。因此,以下是我希望提供的帮助:
'&' ( 57.2799755477664, 600.7092061684704, 86.7452642315424, 677.1570718099680)
'\u02d9' ( 82.0030393188000, 633.6851606704608, 96.3090818379936, 644.6969866323168)
'\u0153' (144.7841941848000, 623.9630080194528, 158.6735558539200, 634.5581702962656)
'\u0153' (181.6778111184000, 619.0027260546528, 195.5671727875200, 629.5978883314656)
'w' (226.1671727148000, 611.3638918288608, 245.0765465300448, 622.3161944071392)
'w' (320.1063822180000, 631.2050196880608, 339.0157560332448, 642.1573222663392)
'\u0153' (414.0455917212000, 641.3239948962528, 427.9349533903200, 651.9191571730656)
'\u0153' (450.9392086548000, 636.3637129314528, 464.8285703239200, 646.9588752082656)
'\u0153' (487.9878407856000, 631.4034309666528, 501.8772024547200, 641.9985932434656)
'\u0153' (524.8814577192000, 628.9232899842528, 538.7708193883200, 639.5184522610656)
Run Code Online (Sandbox Code Playgroud)
您是如何计算这些职位的?(考虑到PDF的复杂性,我要问的问题很多。)进行演练将对您有很大的帮助,而且我相信它会在将来对其他人有所帮助。
有没有可以立即使用的工具?