如何将(分页)网页拼接成一页进行打印


4

有没有办法将网页拼接(分页)?

例如,我想要打印出来 这个帖子 ,但它分为10个部分; 如何将它们组合在一起以使打印更容易,更有效?

我更喜欢基于网络的快速解决方案,但简单的离线工具也是可以接受的(我已经下载了每个部分并手动将文件合并到一个html文件中,之后......)

编辑: 我忘了提到我在Vista Enterprise上使用Opera



1
我对两个问题进行了比较,两者之间存在一个根本区别,一个是可能重复的解决方案仅适用于Firefox,另外两个帖子指的是 印花 而可能的重复指的是 观看
BinaryMisfit

Answers:


4

如果您不想打扰插件,可以尝试查看是否有一个版本的网站将转储打印版本的所有内容。

对于大多数论坛,通常有一个lofi版本,它将删除分页并在一个页面上显示整个线程。诀窍是找到该特定论坛软件的页面/目录。

在您的情况下,HealthBoards在vBulletin上运行,而lofi路径就是这样 /archive/。这应该是目录到板本身之后的新路径,如下所示:

http://www.healthboards.com/boards/archive/index.php

从那里,您可以导航回该主题并查看单个页面上的所有帖子。

vBulletin线程的快速抓取版本:

原始帖子在这里:

http://www.healthboards.com/boards/showthread.php?t=296667

快速的方法是在之后获取该值 t= (在下一个&符之前( & )在URL中)并在必要时替换如下:

http://www.healthboards.com/boards/archive/index.php/t-296667.html


嘿,这个案子非常适合我的需要。我认为“可打印”版本是最好的lofi版本。如果没有人提出通用解决方案,我会接受这个答案。
Leftium

一般化解决方案更好,但认为这种方法可能有助于类似情况。
random

现在这很光滑,回声。
hyperslug

接受了答案,虽然我在打印此版本时遇到了问题! (需要在IE中选择所有,打印选择)
Leftium

你有什么问题?
random

4

如果您使用的是Firefox我建议使用 自动翻页 延期。它将遍历所有页面并将它们组合成一个大页面,然后您可以打印出为您创建的整个页面。

对于大多数网站,它可以自动将单独的页面加入到单个页面中,但对于某些页面,您必须告诉它链接的位置。


2

这个解决方案适用于unix,但我相信你可以找到vista的等价物。

首先,使用wget下载文件:

wget -nd -k -p "http://www.healthboards.com/boards/printthread.php?t=296667&pp=20&page="{1,2,3,4,5,6,7,8,9,10} --wait 5

然后用cat连接它们。我不知道这个命令的窗口等价,但肯定必须有一个:

cat "printthread.php?t=296667&pp=20&page="* > hello.html

文件hello.html将是一个包含所有线程页面的大文件。你可能会因为所有页面都有vbulletin徽标而感到恼火!

编辑:这是 wget的 对于窗户。当然,你可以使用其他一些下载管理器

这里 是如何在Windows上连接文件。


1

如果你不介意花一些钱,那里有商业应用程序。我用过ClickBook BlueSquirrel 除其他外,它可以拼接多个打印输出。


1

您可以使用Microsoft Excel(如果您有一个:)) 它具有进行Web查询的功能(菜单:数据>导入外部数据> Web查询)

我录制了VBA宏并进行了一些更改,因此您可以向第一张表添加地址, 喜欢:(每个地址都在下一个单元格中)

http://www.healthboards.com/boards/printthread.php?t=296667&pp=20&page=1 ............................................. /板/ printthread。 PHP T = 296667&安培; PP = 20&安培;页= 2 ............................................. /板/ printthread。 PHP T = 296667&安培; PP = 20&安培;页= 3

然后运行此宏并获取结果。 它帮助了我。

宏:

Sub Macro2()
'
' Macro2 Macro

'
Dim url As String
Dim count As Integer

Dim resaultSheet As String
Dim adressesSheet As String

  adressesSheet = ActiveSheet.Name
  resaultSheet = Sheets.Add().Name

Sheets(adressesSheet).Select
Sheets(adressesSheet).Cells(1, 1).Select

ActiveCell.SpecialCells(xlLastCell).Select

count = ActiveCell.Row

Sheets(resaultSheet).Select
Sheets(resaultSheet).Cells(1, 1).Select

For i = 1 To count

 url = "URL;" + Sheets(adressesSheet).Cells(i, 1)


 With ActiveSheet.QueryTables.Add(Connection:= _
        url, Destination _
        :=ActiveCell)
        .Name = "name"
         .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingAll
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = True
        .WebDisableRedirections = True
        .Refresh BackgroundQuery:=False
    End With

       ActiveCell.SpecialCells(xlLastCell).Select
        Cells(ActiveCell.Row + 1, 1).Select

Next i


End Sub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.