如何通过解析JavaScript文件将数百个DJVU文件转换为TIFF文件?

如何通过解析JavaScript文件将数百个DJVU文件转换为TIFF文件?,javascript,jquery,html,tiff,djvu,Javascript,Jquery,Html,Tiff,Djvu,我有大量的DJVU文件,我需要将它们全部转换为TIFF文件。它们都是本地网站的一部分。我所说的本地网站是指未发布的网站。它像地图一样构建,使用JPEG图像、PNG和GIF以及透明的概览地图布局、HTML、CSS和一些JavaScript(使用jquery)。总览图的每个部分都与特定的DJVU文件相关联。当您单击地图的一部分时,将打开一个新的浏览器窗口,显示存储在DJVU文件中的实际地理地图 我将尝试在这里解释结构。DJVU文件示例: 112_87_10_0.djvu 必须将其转换为TIFF并重命

我有大量的DJVU文件,我需要将它们全部转换为TIFF文件。它们都是本地网站的一部分。我所说的本地网站是指未发布的网站。它像地图一样构建,使用JPEG图像、PNG和GIF以及透明的概览地图布局、HTML、CSS和一些JavaScript(使用jquery)。总览图的每个部分都与特定的DJVU文件相关联。当您单击地图的一部分时,将打开一个新的浏览器窗口,显示存储在DJVU文件中的实际地理地图

我将尝试在这里解释结构。DJVU文件示例:

112_87_10_0.djvu

必须将其转换为TIFF并重命名,如下所示:

HEK_S044_Vitsand_1883-95.tif

它还必须存储在具有类似名称的新文件夹中。在本例中,文件夹的名称如下所示:

044 Vitsand

因此,转换文件的搜索路径如下所示:

044 Vitsand\HEK_S044_Vitsand_1883-95.tif

前面有0的数字44只是一个数字。Vitsand是地图的名称,也是瑞典Värmland县一个小村庄的名称。根据ISO 3166,字母S是县的名称。最后一部分是地图制作的间隔时间

我的问题是,这需要时间来手动完成,而且我可以很容易地引入错误,因为在做了很长一段时间后,我对此感到厌倦。如何实现自动化?我不是一个真正的程序员。事实上,我最近才开始学习JavaScript。有人想为我写剧本吗?至少,请给我一些关于使用什么语言、方法和工具等的建议

我在一个名为
lan_.js
的文件中翻找,我可以看到它包含了我用来手动命名文件的所有信息。下面是上面DJVU文件的对应行:

<area onmouseover=\"tooltip.show('Vitsand', 150);\" onmouseout=\"tooltip.hide();\" href=\"javascript: openMapEx('Värmlands län', 'J112-87-10','Vitsand','112_87_10_0.djvu','1883-95')\" alt=\"Vitsand\" shape=\"poly\" coords=\"144,154,166,155,166,172,143,171\">\
index.html

<html>
<head>
<title>Welcome!</title>
<style type="text/CSS">

</style>
<script type="text/javascript">
window.onload=timeout;
function timeout(){
window.setTimeout("redirect()",3000)}

function redirect(){
window.location="DATA/index.html"
return}
</script>
</head>
<body>
<img src="DATA/images/new_splash.jpg">
<body onload="timeout()" onClick="redirect()">
</body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Häradsekonomiska kartan</title>
    <link rel="stylesheet" href="style.css" type="text/css" />

    <script type="text/javascript" src="hek.js"></script>    
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript" src="jquery.maphilight.min.js"></script>
      <script type="text/javascript">$(function() { $('.map').maphilight(); });</script>
      <script language="javascript" src="lan.js"></script>

    <script type="text/javascript" src="lan_bd.js"></script>
    <script type="text/javascript" src="lan_ab.js"></script>
    <script type="text/javascript" src="lan_c.js"></script>
    <script type="text/javascript" src="lan_d.js"></script>
    <script type="text/javascript" src="lan_e.js"></script>
    <script type="text/javascript" src="lan_k.js"></script>
    <script type="text/javascript" src="lan_m.js"></script>
    <script type="text/javascript" src="lan_n.js"></script>
    <script type="text/javascript" src="lan_o.js"></script>
    <script type="text/javascript" src="lan_s.js"></script>
    <script type="text/javascript" src="lan_t.js"></script>
    <script type="text/javascript" src="lan_u.js"></script>
    <script type="text/javascript" src="lan_w.js"></script>
    <script type="text/javascript" src="hlp.js"></script>


    <style type="text/css" media="screen">
      /* local styles here */
    </style>
  </head>

