是否可以将iPhone上的html(uiwebview)转换为pdf或png?

发布于 2024-08-08 06:24:45 字数 107 浏览 7 评论 0原文

我希望能够下载一个网页,然后将其保存为 pdf 或 png(或将其与所有 html、图像和 css 等文件一起保存在本地)。这样就可以在没有互联网连接的情况下查看该页面。有没有标准的方法来做到这一点?

I'd like to be able to download a web page and then save it as a pdf, or png (or save it locally with all the html, image and css etc files). This is so the page can be viewed without an internet connection. Is there a standard way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

北风几吹夏 2024-08-15 06:24:45

恐怕完全缓存页面的唯一方法是:

  1. 将 HTML 保存到文件
  2. 单步执行文件并保存任何链接的资源(图像、样式表、javascript)

即使如此,某些页面可能不会完全缓存,因为 javascript 可能需要其他地方的连接以提取数据。

如果你想截屏,可以使用一个私有API来截屏:

CGImageRef UIGetScreenImage();
@interface UIImage (ScreenImage)
+ (UIImage *)imageWithScreenContents;
@end

@implementation UIImage (ScreenImage)
+ (UIImage *)imageWithScreenContents
{
    CGImageRef cgScreen = UIGetScreenImage();
    if (cgScreen) {
        UIImage *result = [UIImage imageWithCGImage:cgScreen];
        CGImageRelease(cgScreen);
        return result;
    }
    return nil;
}
@end

I am afraid the only way is to fully cache the page is to:

  1. Save the HTML to file
  2. Step through the file and save any linked resources (images, stylesheets, javascript)

Even so, some pages may not be fully cached as javascript may require a connection elsewhere to pull data.

If you want to take a screenshot, there is a private API you can use to take a screenshot:

CGImageRef UIGetScreenImage();
@interface UIImage (ScreenImage)
+ (UIImage *)imageWithScreenContents;
@end

@implementation UIImage (ScreenImage)
+ (UIImage *)imageWithScreenContents
{
    CGImageRef cgScreen = UIGetScreenImage();
    if (cgScreen) {
        UIImage *result = [UIImage imageWithCGImage:cgScreen];
        CGImageRelease(cgScreen);
        return result;
    }
    return nil;
}
@end
离不开的别离 2024-08-15 06:24:45

只要 UIWebView 位于活动窗口的视图层次结构中,它就会在屏幕外渲染。然后您可以将其渲染到 PNG 缓冲区。

缺点是它的尺寸不会比屏幕大,因此您只能以屏幕尺寸的增量拍摄页面。

更好的方法是按照 coneybeare 的建议进行操作并保存页面的代码和资源。

A UIWebView will render offscreen as long as it's in the view hierarchy of the active window. You can then render it to a PNG buffer.

The downside is that it won't size itself any larger than the screen, so you're limited to photographing the page in screen-sized increments.

The much better way is to do what coneybeare suggested and save the page's code and assets.

椒妓 2024-08-15 06:24:45

因此可以将文档导出到 Google 文档,然后将其以 PDF 格式下载回来。我想这里的重点是在不连接到网络的情况下执行此操作。

So can exporting a document to Google doc and then downloading it back as a PDF. I guess the point here is to do it without being connected to the network.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文