[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

【完成】60元求合并epub

本帖最后由 lxh623 于 2024-10-5 09:50 编辑

文件链接在另一个求助帖。里面有一个需要合并。假设已经按那边的批处理修改完成。
系列文件名词大致是“XXX  第 1 卷 - ”\“XXX  第 002 卷 - ”\“XXX  第 003 卷 - ”等等。
第一,解包文件夹里面的css合并到第一个epub的css。删除重复?好像不会有重复。
第二,把第一个里面的xhtml后面加001,或者直接改001 。把后面文件夹的,依次复制到第一个那里。并且命名002,003等等。
第三,打开content.opf,在  </manifest>前面写入一行:
  1. <item id="XXXXXXX.xhtml" href="Text/XXXXXXX.xhtml" media-type="application/xhtml+xml"/>
复制代码
后面也许就可以打包了。

也试了一下calibre-portable的插件epubmerge合并,结果已经上传。

谢谢!

简单弄了下,其他的全交给阅读器设置
http://ybshare.com/download/a8bqvjmxuz

TOP

回复 2# Five66
下载不了。谢谢!

TOP

本帖最后由 Five66 于 2024-10-1 01:24 编辑

回复 3# lxh623


    额,打开链接后,等10s左右,然后点击页面那个 Download 下载
下载开始后也可以直接取消,然后复制下载链接放到下载工具里下载

TOP

回复 4# Five66
无论翻墙没有,都下载不了。
另外,我需要脚本、批处理之类的东西。或许可以写在这里。
合并的话,我自己也用插件合并了。
谢谢!

TOP

回复 5# lxh623


    啊,原来是脚本,epub里的xhtml和css不止一个,统一形式的还好,不统一的很难判断,合并还是直接用插件吧

TOP

终于用电信卡下载到。感觉不错,但是,怎么样批量操作。
有个问题是,microsoft edge打不开。
谢谢!
继续请教大家。

TOP

本帖最后由 lxh623 于 2024-10-4 15:42 编辑

再来求助。
系列文件夹名字,大致是“XXX  第 1 卷 - ”\“XXX  第 002 卷 - ”\“XXX  第 003 卷 - ”等等。
我用sigil试了一下。
批处理的思路:
第一,把pages、style文件夹的文件分别复制到同名的第 1 卷文件夹的下面对应。
第二,打开content.opf,每加一个,在  </manifest>前面写入两行:
  1. <item id="style377399.css" href="Styles/style377399.css" media-type="text/css"/>
  2.     <item id="____002___ai_4753.xhtml" href="Text/____002___ai_4753.xhtml" media-type="application/xhtml+xml"/>
复制代码
第三,同样在content.opf,每加一个,在 </spine>前面写入一行:
  1.     <itemref idref="____002___ai_4753.xhtml"/>
复制代码
主要是有时候百个左右,这样的办法估计更加好。

谢谢!

TOP

回复 8# lxh623

保存为 合并epub.bat,编码ANSI,此脚本放到解包后的文件夹内.
  1. <#*,:
  2. @echo off
  3. cd /d "%~dp0"
  4. set "batchfile=%~f0"
  5. Powershell -ExecutionPolicy Bypass -C "Set-Location -LiteralPath ([Environment]::CurrentDirectory);. ([ScriptBlock]::Create([IO.File]::ReadAllText($env:batchfile,[Text.Encoding]::GetEncoding(0) )) )"
  6. pause
  7. exit /b
  8. #>
  9. # 合并epub xhtml css,此脚本放到 解包后 文件夹内
  10. Get-ChildItem -Path . | Where-Object { $_ -is [IO.DirectoryInfo] -and $_.FullName -ne $env:batchfile } | Group-Object -Property @{
  11.   Expression = { $_.Name -replace '第\s+\d+\s+卷' }
  12. } | ForEach-Object {
  13.   $di1 = $_.Group | Where-Object { $_.Name -match '第\s+(\d+)\s+卷' -and $Matches[1] -eq '1' } | Select-Object -First 1
  14.   if ($null -eq $di1) { return }
  15.   if($_.Group.Count -le 1){return}
  16.   $opf = [IO.Path]::Combine($di1.FullName, 'OEBPS\content.opf')
  17.   $xml = [IO.File]::ReadAllText($opf)
  18.   if (-not $?) { return }
  19.   # 把第一个里面的xhtml后面加001,或者直接改001 。把后面文件夹的,依次复制到第一个那里。并且命名002,003等等。
  20.   # Get-ChildItem -LiteralPath ([IO.Path]::Combine($di1.FullName,'OEBPS\pages')) -Filter *.xhtml|Rename-Item -NewName '001.xhtml'
  21.   $di1.Name | Out-Host
  22.   $_.Group | Where-Object { $_ -ne $di1 } | ForEach-Object {
  23.     # $null = $_.Name -match '第\s+(\d+)\s+卷'
  24.     # $strctr = $Matches[1]
  25.     Get-ChildItem -LiteralPath ([IO.Path]::Combine($_.FullName, 'OEBPS\pages')) -Filter *.xhtml | ForEach-Object {
  26.       $fi2 = $_ | Copy-Item -Destination ([IO.Path]::Combine($di1.FullName, "OEBPS\pages")) -PassThru
  27.       if ($fi2) {
  28.         $xml = $xml.Replace("</manifest>", @"
  29. <item id="$($fi2.Name)" href="Text/$($fi2.Name)" media-type="application/xhtml+xml"/></manifest>
  30. "@).Replace("</spine>", @"
  31. <itemref idref="$($fi2.Name)"/></spine>
  32. "@)
  33.       }
  34.     }
  35.     Get-ChildItem -LiteralPath ([IO.Path]::Combine($_.FullName, 'OEBPS\style')) -Filter *.css | ForEach-Object {
  36.       $fi2 = $_ | Copy-Item -Destination ([IO.Path]::Combine($di1.FullName, "OEBPS\style")) -PassThru
  37.       if ($fi2) {
  38.         $xml = $xml.Replace("</manifest>", @"
  39. <item id="$($fi2.Name)" href="Styles/$($fi2.Name)" media-type="text/css"/></manifest>
  40. "@)
  41.       }
  42.     }
  43.   }
  44.   [IO.File]::WriteAllText($opf, $xml)
  45. }
复制代码
1

评分人数

微信:flashercs
QQ:49908356

TOP

回复 9# flashercs

谢谢!
还是不能顺利合并。
我把手动合并的文件上传,麻烦看一看。这个文件可以解包打包。
除了少几行,是不是page需要修改?
有几个不一样的地方。但是,我把手动的两个文件content、toc替换,以及文件移动到一样的文件夹,也不能打包。
  1.     <itemref idref="toc"/>
  2.     <meta content="0.9.10" name="Sigil version" />
  3.     <meta property="dcterms:modified">2024-09-29T07:04:17Z</meta>
  4.     <meta property="dcterms:modified">2024-10-04T18:04:46Z</meta>
  5. <package version="3.0" unique-identifier="db-id" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.idpf.org/2007/opf">
  6. <package version="3.0" unique-identifier="db-id" xmlns="http://www.idpf.org/2007/opf" xmlns:dc="http://purl.org/dc/elements/1.1/">
复制代码
链接: https://pan.baidu.com/s/1cVsri59YOkHLJSBcN8dSRw?pwd=usp7 提取码: usp7

TOP

回复 10# lxh623


通过百度网盘分享的文件:cbeta白话文制作
链接:https://pan.baidu.com/s/10YwAhgGyHO57CwpARcb1gA
提取码:i5dx
微信:flashercs
QQ:49908356

TOP

本帖最后由 lxh623 于 2024-10-5 09:17 编辑

回复 11# flashercs
谢谢!
下载了合并epub。但是,出来解包后\解包后,路径没有找到。
另外,我用ebook-edit-portable手动合并了一个(可以解包打包),上传了。(过程中,加入别的文件,xhtml一个一个指定css。)

TOP

谢谢!请查收。

TOP

返回列表