怎么打印一本电子书要多少钱书?

简介微信朋友圈保留着你的数据,它留住了美好的回忆,记录了我们成长的点点滴滴。发朋友圈从某种意义上来讲是在记录生活,感受生活,并从中看到了每个人每一步的成长。这么一份珍贵的记忆,何不将它保存下来呢?只需一杯咖啡的时间,即可一键打印你的朋友圈。它可以是纸质书,也可以是电子书,可以长久保存,比洗照片好,又有时间足迹记忆。这本书,可以用来:
送给孩子的生日礼物
送给伴侣的生日礼物
送给未来的自己
……
现在,你可以选择打印电子书或者纸质书。打印纸质书的话,可以找第三方机构花钱购买;打印电子书的话,我们完全可以自己动手生成,这可以省下一笔不小的开支。部分截图在开始写代码思路之前,我们先看看最终生成的效果。电子书效果纸质书效果代码思路获取微信书链接看完效果图之后,开始进入代码编写部分。首先,由于朋友圈数据的隐私性较高,手动获取的话,需要使用root的安卓手机进行解密或对pc端备份的聊天记录数据库进行解密,这对大部分人来说难度较大。所以我们采取的思路是基于现有的数据进行打印电子书。目前,已经有第三方服务支持导出朋友圈数据,微信公众号【出书啦】就提供了这样一种服务。这种服务很大可能性是基于安卓模拟器进行自动化采取操作的,具体就不详细讲了。首先,关注该公众号,然后开始制作微信书。该过程为小编添加你为好友,然后你将朋友圈开放给他看,等一会后采集完毕后,小编会发给你一个专属链接,这个链接里面的内容就是你的个人朋友圈数据。生成电子书有了这个链接后,我们开始对该页面的内容进行打印。整个过程基于selenium自动化操作,如果你有了解过selenium的话,那么其实该过程是很简单的。首先,引导用户输入微信书链接,我们采用在浏览器弹出一个输入文本框的形式让用户输入数据。首先,在selenium中执行js代码,js代码中完成弹出输入文本框的功能。输入微信书链接# 以网页输入文本框形式提示用户输入url地址
def input_url():
# js脚本
random_id = [str(random.randint(0, 9)) for i in range(0,10)]
random_id = "".join(random_id)
random_id = 'id_input_target_url_' + random_id
js = """
// 弹出文本输入框,输入微信书的完整链接地址
target_url = prompt("请输入微信书的完整链接地址","https://");
// 动态创建一个input元素
input_target_url = document.createElement("input");
// 为其设置id,以便在程序中能够获取到它的值
input_target_url.id = "id_input_target_url";
// 插入到当前网页中
document.getElementsByTagName("body")[0].appendChild(input_target_url);
// 设置不可见
document.getElementById("id_input_target_url").style.display = 'none';
// 设置value为target_url的值
document.getElementById("id_input_target_url").value = target_url
"""
js = js.replace('id_input_target_url', random_id)
# 执行以上js脚本
driver.execute_script(js)
上述js代码的具体步骤为:弹出一个输入文本框,创建一个动态元素,随机命名该元素的id,并将这个动态元素插入到当前页面中,使得可以在python中通过selenium获取到输入文本框的内容。接着,在selenium中检测是否存在该弹框,如果不存在则获取该弹框的内容,并进行后续步骤,该过程代码如下:# 执行以上js脚本
driver.execute_script(js)
# 判断弹出框是否存在
while(True):
try:
# 检测是否存在弹出框
alert = driver.switch_to.alert
time.sleep(0.5)
except:
# 如果抛异常,说明当前页面不存在弹出框,即用户点击了取消或者确定
break
# 获取用户输入的链接地址
target_url = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, random_id)))
value = target_url.get_attribute('value')
# 删除空格
value = value.strip()
至此,value的值即为弹出框返回的内容。(你可能会问,直接另value=微信书链接不就可以了吗?事实上确实可以 >_<
,但是采用上述方式会有一个良好的交互效果,同时可以加深一下对selenium的了解程度_)设置浏览器参数当用户输入链接完毕后,开始对浏览器进行初始化设置。首先设置chromedriver路径,可输入绝对路径或者相对路径,./表示当前目录下。不同系统和不同chrome版本需要下载不同的chromedriver,请下载合适自己的版本,chromedriver下载地址http://chromedriver.chromium.org/接着,设置自动打印成pdf,这样就可以默认打印成pdf了,省得我们手动打印,该步骤代码如下:appState = {
# 添加保存为pdf选项
"recentDestinations": [
{
"id": "Save as PDF",
"origin": "local",
"account":""
}
],
# 选择保存为pdf选项
"selectedDestinationId": "Save as PDF",
# 版本2
"version": 2,
# 不显示页眉页脚
"isHeaderFooterEnabled": False
}
同时,设置自动打印模式,该步骤代码如下:profile = {
# 打印前置参数
'printing.print_preview_sticky_settings.appState': json.dumps(appState),
# 默认下载、打印保存路径
'savefile.default_directory': os.getcwd()
}
通过这两步,就实现了全自动打印效果。分析网页元素接下来到了最关键的步骤,即分析网页元素。这个步骤我们可以顺便学习下基本的css,js知识。首先,按F12打开网页调试工具,对页面上不必要的元素进行隐藏我们可以看到,顶部的导航栏可能会影响打印效果,所以,我们将它隐藏。在调试工具中,选择Copy Selector,得到返回的数据为body > header,通过selenium隐藏该元素的代码如下:# 隐藏导航栏,防止影响截图效果
js = 'document.querySelector("body > header").style.display="none";'
driver.execute_script(js)
我们又发现,当前页面显示的数据只包含某个月朋友圈的数据,而不是所有朋友圈数据,那么如何显示出所有朋友圈数据呢?通过分析可知,当点击“下一月”按钮后,会有新的元素显示,而原来的元素被隐藏,而被隐藏的元素就是前面月份的数据。所以我们只要遍历到最后一个月后,把前面所有元素显示出来再打印就OK了。那么,如何判断是最后一个月呢?我们通过分析又可知,当不是最后一个月时,“下一月”的class名为next-month,而当在最后一月时,“下一月”的class名为next-month disable,因此我们可以检测它的class名进而知道是否处于最后一个月。该步骤代码如下:# 判断当下一月控件的class name 是否为next-month disable,如果是,则说明翻到最后一月了
page_source = driver.page_source
# 每一个element代表每一页,将每一页中style的display属性改成block,即可见状态
for index, element in enumerate(element_left_list):
# ..在xpath中表示上一级的元素,也就是父元素
parent_element = element.find_element_by_xpath('..')
# 获取这个父元素的完整id
parent_element_id = parent_element.get_attribute('id')
# 将该父元素更改为可见状态
js = 'document.getElementById("{}").style.display="block";'.format(parent_element_id)
driver.execute_script(js)
但是,这样会出现一个问题,即使我们成功打印了,但是我们不难保证页面上的元素全部加载完成了,所以可能导致打印后某些元素没有显示出来,导致不是非常好看。因此,需要判断何时加载结束。通过分析我们得知,当网页元素没加载完毕时,会有一个“loading”提示,当网页元素加载完毕后,该元素隐藏起来了。因此,我们可以判断该元素是否隐藏来得知当前页面元素是否加载完毕。该部分代码如下:# 等待当前页面所有数据加载完毕,正常情况下数据加载完毕后,这个‘加载中’元素会隐藏起来
while (True):
loading_status = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'div.j-save-popup.save-popup')))
if (loading_status.is_displayed() == False):
break
可是,我们又发现,及时等待网页元素加载完毕了,还是有部分图片没有显示出来。这就纳闷了,是为什么呢?通过分析我们又得知,这些图片处于加载状态的时候,class名为lazy-img,通过字面意思,我们大概可以猜得出它是懒加载的意思,也就是用户滑动页面到那里时才进行加载,以便节省服务器压力。所以我们可以通过滑动到每一个class名为lazy-img的元素,使得它进行加载。那么?一个合适的方法就是,通过js定位到该元素,直到所有class名为lazy-img的元素不存在。while(True):
try:
lazy_img = driver.find_elements_by_css_selector('img.lazy-img')
js = 'document.getElementsByClassName("lazy-img")[0].scrollIntoView();'
driver.execute_script(js)
time.sleep(3)
except:
# 找不到控件img.lazy-img,所以退出循环
break
其中,document.getElementsByClassName("lazy-img")[0]指的是document.getElementsByClassName("lazy-img")的第一个元素,scrollIntoView()指的是滚动到该元素的位置打印电子书通过上述步骤,我们已经成功地隐藏部分可能会影响外观的元素,同时也显示所有所需的元素,接下来,就差打印部分了。可以直接通过js代码唤起浏览器打印功能,并且,之前我们已经设置为自动打印pdf格式了,所以它将自动打印为pdf。但是,打印到哪里呢?这里需要设置下浏览器默认存储位置,保存的位置为当前目录。该步骤代码如下:# 默认下载、打印保存路径
'savefile.default_directory': os.getcwd()
# 调用chrome打印功能
driver.execute_script('window.print();')
打印完成后,设置退出浏览器driver.quit()经过测试,该电子书为超清版本,大小约16MB,所以质量还算不错的。如何运行# 跳转到当前目录
cd 目录名
# 先卸载依赖库
pip uninstall -y -r requirement.txt
# 再重新安装依赖库
pip install -r requirement.txt
# 开始运行
python main.py
补充完整版源代码存放在github上,有需要的可以下载项目持续更新,欢迎您star本项目}
我来做这个问题的终结者!!我才做了本自己的书!!如果我没记错,知乎上还有另外两个类似的问题,都是问如何制作自己的一本书的,看的人好像还不少。每个用心的答案我都看了,当时给我一种错觉:最多一周的时间就能完成了,So Easy嘛。当时我还拍着胸脯对做设计的朋友打包票:放心,你下周就能看到我的伟大成果了,哈哈。然而,并没有。。用知乎的名言来说,就是因为一旦开始动手,就出现了N种让我抓狂的问题:书制作成多大,尺寸做16开、32开还是其它尺寸?书中字体用哪种会显得清楚又好看?书的封面朋友说工作加班帮不上忙,没学过设计的我怎么做,尺寸多大(有个大坑,会在后面讲)?纸张有70、80、120g,有普通纸、铜版纸、哑粉纸,打印我该选哪种?所以,我决定花点时间,把自己制作书的过程,完完整整写下来,既然题目问了从排版到装订到打印,所以我将分为3个部分:内页篇、封面篇、印刷篇做个完整大全版,努力做这个问题下最有干货的的回答,希望帮助到和自己有一样想法的知友!!当然,这其中还有我遇到过,希望别人不要再踩的坑。(最后再说,都是泪啊)一、内页篇制作工具的选择 内页制作,有人说用WORD就够了,我个人还是推荐Adobe Indesign。不单单只是因为Adobe Indesign是专业的排版工具,制作起来很快很方便,问题用Adobe Indesign,真的没有PS看上去和操作起来那么难!我个人推荐豆瓣张艾米:简易indesign教程(1)看过两遍,基本能将Indesign操的滚瓜烂熟。(反正她教程后面说的那些问题,我80%都没碰到)当然,如果你告诉我看了之后,还是没学会,那就。。。再重新看一遍!字体和行间距设置 这个其实本来不想写,但后来觉得还是有写下的必要。字体我就不多说了,萝卜青菜,各有所爱,请自行选择你喜欢的,并将行间距和字间距微调到你觉得舒服、好看的样式。就我来说,基本上都是文字,所以咨询设计师朋友后,他给了我如下推荐:我最终的选择(仅供参考):正文标题:方正风雅宋;正文:新细明体;正文大小:8磅;字间距:默认;行间距:1.5倍。另外内页篇,可能有这些你要注意的点:1.如果你写的是叙事性的散文、文字比较多,用有衬线的字体比无衬线,打印效果出来更好。2.如果你和我一样,选择了双面打印,记得要加空白页。3.如果用源文件打印,注意文字转曲,我个人建议是在Indesgin做好后,输出为PDF打印。4.屏幕上看和打印出来,完全是两码事,如果你把握不好内页整体排版的效果,可以先打印一张,看看字体、行距、字距是否喜欢,不至于整本书打印出来才发现:尼玛,字体太挤了!我去,行距太宽了!这个字体我不怎么喜欢啊!等各种后悔也没卵用的问题。二、封面篇之前有提到过,本来我是打算请做设计的朋友做,可惜他太忙没时间。既然我当时夸下海口:一周之内出成品。自己吹的NB,含着泪也要圆了。。书脊计算方式 书脊厚度= (P 数 ÷2)×0.001346 × 纸张克数 P数是指的总页数,一张纸=2P,撸主制作的内页总共有32张纸,那么就是64P,一开始用的是80g的纸。最后书脊厚度算出来为3.44576mm,当然也不搞什么四舍五入了,4mm,多一点点也没关系。书脊及封面尺寸 封面尺寸=内页+书脊+出血线比如撸主的内页尺寸,标准大32开尺寸,宽x高=140mmx203mm,书脊4mm,出血线周边都设置成3mm。所以最终尺寸:宽=140*2+4+3*2=290mm,高=203+3*2=209mm。封面素材 一开始我是打算用自己一些照片的,但是翻遍了手机和电脑后,不觉有些忧桑:为毛在知乎看了那么多摄影技巧,我依然拍不出一张好照片?只好滚去500px找素材了。但会发现不少图片是受保护的。我用的是在知乎受尽鄙视的某数字公司的极速浏览器,发现有个插件可以解决图片无法下载的问题:什么?你说我盗版别人摄影作品,还报警了?警察叔叔,我真的没有拿做商业用途,答应我,不要抓我走好吗(●—●)在封面篇,没有太多其它要注意的点(貌似上面讲得差不多了),图片分辨率不低于300dpi这个应该都知道,另外,有一点很重要就是实际封面打印效果和屏幕颜色差别会比较大,这个要注意。三、印刷篇主要是装订方式和纸张选择。装订方式装订方式说起来太多了:胶装有软胶装、硬胶装;其它有骑马钉、铁圈装订,但一般情况,选择软胶装。软胶装是最常见的,比如张春老师的《一生里的某一刻》。纸张方式纸张选择当然也有很多,一般内页用70g普通纸,我个人选择:内页:80g普通纸(比70g纸张厚点,摸起来更有质感),后面发现风雅宋的字体在普通纸张上打印不大清楚,用了157g的哑粉纸(虽然后来被设计的朋友吐槽内页用的纸张太厚,还好页数不多);封面:250g铜版纸。这里也有提个醒:不要幻想最终成品书和你平时在亚马逊,当当买的书质量好,一个印刷厂印刷,几万块做个版,几千册起印;一个是快印,只求速度不重质量,多的话也就几十本,你觉得能当一回事说?四、附送彩蛋篇附送彩蛋:这些都是撸主遇到的大坑,前车之鉴啊!!1.封面反了由于撸主以前在图文公司实习过,所以一开口都是很专(zhuang)业(B)的话:老板,内页,我要80g的印刷纸,70g太薄了手感不好;封面就一般250g的铜版好了,对了,软胶装。老板倒也没多说什么,只是默默按我的要求来。我看着他把内页都过了胶,打印出封面裁切时,正内心有些小忐忑时,他突然来了一句:封面反了。我内心OS:都到最后一步了,只差封面就成了,你现在和我说这个?你自己看嘛,你制作一个整的封面,一摊开的话,肯定是背面在左边,正面在右边啊。╮(╯_╰)╭我一看差点眼泪掉下来:确实是在下错了。封底在左边,封面在右边!!不说了,直接上图更明白2.内页有错别字除了不满意打印效果,我想要重新做,很大程度也是因为翻书的时候,发现了错别字。对于有强迫症的我,简直是不能忍啊。一定要检查文章错别字!一定要检查文章错别字!一定要检查文章错别字!重要的事情说N遍都不为过啊!!!3.字体不大清楚第一次成品出来的时候,其实我并不满意,我发现有衬线的方正风雅宋确实比微软雅黑文艺,看起来有感觉,但缺点也明显:普通纸张打印出来,不大清楚啊。后来问设计师朋友,他说,你用哑粉纸吧。去打印店求店主打印一张,效果还是挺满意的,一问价格,比普通纸贵2倍,赶紧上淘宝淘了一摞回来。另外再提个醒:打印最终书成品出来后,请检查会不会因为老板操作失误,有漏页、错页、双面打印变单面打印的情况,必须自己满意才能付钱!!写到这里,我估计你也看到:把自己的一本书从排版、装订、打印,想要认真做好,其实并不容易。比如我,光是因为不满意打印效果这个原因就跑了打印店3趟,钱花了不说,精力去了大半,有时候也真的挺烦,没想到要做一本让自己满意的书,还要这么折腾。但说实话,看到自己从最开始的排版、字体选择、封面设计到最后的打印成果出来,拿出来给朋友们看的那一刻,成就感满满。再想起来大概5年前就有过这个想法,却一直只是想想,没有动手做,如今心愿终于实现,就像我设计朋友看到最终成书说的一句话:有种尘埃落定的安定感,会觉得很安心。PS:以上所有内容,由非出版行业的本人,第一次制作书经验总结而成,如有不当之处,欢迎专业人士啪啪啪打脸。更新:楼下有评论,没成品图你说个杰宝?我本来是打算拍张好点的照片粗来的,无奈技术太渣,既然你们都这么说了,我就以后再补张很好的。先上渣图在此:卧槽。。好像一不小心就暴露了什么东西。。(逃)--9.10日更新--应之约,说是希望能看内页效果,确定下字距的宽度,于是在家里找了找,终于发现虽然有两本送人了,但还留了本下来。于是拍了如下效果图。(照片的文字是我在知乎上的某个回答。为毛不是文章?比较私人的东西,肯定不会拿出来啊!哼~)---2017.4.1更新---因为这个回答,不少小伙伴私信或者在评论区纷纷问我,其中问装订方式的比较多,我这里再和大家讲解下市面一般常见的一些装订方式。软本装订(胶状)简称:软胶/软胶装,是目前市面上最常见,也是大家接触到最多的书本装订方式,比如大家上学时用的几乎所有课本,卤煮我上面自己的书,这里拿张春老师的《一生里的某一刻》做个示范好了。硬本装订硬本和软胶有一道工序是一样的:过胶,那如何区分软本和硬本呢?硬本一般拿起来比较厚实,还有最简单的办法就是:看封面和封底有没有一层包裹的木板。我特意在书店拍了张中国画报出版社出版的《飞鸟集》的侧面,供大家参考。(1年过去了,拍照水平依然比较渣。。)由于硬本工序上比较复杂,所以价格上也会比软本贵不少。铁圈装订也是比较常见的装订方式,或许有人曾经用的笔记本就是这种装订方式。好的地方主要是翻页比较方便。锁线装订根据百科的说法:锁线装订指的是用针、线或绳将书帖钉在一起的装订方法。这种方式大多用来装订结实、持久耐用的书籍,诸如百科全书、各种参考书、艺术类书籍。如果大家去图书馆比较多,可能会能看到这种装订方式。骑马钉一般各种广告小册子用的多,逛街有时能收到。之所以叫这名字,因为就是用平时大家用的订书机的钉子装订的。(仔细看下图中间)异形装订不符合常规标准的装订方式,都可以称之为异形装订。当然,装订方式其实还有很多,深究起来也蛮复杂,就先把常用的写到这儿吧。PS:还有人问我价格,我补充下供参考:5本(1本效果不好,重新打印4本),30-40P(页),合计不超过200元,每本书造价在40-50元/本。我在9月份的时候,把自己前两年的在网上留下来的片段日记整理出来,用InDesign排版,自己找店印出来,也自己手工锁线装订了。现在就在柜子里放着。首先,排版:使用InDesign,不用下载教程什么的,直接开始排版,碰到什么细节不会弄,就百度搜索,排版完成之后,反复校对,改正错别字,等等。这个比排版还要花时间。以上工序,4天左右完成。然后,使用Ai设计扉页,封面,护封等等,以上工序视个人感觉,可能半天就做完一个很简单的,也可能一周都弄不完。以上工序,耗时不定最后,彩页与普通页分别导出到两个PDF,找店,印刷,这个成本不高,一般稍微大点的印刷店就可以(正文内容印刷效果哪里都差不多,但是像封面扉页等彩色的话,机器不同效果差距很大),我印的是340页,加上两张A4彩页,以及做封面的卡纸,一共给打印店老板55块钱。以上工序,半天完成印刷完成之后,回家,自己准备结实的针线,自己裁剪,用针装订。【这一步可以在打印店让老板直接胶定,不过个人认为胶定的效果没有锁线效果好】以上工序,半天完成锁线定完书心(也就是阅读的内容)之后,不要急着装封面,把定好的书心拿到店里去,让老板裁剪边缘,弄整齐。然后回来把封面装上。接下来制作封面,网上教程很多,搜”精装书封面制作“。建议用棉布或者丝绸做。最后一步就是把封面与书心整合了,不难,照着随便哪个精装书封面制作教程估计都可以完成。总结:需要的软件:InDesign,Illustrator,PS。(PS这个可有可无)需要的工具与材料:针,剪刀,牢固的线,白乳胶,纱布,堵头布,书签带。(其它的打印纸,护封用纸,封面卡纸,打印店里有。)}

机器是富士施乐M158b。我扫描好的图片都存在我的图片里了,怎么能快速的把它们打印成书?不能一页一页的去打印吧,有没有一键打印之类的东西?...
机器是富士施乐 M158b。我扫描好的图片都存在我的图片里了,怎么能快速的把它们打印成书?不能一页一页的去打印吧,有没有一键打印之类的东西?
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
图片格式的 你用windows图片传真查看器打开 然后可以全选或挑选的
在把你的设置调整正反面打印图片格式的 你用windows图片传真查看器打开 然后可以全选或挑选的 在把你的设置调整正反面打印}

我要回帖

更多关于 打印一本电子书要多少钱 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信