converter.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783
  1. <!--
  2. * @Description:
  3. * @Author: 欧阳承珺
  4. * @LastEditors: 欧阳承珺
  5. * @Date: 2022-10-19 17:25:48
  6. * @LastEditTime: 2022-11-08 09:28:05
  7. -->
  8. <script>
  9. import { mapState } from 'vuex'
  10. export default {
  11. middleware: 'user',
  12. computed: {
  13. ...mapState([
  14. 'userInfo'
  15. ])
  16. }
  17. }
  18. // $(function() {
  19. // var number = $(".need-volume").find("span").eq(1).html()
  20. // if(number === "券"){
  21. // number = "0"+ number;
  22. // $(".need-volume").find("span").eq(1).html(number);
  23. // }
  24. // })
  25. </script>
  26. <template>
  27. <div class="page-converter">
  28. <div class="date-tips flex content-center justify-center py-6px">
  29. <img src="http://cn-file.17pdf.com/website/common/ic_notice.svg" class="align-middle">
  30. <div class="text-container">
  31. <span class="text">
  32. 转档后的文件支持在云端保留24小时,<span v-if="userInfo?.memberInfo.subscriberType === 1">会员尊享5G容量,</span>请在24小时内下载文件至本地永久保存
  33. </span>
  34. <span v-if="userInfo?.memberInfo.subscriberType === 1" class="vip tip">
  35. <img src="http://cn-file.17pdf.com/website/common/ic_info.svg" alt="">
  36. <div class="tip-text">
  37. 若已有文件大小超出5G,将按转档时间计算(从最近一次转档往过去推算),即保留最近的5G容量文件,超出部分文件将不再保留
  38. </div>
  39. </span>
  40. </div>
  41. </div>
  42. <h1 class="text-48px text-opacity-100 font-500 text-[#3333] mt-48px mb-10px text-center">文件转换器</h1>
  43. <h2 class="text-20px text-center text-[#666] mt-20px font-normal">PDF文件格式转换器,一键转档,支持批量转换,精准快速。</h2>
  44. <div class="text-center mb-80px">
  45. <a class="mt-20px text-[#4D4D4D] text-16px font-600 inline-flex items-center leading-22px hover:text-$btn-color-primary hover:underline"
  46. href="https://www.compdf.com/pdf-conversion-sdk?utm_source=anroidapp&utm_medium=17pdfweb&utm_campaign=pdfsdk" target="_blank">由 ComPDFKit Conversion SDK 提供技术支持
  47. <svg class="ml-8px" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
  48. <path d="M6 12.9567L10.714 8.24261L6 3.52856" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
  49. </svg>
  50. </a>
  51. </div>
  52. <div class="transfer-container-wrap">
  53. <div class="index-converter w-[80%] h-700px relative top-0 left-[50%] -ml-[40%]">
  54. <div class="transfer-container absolute w-full h-auto my-0 -mx-15px bg-white pb-60px">
  55. <button type="button" class="close hidden" data-dismiss="modal" aria-label="Close">
  56. <span aria-hidden="true">×</span>
  57. </button>
  58. <div class="recharge py-0 px-[10%] h-48px mx-0 mt-24px mb-14px absolute right-0 -top-70px z-2">
  59. <span class="recharge-btn float-right bg-white border border-[#ff4f4f] boder-solid text-16px py-7px px-18px rounded-4px mt-4px cursor-pointer hover:bg-[#ff4f4f]">
  60. <a class="text-[#ff4f4f] no-underline leading-normal">充值</a>
  61. </span>
  62. <div class="need-volume float-right right-48px text-16px text-[#666] leading-48px mr-20px">
  63. 所需券:<span class="text-[#0dd299] text-16px">0券</span> / 剩余券:<span class="text-[#0dd299] text-16px">0券</span>
  64. </div>
  65. </div>
  66. <div class="transfer-panel">
  67. <div>
  68. <form enctype="multipart/form-data">
  69. <input type="hidden" name="folder" value="converter/input"/>
  70. <div class="file-input theme-explorer file-input-ajax-new h-380px mt-17px py-0 px-[10%]">
  71. <div class="file-preview rounded-5px w-[100%] h-[100%]">
  72. <div class="file-drop-zone border border-dashed border-[#d1d1d1] rounded-4px h-[100%] text-center align-middle overflow-y-auto">
  73. <div v-show="fileList.length <= 0" class="file-drop-zone-title text-[#999] text-16px pt-222px cursor-default">
  74. <div></div>
  75. 点击从电脑上传文件或把文件拖到这里
  76. <p class="text-14px">(支持PDF to Word、PPT、Excel、TXT、JPG/PNG无限次数转换)</p>
  77. </div>
  78. <table class="table table-hover w-[100%] max-w-[100%]" id="table-fileinput">
  79. <thead v-show="fileList.length > 0">
  80. <tr class="h-40px bg-[#eee]">
  81. <th></th>
  82. <th class="!text-left">文档名</th>
  83. <th>大小</th>
  84. <th>所需券</th>
  85. <th>转为</th>
  86. <th>状态</th>
  87. <th class="uploading_status hidden">状态</th>
  88. <th></th>
  89. </tr>
  90. </thead>
  91. <tbody v-show="fileList.length > 0" class="file-preview-thumbnails cursor-default">
  92. <tr v-for="(item, index) in fileList" :key="index" class="file-preview-frame explorer-frame kv-preview-thumb w-100px h-38px hover:bg-[#f5f5f5]" id="preview-1668340925733-0" data-fileindex="0" data-template="pdf" title="test.pdf">
  93. <td class="kv-file-content hide">
  94. <embed class="kv-preview-data" src="blob:https://17pdf.com/324d1d91-3d7c-4ad7-ab0a-49a3ea411d9f" width="100px" height="38px" type="application/pdf">
  95. </td>
  96. <td class="file-details-cell">{{ index+1 }}</td>
  97. <td class="file-details-cell !text-left">
  98. <div class="explorer-caption max-w-260px truncate block text-[#777]" title="test.pdf">{{ item.name }}</div>
  99. </td>
  100. <td class="file-details-cell text-[#999]">{{ getfilesize(item.size) }}</td>
  101. <td class="file-details-cell points">2</td>
  102. <td class="file-details-cell select w-106px">
  103. <select class="transfer-select appearance-none" v-model="item.outputType">
  104. <option value="png">PNG</option>
  105. <option value="xlsx">XLSX</option>
  106. <option value="pptx">PPTX</option>
  107. <option value="docx" selected>DOCX</option>
  108. <option value="txt">TXT</option>
  109. <option value="jpg">JPG</option>
  110. </select>
  111. </td>
  112. <td class="file-details-cell state text-14px text-[#878787]" state="">未转换</td>
  113. <td class="file-details-cell upload_status hidden" data-space="13005282">未上传</td>
  114. <td class="file-actions-cell w-50px p-0">
  115. <div class="file-actions text-center">
  116. <div class="file-footer-buttons" @click="deleteFile(index)">
  117. <button type="button" class="kv-file-remove btn btn-xs btn-default bg-inherit !border-none pr-7px py-1px pl-5px text-12px leading-normal rounded-3px" title="删除文件"><i class="pdf-removeicon"></i></button>
  118. </div>
  119. </div>
  120. </td>
  121. </tr>
  122. </tbody>
  123. </table>
  124. <div class="clearfix"></div>
  125. <div class="file-preview-status text-success text-center text-[#3c763d]"></div>
  126. </div>
  127. </div>
  128. <div class="kv-upload-progress hide">
  129. <div class="progress overflow-hidden h-20px mb-20px bg-[#f5f5f5] rounded-4px ring-inset-2 ring-[rgba(0,0,0/10%)]">
  130. <div class="progress-bar progress-bar-success progress-bar-striped active w-0 bg-[#5cb85c]" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">0%</div>
  131. </div>
  132. </div>
  133. <div class="input-group file-caption-main w-[100%] -top-450px relative table border-separate">
  134. <div class="input-group-btn relative text-0px whitespace-nowrap">
  135. <div tabindex="500" class="btn btn-file" :class="{'btn-file-left':(fileList.length > 0)}">
  136. <div class="add-file" :class="{'add-file-left':(fileList.length > 0)}">{{ fileList.length > 0 ? '添加文件' : '' }}</div>
  137. <input name="file" id="fileinput-explorer" ref="file" v-on:change="handleFileUpload($event)" accept=".pdf" title="上传文件" type="file" multiple=""
  138. class="absolute top-0 right-0 p-0 m-0 min-w-[100%] h-[100%] w-90px text-right opacity-0 bg-none bg-repeat bg-scroll block outline-none border-0 cursor-pointer"/>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </form>
  144. </div>
  145. <div class="transfer-btn mt-30px h-64px text-center">
  146. <div class="cursor-not-allowed inline-block">
  147. <span @click="startChangeFile" :class="{'disabledBtn' : !checkbox}" class="btn transfer-start-btn bg-[#ff524f] text-20px py-0 px-150px rounded-4px h-60px w-386px text-white hover:bg-[#f34545]">
  148. <a class="text-white leading-60px">开始转换</a>
  149. </span>
  150. </div>
  151. <span class="hide btn btn-down small w-240px h-60px bg-[#0dd299] rounded-4px text-20px ml-15px hover:bg-[#0fc993]"><a class="leading-60px text-white">下载全部</a></span>
  152. </div>
  153. </div>
  154. <div class="transfer-remember mt-23px text-center">
  155. <div class="checkbox checkbox-danger relative block mt-10px mb-10px">
  156. <label for="remember" class="text-12px font-normal text-[#999] min-h-20px pl-20px mb-0 cursor-pointer inline-block max-w-[100%]">
  157. <input v-model="checkbox" type="checkbox" name="remember" class="remember_pass"/>确保上传的文档不涉及版权问题及违法内容
  158. </label>
  159. </div>
  160. </div>
  161. </div>
  162. <div class="modal verifi-modal top-[20%!important]" d="verifiPayModal" tabindex="-1" role="dialog" aria-labelledby="verifiPayModal">
  163. <div class="modal-dialog verifi-dialog w-480px h-426px my-50px" role="document">
  164. <div class="modal-content relative bg-white rounded-6px border border-solid border-[rgba(0,0,0,0.2)] outline-0 bg-clip-padding ring-[rgba(0,0,0/50%)] ring-offseet-3px ring-9px md:ring-offset-5 md:ring-15px">
  165. <div class="">
  166. <button type="button" id="verifi-close" class="close pompt_close py-5px px-10px outline-none" data-dismiss="modal" aria-label="Close">
  167. <span aria-hidden="true">×</span>
  168. </button>
  169. </div>
  170. <div class="verifi-content text-center pt-60px px-0 pb-35px">
  171. <img src="http://cn-file.17pdf.com/website/converter/pic_trans_diomands.png"/>
  172. <p>该功能为付费套餐专属</p>
  173. <p>订阅解锁更多特权</p>
  174. <a href="javascript:;" class="now_pricing" value="0"
  175. >立即订阅</a
  176. >
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. <div class="file_num w-[100%] h-120px text-center text-white leading-120px text-30px mb-76px">
  183. 17PDF Reader,当前已转换了<span class="text-32px"> 1,859,726 </span> 个文件
  184. </div>
  185. <div class="pdf_converter clear w-[80%] my-0 mx-auto" id="more_type">
  186. <div class="package_type">
  187. <h3 class="text-24px text-[#333] font-normal mx-0 mt-0 mb-49px h-30px leading-30px">会员专享格式</h3>
  188. <ul class="flex justify-center w-[100%] min-w-340px p-0 mt-0 mb-10">
  189. <li>
  190. <a href="/converter">
  191. <img src="/converter/ic_pdf_word.png" />
  192. <span>PDF To Word</span>
  193. </a>
  194. </li>
  195. <li>
  196. <a href="/converter">
  197. <img
  198. src="/converter/ic_pdf_ppt.png"
  199. />
  200. <span>PDF to PowerPoint</span>
  201. </a>
  202. </li>
  203. <li>
  204. <a href="/converter">
  205. <img
  206. src="/converter/ic_pdf_execl.png"
  207. />
  208. <span>PDF to EXCEL</span>
  209. </a>
  210. </li>
  211. <li>
  212. <a href="/converter">
  213. <img src="/converter/ic_pdf_txt.png" />
  214. <span>PDF to TXT</span>
  215. </a>
  216. </li>
  217. <li>
  218. <a href="/converter">
  219. <img src="/converter/ic_pdf_picture.png" />
  220. <span>PDF to JPG/PNG</span>
  221. </a>
  222. </li>
  223. </ul>
  224. </div>
  225. </div>
  226. <div class="about_converter w-[100%] bg-[#fafafa] py-60px px-[10%] mt-102px">
  227. <h3 class="name text-24px text-[#333] font-normal mx-0 mt-0 mb-49px h-30px leading-30px">关于转档</h3>
  228. <ul class="clear p-0">
  229. <li>
  230. <img src="http://cn-file.17pdf.com/website/converter/ic_way.png" />
  231. <div class="content">
  232. <h3>如何转档</h3>
  233. <p>
  234. 进入“文件转换器”区域。点击下方“添加文件”选择添加本地目标文件,然后在“转为”栏选择转换目标格式,最后点击“开始转换”即可。
  235. </p>
  236. </div>
  237. </li>
  238. <li>
  239. <img
  240. src="http://cn-file.17pdf.com/website/converter/ic_quality.png"
  241. />
  242. <div class="content">
  243. <h3>领先品质</h3>
  244. <p>
  245. 行业领先的转换品质,经过转换的文件版面清晰、保持格式的一致,支持一键转档,批量转换,精准快速的文件格式转换,稳定的转换品质,是您处理转格式转换的首选。
  246. </p>
  247. </div>
  248. </li>
  249. <li>
  250. <img src="http://cn-file.17pdf.com/website/converter/ic_safe.png" />
  251. <div class="content">
  252. <h3>文件安全</h3>
  253. <p>
  254. 我们尊重每位用户的隐私信息和文件安全。转档后的文件仅在云端保留24小时,让您免去后顾之忧。
  255. </p>
  256. </div>
  257. </li>
  258. <li>
  259. <img src="http://cn-file.17pdf.com/website/converter/ic_more.png" />
  260. <div class="content">
  261. <h3>多平台支持</h3>
  262. <p>
  263. 文件格式转换器可以在所有计算机(Mac、Windows及Linux)上使用,也可下载App
  264. 17PDF Reader在移动端使用,让您在手机上也能轻松转档文件。
  265. </p>
  266. </div>
  267. </li>
  268. </ul>
  269. </div>
  270. <div class="converter_question px-[10%] pt-76px pb-60px text-center">
  271. <h3 class="name text-24px text-[#333] font-normal m-0 h-30px leading-30px text-left">常见问题</h3>
  272. <table class="w-[100%] p-0 bg-transparent">
  273. <tbody>
  274. <tr>
  275. <td>
  276. <h3>1. 支持哪些格式转换?</h3>
  277. <p>
  278. <span></span>支持PDF to
  279. Word、PPT、Excel、TXT、JPG/PNG无限次数转换
  280. </p>
  281. </td>
  282. <td>
  283. <h3>2. 为什么图片格式的文件转档效果不好?</h3>
  284. <p>
  285. 如原文件为图片格式或者通过扫描文档保存为PDF文件的,转档后的文件可能无法选取文字进行高亮等编辑。
  286. </p>
  287. </td>
  288. </tr>
  289. <tr>
  290. <td>
  291. <h3>3. 文件转档后出现乱码?</h3>
  292. <p>
  293. 如果是原文件就有乱码问题,先处理好文件再提交转档;如果原文件正常而转档后目标文件乱码,请联系我们处理。
  294. </p>
  295. </td>
  296. </tr>
  297. </tbody>
  298. </table>
  299. <a class="more w-auto h-30px leading-30px text-[#666] inline-block text-center mx-auto mt-48px mb-0 link:no-underline hover:(!border-[#ff4f4f] text-[#ff4f4f])" href="/question#convert">更多问题请查看帮助</a>
  300. </div>
  301. <div class="download_code fixed right-14px bottom-50px bg-white w-134px py-12px px-0 rounded-6px text-center ">
  302. <span class="large text-16px inline-block w-[100%] my-6px mx-0">下载APP</span>
  303. <img src="http://cn-file.17pdf.com/website/download/android_code.png" class="w-110px border-0 align-middle inline-block" />
  304. <span class="inline-block w-[100%] text-14px my-6px mx-0">使用更便捷</span>
  305. </div>
  306. </div>
  307. </div>
  308. </template>
  309. <script>
  310. export default {
  311. data () {
  312. return {
  313. fileList: [],
  314. fileObj: null,
  315. checkbox: true
  316. }
  317. },
  318. methods: {
  319. // 获取文件
  320. handleFileUpload(event){
  321. // 阻止发生默认行为
  322. event.preventDefault();
  323. let formData = new FormData()
  324. let file = this.$refs.file.files[0]
  325. formData.append('file',file)
  326. this.fileObj = formData.get('file')
  327. console.log(this.fileObj)
  328. if(this.fileObj){
  329. this.fileList.push(this.fileObj)
  330. }
  331. console.log(this.fileList)
  332. this.postUpload()
  333. },
  334. // 上传文件
  335. postUpload () {
  336. const file = this.fileObj
  337. console.log(file)
  338. this.$axios.post('/17pdf-backend-core/missionFile/upload', {file}, {headers: {
  339. 'Content-Type': 'multipart/form-data'
  340. }}).then((res) => {
  341. if(res.code === 200 ) {
  342. console.log('upload_success_response', res)
  343. }
  344. })
  345. },
  346. // 计算文件大小函数(保留两位小数),Size为字节大小
  347. getfilesize (size) {
  348. if (!size) return ""
  349. var num = 1024.00 //byte
  350. if (size < num) {
  351. return size + "B"
  352. }
  353. if (size < Math.pow(num, 2)) {
  354. return (size / num).toFixed(2) + "K"
  355. }
  356. if (size < Math.pow(num, 3)) {
  357. return (size / Math.pow(num, 2)).toFixed(2) + "M"
  358. }
  359. if (size < Math.pow(num, 4)) {
  360. return (size / Math.pow(num, 3)).toFixed(2) + "G"
  361. }
  362. else {
  363. return (size / Math.pow(num, 4)).toFixed(2) + "T"
  364. }
  365. },
  366. // 删除文件
  367. deleteFile (index) {
  368. this.fileList.splice(index,1)
  369. },
  370. // 文件转换
  371. startChangeFile () {
  372. let fileArr = []
  373. for (let i = 0; i < this.fileList.length; i++) {
  374. let file = {}
  375. file['sourceType'] = 0
  376. file['size'] = this.fileList[i].size
  377. file['input'] = 'pdf'
  378. file['output'] = this.fileList[i].outputType
  379. file['filename'] = this.fileList[i].name
  380. fileArr[i] = file;
  381. }
  382. console.log(fileArr)
  383. if (fileArr.length !== 0) {
  384. this.$axios.post('/17pdf-backend-core/mission/create', fileArr).then((res) => {
  385. if(res.code === 200 ) {
  386. console.log('changeFile_success_response', res)
  387. }
  388. })
  389. }
  390. }
  391. }
  392. }
  393. </script>
  394. <style lang="scss" scoped>
  395. ::v-deep body {
  396. min-width: 1200px !important;
  397. }
  398. .page-converter {
  399. .date-tips {
  400. background: linear-gradient(0deg, #fff2f6, #fff2f6),
  401. linear-gradient(90deg, snow 10.37%, rgba(255, 243, 243, 0) 91.75%),
  402. linear-gradient(90deg, #fff2f6 2.26%, rgba(255, 242, 246, 0.21) 101.41%);
  403. .text-container {
  404. display: flex;
  405. align-items: center;
  406. margin-left: 16px;
  407. img {
  408. margin-left: 8px;
  409. }
  410. }
  411. span {
  412. font-size: 14px;
  413. line-height: 24px;
  414. vertical-align: middle;
  415. }
  416. .text {
  417. display: inline-flex;
  418. align-items: center;
  419. }
  420. .tip {
  421. position: relative;
  422. font-size: 0;
  423. .tip-text {
  424. display: none;
  425. position: absolute;
  426. left: -3px;
  427. width: 258px;
  428. padding: 15px 14px 10px 10px;
  429. background: url('http://cn-file.17pdf.com/website/members/ic_tip.svg')
  430. left top no-repeat;
  431. background-size: auto 100%;
  432. font-size: 12px;
  433. line-height: 18px;
  434. color: #fff;
  435. border-radius: 4px;
  436. }
  437. &:hover .tip-text {
  438. display: block;
  439. }
  440. }
  441. }
  442. .transfer-container {
  443. .hide {
  444. display: none !important;
  445. }
  446. button {
  447. padding-right: 7px;
  448. }
  449. .close {
  450. float: right;
  451. font-size: 21px;
  452. font-weight: bold;
  453. line-height: 1;
  454. color: #000;
  455. text-shadow: 0 1px 0 #fff;
  456. opacity: 0.2;
  457. filter: alpha(opacity=20);
  458. }
  459. button.close {
  460. padding: 0;
  461. cursor: pointer;
  462. background: transparent;
  463. border: 0;
  464. -webkit-appearance: none;
  465. }
  466. button:focus {
  467. outline: none;
  468. }
  469. .close:hover,
  470. .close:focus {
  471. color: #000;
  472. text-decoration: none;
  473. cursor: pointer;
  474. opacity: 0.5;
  475. filter: alpha(opacity=50);
  476. }
  477. .recharge .recharge-btn:hover a {
  478. color: #fff;
  479. }
  480. }
  481. .table>caption+thead>tr:first-child>th, .table>caption+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, .table>colgroup+thead>tr:first-child>td, .table>thead:first-child>tr:first-child>th, .table>thead:first-child>tr:first-child>td {
  482. border-top: 0;
  483. }
  484. .file-drop-zone .table thead tr th {
  485. color: #666666;
  486. text-align: center;
  487. }
  488. .table>thead>tr>th {
  489. vertical-align: bottom;
  490. border-bottom: 2px solid #ddd;
  491. }
  492. .table>thead>tr>th, .table>thead>tr>td, .table>tbody>tr>th, .table>tbody>tr>td, .table>tfoot>tr>th, .table>tfoot>tr>td {
  493. padding: 8px;
  494. line-height: 1.428571429;
  495. vertical-align: top;
  496. border-top: 1px solid #ddd;
  497. }
  498. .table th, .table td {
  499. vertical-align: middle;
  500. box-sizing: border-box;
  501. }
  502. th {
  503. text-align: left;
  504. }
  505. td, th {
  506. padding: 0;
  507. }
  508. .input-group-btn {
  509. position: relative;
  510. font-size: 0;
  511. white-space: nowrap;
  512. }
  513. .input-group-addon, .input-group-btn {
  514. width: 1%;
  515. white-space: nowrap;
  516. vertical-align: middle;
  517. }
  518. .input-group-addon, .input-group-btn, .input-group .form-control {
  519. display: table-cell;
  520. }
  521. .clearfix:before, .clearfix:after {
  522. content: " ";
  523. display: table;
  524. }
  525. .input-group-btn:last-child>.btn, .input-group-btn:last-child>.btn-group {
  526. z-index: 2;
  527. margin-left: -1px;
  528. }
  529. .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group {
  530. margin-right: -1px;
  531. }
  532. .input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:last-child>.btn, .input-group-btn:last-child>.btn-group>.btn, .input-group-btn:last-child>.dropdown-toggle, .input-group-btn:first-child>.btn:not(:first-child), .input-group-btn:first-child>.btn-group:not(:first-child)>.btn {
  533. border-bottom-left-radius: 0;
  534. border-top-left-radius: 0;
  535. }
  536. .input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle), .input-group-btn:last-child>.btn-group:not(:last-child)>.btn {
  537. border-bottom-right-radius: 0;
  538. border-top-right-radius: 0;
  539. }
  540. .input-group-btn>.btn {
  541. position: relative;
  542. }
  543. .btn.disabled, .btn[disabled], fieldset[disabled] .btn {
  544. cursor: not-allowed;
  545. opacity: 0.65;
  546. filter: alpha(opacity=65);
  547. -webkit-box-shadow: none;
  548. box-shadow: none;
  549. }
  550. .btn-file {
  551. position: relative;
  552. overflow: hidden;
  553. margin: 0;
  554. top: 170px;
  555. left: 50%;
  556. margin-left: -45px !important;
  557. outline: none;
  558. cursor: pointer;
  559. }
  560. .btn {
  561. display: inline-block;
  562. margin-bottom: 0;
  563. font-weight: normal;
  564. text-align: center;
  565. vertical-align: middle;
  566. touch-action: manipulation;
  567. cursor: pointer;
  568. background-image: none;
  569. border: 1px solid transparent;
  570. white-space: nowrap;
  571. border-radius: 4px;
  572. -webkit-user-select: none;
  573. -moz-user-select: none;
  574. -ms-user-select: none;
  575. user-select: none;
  576. }
  577. .btn-file .add-file {
  578. background: url(http://cn-file.17pdf.com/website/fileinput/ic_file_add.png) no-repeat;
  579. width: 90px;
  580. height: 100px;
  581. }
  582. .btn-file .add-file-left {
  583. background: url(http://cn-file.17pdf.com/website/fileinput/ic_add.png) no-repeat;
  584. width: 120px;
  585. height: 30px;
  586. margin-top: 10px;
  587. margin-left: 10px;
  588. padding-left: 38px;
  589. font-size: 16px;
  590. line-height: 30px;
  591. color: #666666;
  592. }
  593. .btn-file-left {
  594. position: relative;
  595. top: 0px;
  596. left: 20px;
  597. }
  598. .transfer-container .transfer-remember .checkbox input[type="checkbox"] {
  599. top: 3px;
  600. }
  601. .radio input[type="radio"], .radio-inline input[type="radio"], .checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"] {
  602. position: absolute;
  603. margin-left: -20px;
  604. }
  605. input[type="radio"], input[type="checkbox"] {
  606. margin: 4px 0 0;
  607. line-height: normal;
  608. }
  609. .modal {
  610. display: none;
  611. overflow: hidden;
  612. position: fixed;
  613. top: 0;
  614. right: 0;
  615. bottom: 0;
  616. left: 0;
  617. z-index: 1050;
  618. -webkit-overflow-scrolling: touch;
  619. outline: 0;
  620. }
  621. .file-drop-zone .table tbody tr:hover td {
  622. background: #dfdfdf;
  623. }
  624. .file-drop-zone .table tbody tr td {
  625. border-top: 0px;
  626. }
  627. .theme-explorer .explorer-frame td {
  628. vertical-align: middle;
  629. text-align: center;
  630. }
  631. .file-drop-zone .table tbody tr:hover td .transfer-select {
  632. border-color: #ff4f4f;
  633. background: url(http://cn-file.17pdf.com/website/converter/ic_trans_xiala_hover.png) no-repeat 72px 6px;
  634. }
  635. .file-drop-zone .table tbody tr .transfer-select {
  636. width: 100%;
  637. height: 22px;
  638. border: 1px solid #dadada;
  639. padding: 0px;
  640. outline: none;
  641. font-size: 14px;
  642. color: #ff4f4f;
  643. line-height: 22px;
  644. padding-left: 30px;
  645. border-radius: 2px;
  646. background: url(http://cn-file.17pdf.com/website/converter/ic_trans_xiala_nor.png) no-repeat 72px 6px;
  647. }
  648. .theme-explorer .file-actions-cell .file-actions .file-footer-buttons .pdf-removeicon:before {
  649. content: url(https://cn-file.17pdf.com/website/converter/ic_delet_red.png) !important;
  650. display: none;
  651. }
  652. .file-drop-zone .table tbody tr:hover td .file-actions .file-footer-buttons .pdf-removeicon:before {
  653. display: block;
  654. }
  655. .btn.disabledBtn {
  656. background-color: rgb(204, 204, 204);
  657. pointer-events: none;
  658. }
  659. .file_num {
  660. background: url(http://cn-file.17pdf.com/website/converter/pic_account_bg.png) repeat -10px 0px;
  661. }
  662. .clear {
  663. zoom: 1;
  664. }
  665. .clear:after {
  666. visibility: hidden;
  667. display: block;
  668. font-size: 0;
  669. content: " ";
  670. clear: both;
  671. height: 0;
  672. }
  673. .pdf_converter .package_type h3:before,
  674. .about_converter .name:before,
  675. .converter_question .name:before {
  676. content: '';
  677. display: inline-block;
  678. width: 5px;
  679. height: 22px;
  680. background: #ff4f4f;
  681. margin-right: 10px;
  682. margin-top: 4px;
  683. vertical-align: top;
  684. }
  685. .pdf_converter .package_type ul li {
  686. width: 120px;
  687. list-style: none;
  688. text-align: center;
  689. margin-right: 30px;
  690. cursor: pointer;
  691. a {
  692. display: block;
  693. font-size: 14px;
  694. color: #333333;
  695. img {
  696. width: 80px;
  697. height: 80px;
  698. margin-bottom: 20px;
  699. vertical-align: middle;
  700. }
  701. span {
  702. display: block;
  703. white-space: nowrap;
  704. transition: all .5s;
  705. }
  706. }
  707. }
  708. .about_converter ul li {
  709. width: 50%;
  710. float: left;
  711. list-style: none;
  712. margin-bottom: 85px;
  713. img {
  714. width: 70px;
  715. height: 70px;
  716. float: left;
  717. margin: 10px 36px 0px 0px;
  718. }
  719. .content {
  720. width: 330px;
  721. float: left;
  722. h3 {
  723. font-size: 20px;
  724. color: #333333;
  725. margin: 0px 0px 10px;
  726. font-weight: normal;
  727. }
  728. p {
  729. font-size: 16px;
  730. color: #4c4c4c;
  731. margin: 0px !important;
  732. }
  733. }
  734. }
  735. table {
  736. border-collapse: collapse;
  737. border-spacing: 0;
  738. }
  739. .converter_question table td {
  740. width: 50%;
  741. vertical-align: top;
  742. h3 {
  743. font-size: 18px;
  744. color: #333333;
  745. margin: 54px 0px 14px;
  746. font-weight: normal;
  747. text-align: left;
  748. }
  749. p {
  750. width: 75%;
  751. font-size: 16px;
  752. color: #4c4c4c;
  753. text-align: left;
  754. span {
  755. width: 8px;
  756. height: 8px;
  757. display: inline-block;
  758. border-radius: 100%;
  759. background: #333333;
  760. margin-right: 12px;
  761. margin-left: 4px;
  762. }
  763. }
  764. }
  765. .converter_question .more {
  766. border-bottom: 1px solid #999999;
  767. }
  768. .download_code {
  769. box-shadow: 0px 1px 5px rgb(0 0 0 / 12%);
  770. }
  771. }
  772. </style>