使用帮助
关注公众微信
 读懂通信 LTE学习大使 登陆 搜索

>> 丛书相关
空中接口学园在线学园丛书 → 制作25周年分享电子书
  发表一个新主题  发表一个新投票  回复主题 您是本文的第 20 个阅读者  浏览上一篇主题  刷新本主题   树形显示文章 浏览下一篇主题
 * 主题: 制作25周年分享电子书 保存该页为文件  报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 tom 离线,有人找我吗?
  
  
  等级:LTE学习大使
  文章:4604
  积分:
  注册:2003-06-10
给tom发送一个短消息 把tom加入好友 查看tom的个人资料 搜索tom在丛书的所有文章 点击这里发送电邮给tom 引用回复这个文章 回复这个文章楼主
发文心情 制作25周年分享电子书
一晃眼,我的第一本书《PHS空中接口纵横谈》出版快25年了,时光如梭。考虑到这本书纸质版应该不太有了,我准备做个电子版,用来纪念一下。

  没想到,做个电子版还很难。

  原书是Word格式的,不适合分享。做成PDF,又失去了分享的特点,因此还是想做成htm网页版,进而做成mk版,方便导入AI。

  首先是转markdown,用了DS推荐的方案,比如Mammoth和pandoc,结论是pandoc比较强一些,处理粗体准确,但是也有弱点。最大的问题就是无法处理word文档中的图形对象(形状和连线),导致组合图无法保存下来。微软的Markitdown工具,能保存图形对象中的文字,但是保存不了图形。偏偏这本书里面有大量的结构图和流程图,不保存下来就会开天窗。

  后来考虑转htm,DS推荐的calibre可以将docx转成epub,但同样还是遇到了图形对象无法保存的问题,看来必须要将word图形对象转换为点阵图。


[此贴子已经被作者于2026-04-19 20:27:11编辑过]

----------------------------------------------

点击查看用户来源及管理<br>发贴IP:*.*.*.* 2026-04-19 16:29:16
  鲜花(0)  鸡蛋(0)
 tom 离线,有人找我吗?
  
  
  等级:LTE学习大使
  文章:4604
  积分:
  注册:2003-06-10
给tom发送一个短消息 把tom加入好友 查看tom的个人资料 搜索tom在丛书的所有文章 点击这里发送电邮给tom 引用回复这个文章 回复这个文章2
发文心情 
DS给出的方案是采用VBA来自动转换,可惜提供的代码错误百出,完全没法用。
  最后换到豆包,给出了一个可用的代码,可以把word图形对象转换为EMF,也就是增强图元文件。
  
Sub Toemf()
    Dim i As Long
    Dim shpOld As Shape
    Dim cnt As Long
    cnt = 0
    
    Application.ScreenUpdating = False
    On Error Resume Next
    
    ' 倒序遍历,保证删除不错乱
    For i = ActiveDocument.Shapes.count To 1 Step -1
        Set shpOld = ActiveDocument.Shapes(i)
        
        ' 选中复制
        shpOld.Select
        Selection.Copy
        Selection.Collapse wdCollapseStart
        ' 粘贴为图片
        Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile
        
        ' 删除原始旧组合形状
        shpOld.Delete
        
        cnt = cnt + 1
    Next i
    
    On Error GoTo 0
    Application.ScreenUpdating = True
    MsgBox "全部批量完成!共转换:" & cnt & " 个图形,旧图全部删除,全部转为EMF图片"
End Sub

  转换为EMF后,还不是点阵图,想转成其他格式PNG或GIF,没有这个类型参数。甚至有的类型参数,比如wdPasteBitmap、
wdPasteDeviceIndependentBitmap也是失效的。

----------------------------------------------

点击查看用户来源及管理<br>发贴IP:*.*.*.* 2026-04-19 20:25:29
 tom 离线,有人找我吗?
  
  
  等级:LTE学习大使
  文章:4604
  积分:
  注册:2003-06-10
给tom发送一个短消息 把tom加入好友 查看tom的个人资料 搜索tom在丛书的所有文章 点击这里发送电邮给tom 引用回复这个文章 回复这个文章3
发文心情 
眼看就走投无路了,没想到无意间把转换成EMF后的文件另存为htm后,word竟然把EMF转换为gif文件了,这下就解决了最棘手的问题。

----------------------------------------------

点击查看用户来源及管理<br>发贴IP:*.*.*.* 2026-04-19 20:31:20
 tom 离线,有人找我吗?
  
  
  等级:LTE学习大使
  文章:4604
  积分:
  注册:2003-06-10
给tom发送一个短消息 把tom加入好友 查看tom的个人资料 搜索tom在丛书的所有文章 点击这里发送电邮给tom 引用回复这个文章 回复这个文章4
发文心情 
如果保存为wmf,要修改一下:
Sub Towmf()
    Dim i As Long
    Dim shpOld As Shape
    Dim cnt As Long
    cnt = 0
    
    Application.ScreenUpdating = False
    On Error Resume Next
    
    ' 倒序遍历,保证删除不错乱
    For i = ActiveDocument.Shapes.Count To 1 Step -1
        Set shpOld = ActiveDocument.Shapes(i)
        
        ' 选中复制
        shpOld.Select
        Selection.Copy
        Selection.Collapse wdCollapseStart
        ' 粘贴为图片
        Selection.PasteSpecial Link:=False, DataType:=wdPasteMetafilePicture
        
        ' 删除原始旧组合形状
        shpOld.Delete
        
        cnt = cnt + 1
    Next i
    
    On Error GoTo 0
    Application.ScreenUpdating = True
    MsgBox "全部批量完成!共转换:" & cnt & " 个图形,旧图全部删除,全部转为wmf图片"
End Sub

----------------------------------------------

点击查看用户来源及管理<br>发贴IP:*.*.*.* 2026-04-21 21:54:42

本主题文章数4,分页: [1]

管理选项锁定 | 解锁 | 提升 | 删除 | move | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告

Powered by:Old version
Copyright ©2002 - 2019空中接口学园 , 页面执行时间:78.125毫秒