哈拉德塞科诺米斯卡·卡尔坦
$(function(){$('.map').maphilight();});
/*这里的地方风格*/
我故意在这里漏掉了身体标签。太多了,线条永远水平延伸

lan_.js

这是我上面提到的JavaScript文件

var lan_s = "\
<map name=\"slan_harads\">\

LINES LINES LINES...

<area onmouseover=\"tooltip.show('Vägsjöfors', 150);\" onmouseout=\"tooltip.hide();\" href=\"javascript: openMapEx('Värmlands län', 'J112-87-15','Vägsjöfors','112_87_15_0.djvu','1883-95')\" alt=\"Vägsjöfors\" shape=\"poly\" coords=\"143,171,166,172,165,189,142,188\">\
<area onmouseover=\"tooltip.show('Vitsand', 150);\" onmouseout=\"tooltip.hide();\" href=\"javascript: openMapEx('Värmlands län', 'J112-87-10','Vitsand','112_87_10_0.djvu','1883-95')\" alt=\"Vitsand\" shape=\"poly\" coords=\"144,154,166,155,166,172,143,171\">\
<area onmouseover=\"tooltip.show('Kärnberget', 150);\" onmouseout=\"tooltip.hide();\" href=\"javascript: openMapEx('Värmlands län', 'J112-87-5','Kärnberget','112_87_5_0.djvu','1883-95')\" alt=\"Kärnberget\" shape=\"poly\" coords=\"145,138,167,139,166,155,144,154\">\

MORE LINES...

</map>\
\
\
<img src=\"ROOT/LAN/images/s.gif\" usemap=\"#slan_harads\" border=0>\
\
";
var lan\u s=”\
\
台词。。。
\
\
\
更多的线。。。
\
\
\
\
\
";

仅使用Javascript无法做到这一点,因为Javascript无法固有地访问文件系统

然后选择:

  • Node.js:您可以建立一个简单的nodejs Web服务器,它允许您访问文件系统,nodejs还具有imagemagick模块,您可以安装该模块来处理图像
  • php:您可以在本地服务器上设置php,这将允许您访问文件系统和用于图像处理的php扩展
  • Python:Python实现这一点非常简单,导入numpy并编写一个简单的循环脚本来获取所有文件,然后执行一些魔术
目前真正的问题是确定重命名方案如何符合编写自动化脚本的整洁规则

Taking Example of DJVU file: 112_87_10_0.djvu
and convert/rename to: HEK_S044_Vitsand_1883-95.tif
需要有一个模式,从中可以应用以下逻辑

  • 获取目录中要转换的所有文件
  • 按一些重要的排序值排序(是数字升序吗?)
  • 按排序顺序进行每次转换,并将其命名为相应的值
  • 现在,您可以轻松编写一个脚本来转换所有文件,如下所示:

    112_87_10_0.djvu ==> 112_87_10_0.tif
    
    但是,在您能够为重命名模式提供一些额外的规则集之前,您的问题的其余部分仍然无法回答

    编辑


    经过进一步审查,我确实看到您提供了一些关于获取命名模式的信息。。我将进一步研究这一点,并修改我的答案。如果可以,请从问题中删除所有不相关的信息,特别是start和index.html位,该代码中实际上没有任何与问题相关的重要信息,只会混淆重要信息。

    如果有人愿意帮助我,我准备发布完整的源代码。但是我不认为这是一个合适的地方,对于一个问答网站来说,这是太多的代码了。你关于Stackoverflow不是合适的地方的假设是很糟糕的。这也不是很多“代码”。你的问题是,这些代码对实际问题几乎都不重要,你应该稍微整理一下你的问题。