之前用python写了一个可以翻译thisamericanlife 并生成pdf的程序,只是一般人(不熟悉程序的的人)对代码环境的搭建和配置是不太友好.考虑到html 还算可以,并且本身有那么一点基础,于是磨磨蹭蹭拖延了不短时间写了一个并不完善的小页面.
主要的功能:
1,获取thisamericanlife 官网历年剧本归档
2,获取指定剧集的剧本
3,通过百度api翻译
(因为翻译太过耗时间,所以只是将基本功能跑通,并没有完全的翻译)
4,生成lrc ,导入手机音乐软件可以显示
lrc 文本名字和剧集音频名字保持一致,例如 725.mp3 和725.lrc
1,点击index.html打开,我使用谷歌浏览器测试的
测试百度账号:可以不用
2,获取指定剧集的剧本
效果:
3,下载lrc
4,生成pdf
生成pdf暂时没写,但是基本的操作已经知道了.
以后再写吧,可能永远也不写了
主要是使用jspdf ,但是没有适配中文的字体,需要通过他给定的转换网页,将ttf格式的字体转化为js变量,引用后再操作.
需要注意:
1,自动换行,字体大小
2,字体起始坐标
3,换页
简而言之就是打印机A4 类似的.好麻烦, 打印函数需要封装,然后传入需要打印的数据和文件名称,自动生成就行了.
// 在导入了以下基础上
<!-- <script type="text/javascript" src="jspdf-1.5.3-min.js"></script>
<script type="text/javascript" src="sourcehansanssc-normal-normal.js"></script> -->
//
//
// jspdf
// 1,使用jspdf 内置的fontconverter 转换器将开源的思源字体ttf 转化为js, ttf 字体文件的名字全部小写
// 2,修改转化完成的js, 删除多余的行数, 只保留var font=‘....‘变量
// 3,在html 引入转化成功的font js文件, 并确保jspdf 版本号大于1.4.0
// 4,使用如下代码操作
// 5, 参考:
// https://blog.csdn.net/huanhuan03/article/details/105841653
// https://www.cnblogs.com/chiikin/p/11968998.html
// https://segmentfault.com/a/1190000016324962
//分割**************************************************************************************
// 汉字换行测试:成功 2020/11/04
// 参考: https://www.hangge.com/blog/cache/detail_2206.html
// https://blog.csdn.net/yzjyhp/article/details/49980847
// Default export is a4 paper, portrait, using millimeters for units
// addFileToVFS 要求jspdf 版本大于1.5.0 参数以上一个为准,最后一个参数不变
// 最完美的测试啊 @TODO: 判断是否写满了一页,添加新的一页
// var doc = new jsPDF(‘p‘,‘in‘);
// doc.addFileToVFS(‘sourcehansanssc-normal-normal.ttf‘, font);
// doc.addFont(‘sourcehansanssc-normal-normal.ttf‘, ‘sourcehansanssc-normal‘, ‘normal‘);
// doc.setFont(‘sourcehansanssc-normal‘); // 设置字体
// doc.setFontSize(8);
// size=8;
// var words = ‘从各方面反馈的意见看,大家一致认为,在“两个一百年”历史交汇点上,党的十九届五中全会重点研究“十四五”规划问题并提出建议,将“十四五”规划与2035年远景目标统筹考虑,对动员和激励全党全国各族人民,战胜前进道路上各种风险挑战,为全面建设社会主义现代化国家开好局、起好步,具有十分重要的意义‘;
// var verticalOffset = 0.5;
// lines = doc.setFont(‘sourcehansanssc-normal‘)
// .setFontSize(size)
// .splitTextToSize(words, 7.5)
// doc.text(0.5, verticalOffset + size / 72, lines)
// verticalOffset = verticalOffset + (size / 72)*(lines.length + 1); // 不同的段落流出空白,一行的高度乘以行数的加一,意思是多空出一行留白
// var words = ‘当日的节目视频显示,丁学伟先是怼前台湾“陆委会”副主委赵建民“两岸关系已进入准战争状态”,“两岸要避险”的说法,声称“避什么险啦,把台湾人恫吓的,你以为台湾是被你吓大的吗?‘;
// lines = doc.splitTextToSize(words, 7.5)
// doc.text(0.5, verticalOffset + size / 72, lines)
// verticalOffset = verticalOffset + (size / 72)*(lines.length + 1);
// var words = ‘据了解,自2012年实现国家财政性教育经费占GDP比例4%目标以来,这一比例连续8年保持在4%以上。全国一般公共预算教育经费为34648.57亿元,比上年的31992.73亿元增长8.30%,占一般公共预算支出238858.37亿元的比例为14.51%,比上年的14.48%提高了0.03个百分点‘;
// lines = doc.splitTextToSize(words, 7.5)
// doc.text(0.5, verticalOffset + size / 72, lines)
// verticalOffset = verticalOffset + (size / 72)*(lines.length + 1);
// var words = ‘报告认为,当前,我国网络慈善特别是通过大病求助网络平台进行的个人求助缺少直接有效的法律规制、个人求助借助网络从熟人圈走向陌生的公众而成为事实上、法律意义的公开募捐,其中出现的不良个案对网络慈善的发展带来了不利影响,存在监管盲区。报告建议完善网络慈善募捐法律法规和政策体系‘;
// lines = doc.splitTextToSize(words, 7.5)
// doc.text(0.5, verticalOffset + size / 72, lines)
// // add new page 添加新的page 后坐标需要重置,重新计算
// doc.addPage();
// var words = ‘add new page 检方指控,2003年11月至2012年3月期间,吴湛辉担任东莞市环保局局长,利用其负责该局全面工作的职务便利,为东莞市恒泰环保设备有限公司负责人赖洪中谋取东莞市环保局下属的工业废物处理站承包经营权,多次收受赖洪中贿送的人民币共计4970万元‘;
// lines = doc.splitTextToSize(words, 7.5)
// doc.text(0.5, verticalOffset + size / 72, lines)
// doc.save(‘test120.pdf‘);
// 获取到剧本名字保存成pdf
//分割**************************************************************************************
// 以下为测试打印不同字号和字体
// var doc = new jsPDF();
// doc.addFileToVFS(‘sourcehansanssc-normal-normal.ttf‘, font);
// doc.addFont(‘sourcehansanssc-normal-normal.ttf‘, ‘sourcehansanssc-normal‘, ‘normal‘);
// doc.setFont(‘sourcehansanssc-normal‘); // 设置字体
// doc.setFontSize(8);
// doc.text(20, 180, ‘简体中文、繁體体中文、English、ジャパン、???、你好啊‘);
// doc.text("This is the default font---------test as you know she is a bicth in beach you know but do you wanna to cry wait dont wait .", 20, 20);
// doc.setFont("courier", "normal");
// doc.setFontSize(15);
// doc.text("15This is courier normal", 20, 30);
// doc.setFont("times", "italic");
// doc.setFontSize(14);
// doc.text("This is times italic.", 20, 40);
// doc.setFont("helvetica", "bold");
// doc.text("14This is helvetica bold.", 20, 50);
// doc.setFont("courier", "bolditalic");
// doc.setFontSize(13);
// doc.text("13This is courier bolditalic.", 20, 60);
// doc.setFont("times", "normal");
// doc.setFontSize(10); // 设置即将到来的文字的字体大小
// doc.text("10This is centred text.", 105, 80, null, null, "center");
// doc.text("And a little bit more underneath it.", 105, 90, null, null, "center");
// doc.text("This is right aligned text", 200, 100, null, null, "right");
// doc.text("And some more", 200, 110, null, null, "right");
// doc.text("Back to left", 20, 120);
// doc.text("10 degrees rotated", 20, 140, null, 10);
// doc.text("-10 degrees rotated", 20, 160, null, -10);
// doc.setFont(‘sourcehansanssc-normal‘); // 设置字体
// doc.setFontSize(5);
// doc.text(20, 200, ‘5测试成功了哟‘);
// doc.text(20, 210, ‘5真开心‘);
// doc.save(‘test11.pdf‘);
// 以下打印英文测试换行 2020/11/04
// 参考: https://www.hangge.com/blog/cache/detail_2206.html
// https://blog.csdn.net/yzjyhp/article/details/49980847
// var doc = new jsPDF(‘p‘,‘in‘);
// var sizes = [12, 16, 20];
// var fonts = [[‘Times‘,‘Roman‘],[‘Helvetica‘,‘‘], [‘Times‘,‘Italic‘]];
// var verticalOffset = 0.5;
// var words = ‘Welcome to hangge.com. Welcome to hangge.com. Welcome to hangge.com.Welcome to hangge.com.Welcome to hangge.com.Welcome to hangge.com.Welcome to hangge.com.Welcome to hangge.com.Welcome to hangge.com.‘
// for (var i in fonts){
// if (fonts.hasOwnProperty(i)) {
// var font = fonts[i]
// var size = sizes[i]
// //将文字自动换行显示
// lines = doc.setFont(font[0], font[1])
// .setFontSize(size)
// .splitTextToSize(words, 7.5)
// doc.text(0.5, verticalOffset + size / 72, lines)
// verticalOffset += (lines.length + 0.5) * size / 72
// }
// }
// doc.save(‘Test1111.pdf‘);
参考了许多网页:
https://blog.csdn.net/huanhuan03/article/details/105841653
https://www.cnblogs.com/chiikin/p/11968998.html
https://segmentfault.com/a/1190000016324962
https://www.hangge.com/blog/cache/detail_2206.html
https://blog.csdn.net/yzjyhp/article/details/49980847
javascript 获取thisamericanlife并翻译
原文:https://www.cnblogs.com/g2thend/p/14106411.html