我被要求更新一些Excel 2003的macros,但VBA项目是密码保护,似乎缺乏文档…没有人知道密码。 有没有办法在VBA项目上删除或破解密码?
最近有很多关于绘制PDF的问题。 是的,您可以使用UIWebView非常轻松地呈现PDF,但是不能提供您期望从一个好的PDF查看器获得的性能和function。 您可以将PDF页面绘制到CALayer或UIImage 。 苹果甚至有示例代码来展示如何在Zoomable UIScrollview中绘制大型PDF 但同样的问题还在不断出现。 UIImage方法: UIImage PDF在光学上并不像Layer方法那么好。 从PDFcontext生成UIImages的CPU和内存限制/阻止使用它来创build新的缩放级别的实时渲染。 CATiledLayer方法: Theres一个重要的开销(时间)绘制一个完整的PDF页面CALayer :个别瓷砖可以看到渲染(即使有tileSize调整) CALayers不能提前准备(脱离屏幕)。 一般来说PDF阅读器在内存上也相当重要。 甚至监控苹果的可缩放PDF实例的内存使用情况。 在我当前的项目中,我正在开发一个PDF查看器,并在一个单独的线程中渲染一个页面的UIImage (在这里也有问题!),并在scale为x1时显示它。 一旦比例大于1, CATiledLayer渲染就会启动。 iBooks采取了类似的双重处理方法,就像在页面上滚动页面一样,在清晰的版本出现之前,您可以看到页面的较低分辨率版本不到一秒。 Im在页面的每一面都呈现2页的焦点,这样PDF图像就可以在开始绘制之前对图层进行遮罩了。页面在离焦点页面+2页时被再次销毁。 有没有人有任何见解,无论多么微小或明显的改善绘图PDF的性能/内存处理? 或在这里讨论的任何其他问题? 编辑:一些技巧(信用,卢克Mcneice,VdesmedT,马特加拉格尔,约翰): 尽可能将所有媒体保存到磁盘。 如果在TiledLayers上渲染,则使用较大的tileSizes 初始化常用的占位符对象的数组,另一种devise方法是另一种 请注意,图像渲染速度比CGPDFPageRef快 使用NSOperations或GCD& Blocks提前准备页面。 调用CGContextSetInterpolationQuality(ctx, kCGInterpolationHigh); CGContextSetRenderingIntent(ctx, kCGRenderingIntentDefault); CGContextSetInterpolationQuality(ctx, kCGInterpolationHigh); CGContextSetRenderingIntent(ctx, kCGRenderingIntentDefault); 在CGContextDrawPDFPage之前减less绘图时的内存使用量 用docRef启动你的NSOperations是一个坏主意(内存),把docRef包装成一个单例。 取消不必要的NSOperations当你可以,特别是如果他们将使用内存,要小心留下的上下文打开虽然! 回收页面对象并销毁未使用的视图 一旦你不需要它们,closures所有打开的上下文 在收到内存警告释放并重新加载DocRef和任何页面caching 其他PDFfunction: 在PDF中获取链接 (以及这里和这里 ) 了解PDF Rect链接定位 转换PDF注释datestring 获取链接的目标 (从/Dest数组获取页码) […]
例如,如果通过如下: a = [] 如何检查a是否为空?
我想把我的编程视野扩展到Linux。 一个好的,可靠的基本工具集是重要的,比IDE更基础的是什么? 我可以find这些SO主题: 适用于Linux和Linux的轻量级IDE 你用什么工具在Linux上开发C ++应用程序? 我不是在寻找一个轻量级的 IDE。 如果一个IDE值钱,那么我会付钱,所以它不一定是免费的。 那么我的问题是: C ++编程IDE有什么好处可用于Linux? 最低限度是相当标准的:语法高亮,代码完成(如intellisense或其Eclipse对应)和集成debugging(如基本断点)。 我已经自己search了,但是有这么多,几乎不可能用手将好坏分开,特别是对于像我这样在Linux中几乎没有C ++编码经验的人来说。 我知道Eclipse支持C ++ ,并且我非常喜欢Java的IDE,但对于C ++来说它有什么用处,还有更好的方法吗? 第二篇文章实际上有一些很好的build议,但是我所缺less的是什么使得拥塞的IDE对用户来说如此的好,它的优点是什么? 也许我的问题应该是: 你提出什么IDE(给你的经验),为什么?
我想创build一个用于testing目的的选项列表。 起初,我这样做了: ArrayList<String> places = new ArrayList<String>(); places.add("Buenos Aires"); places.add("Córdoba"); places.add("La Plata"); 然后我重构代码如下: ArrayList<String> places = new ArrayList<String>( Arrays.asList("Buenos Aires", "Córdoba", "La Plata")); 有没有更好的方法来做到这一点?
EntityManager.merge()可以插入新的对象并更新现有的对象。 为什么要使用persist() (只能创build新的对象)?
有人可能举一个“caching不友好的代码”和“caching友好”的代码版本的例子? 我怎样才能确保我编写caching高效的代码?
我已经和其他开发者一起使用Git几个月了。 我有几年的SVN经验,所以我想我带了很多的关系的包袱。 我听说Git非常适合分支和合并,到目前为止,我只是没有看到它。 当然,分支是简单的,但是当我尝试合并的时候,所有的事情都变成了地狱。 现在,我已经习惯了SVN,但是在我看来,我只是把一个子版本系统换成另一个。 我的合作伙伴告诉我,我的问题源自我渴望融合的愿望,在很多情况下我应该使用rebase而不是merge。 例如,下面是他制定的工作stream程: clone the remote repository git checkout -b my_new_feature ..work and commit some stuff git rebase master ..work and commit some stuff git rebase master ..finish the feature git checkout master git merge my_new_feature 从本质上讲,创build一个function分支,总是重新从主分支,并从分支合并到主。 需要注意的是,分支始终保持在本地。 这是我开始的工作stream程 clone remote repository create my_new_feature branch on remote repository git checkout -b […]
我想为我的CSS表使用百分比。 不幸的是,它不适合我。 这个代码有什么问题? 我应该使用flexbox而不是表? 我想用表,因为我想要相同的高度栏。 ul { list-style: none; margin: 0; display: table; table-layout: fixed; width: 100%; } li { width: 50%; display: table-cell; } <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ul>
这是JFrame package client.connection; import java.awt.Dimension; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import javax.swing.JFrame; class DrawFrameRemoteControl extends JFrame { private DrawPanelRemoteControl imagePanel; private ClientRemoteControlConnection clientRemoteControlConnection; private ObjectInputStream clientInputStream; private ObjectOutputStream clientOutputStream; private Dimension imageDimension; private Dimension serverDimension; public DrawFrameRemoteControl(Dimension imageDimension,ClientRemoteControlConnection clientRemoteControlConnection,ObjectInputStream clientInputStream,ObjectOutputStream clientOutputStream,Dimension serverDimension) { super("Remote Desktop Control"); this.clientRemoteControlConnection=clientRemoteControlConnection; this.clientInputStream=clientInputStream; this.clientOutputStream=clientOutputStream; this.imageDimension=imageDimension; this.serverDimension=serverDimension; imagePanel=new DrawPanelRemoteControl(imageDimension); add(imagePanel); setSize(imageDimension.width,imageDimension.height); setResizable(false); […]