如何将网页(分页)拼接成一页以便打印

如何将网页(分页)拼接成一页以便打印

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

例如,我想打印出此主题,但它被分成了10个部分;我怎样才能将它们合并在一起,使打印更轻松、更高效?

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

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

答案1

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

大多数论坛通常都有一个 lofi 版本,它会删除分页功能,并在一个页面上显示整个主题。诀窍是找到特定论坛软件的页面/目录。

在您的例子中,HealthBoards 在 vBulletin 上运行,其 lofi 路径为/archive/。这应该是目录之后到论坛本身的新路径,如下所示:

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

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

vBulletin 线程的快速抓取版本:

原始线程在这里:

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

快速方法是获取 URL 中紧接着的t=(下一个与号 ( &) 之前)该值,然后根据需要进行替换:

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

答案2

如果你使用 Firefox,我建议自动分页器扩展。它将遍历所有页面并将它们合并为一个大页面,然后您就可以打印出它为您创建的整个页面。

对于大多数网站,它可以自动将单独的页面合并为一个页面,但对于某些网站,您必须告诉它链接在哪里。

答案3

该解决方案适用于 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 将它们连接起来。我不知道这个命令的 Windows 等效版本,但肯定有一个:

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

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

编辑:这里是获得适用于 Windows。当然,你可以使用其他下载管理器

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

答案4

您可以使用 Microsoft Excel 来完成此操作(如果您有的话:))它具有进行网络查询的功能(菜单:数据 > 导入外部数据 > 网络查询)

我录制了 VB 宏并做了一些更改,以便您可以将地址添加到第一个工作表,例如:(每个地址都在下一个单元格中)

http://www.healthboards.com/boards/printthread.php?t=296667&pp=20&page=1 ........................................./boards/printthread.php?t=296667&pp=20&page=2 ............................................../boards/printthread.php?t=296667&pp=20&page=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

相关内容