标记HTML和CSS文件(不是电子邮件)


Emogrify HTML and CSS files (not emails)

我一直在寻找有关如何使用Emogrifier将HTML转换为内联HTML格式的信息,其中链接了CSSv3。到目前为止,我一直在寻找与发送电子邮件到不允许CSS的网站有关的事情。

关于我的问题集的更多信息:我有一个HTML文档,带有链接的CSS,格式很好,我需要将其打开为doc(x)。Word不支持v1以上的CSS。我用v3。到目前为止,由于缺乏CSS,转换时的格式非常糟糕。我有多个HTML文档和CSS文件转换为内联,并不想手工做它。

我尝试使用Emogrifier,但似乎总是从我的服务器(using MAMP)得到一个错误页面。页面会一直工作,直到到达Emogrify部分。我已经尝试了带和不带参数的构造函数。如果没有,我就用set函数提供HTML和CSS。我也试图通过fopen()file_get_contents()的文件。

元素和版本:

  • MAMP版本2
  • Apache 2.0.64
  • PHP 5.4.10

问题1: Emogrifier可以处理电子邮件以外的事情吗?

问题2:是否有其他产品/程序能更好地满足我的需求?

问题3:我的代码有问题吗?

<?php
  include(emogrifier.php);
  $site = file_get_contents('file.html');
  $link = file_get_contents('file.css');
  $emog = new Emogrifier($site,$link);
  /* alternate call
  $emog = new Emogrifier;
  $emog->setHTML($site);
  $emog->setCSS($link);
  */
  $result = $emog->emogrify();
  print($result);
  ?>

编辑

我尝试传递三种类型的变量给构造函数:
  • 文件路径
  • 文件指针(fopen())
  • 字符串(file_get_contents ())

当试图访问php页面时,我在浏览器中得到一个服务器错误:

网站在检索时遇到错误http://localhost/file.php。可能是维修或者配置不正确。

我已经注释掉了构造函数和函数调用,它们允许页面使用echo语句进行测试。然而取消注释即使只是构造函数也会导致错误。

当"运行"emogrifier.php文件时,页面加载正常(白屏,无打印输出)。

这是我所知道的关于这个问题的所有信息。

最后编辑

我只是想把这个结束。

我从来没有一个电子书写器来完成我的作业。我最终使用Word宏和大量的VisualBasic编辑来获得我们想要的格式。这是一个复杂的解决方案,因为Macro系统没有很好的文档。此外,由于我有很多表格和单元格要修改,谷歌搜索几乎没有什么帮助,因为当搜索单元格时,所有东西都出现在Excel中。

…然后他们把报告格式移到了别的地方,我的工作就没有用了!LOL

Emogrifier可以处理电子邮件以外的事情吗?

嗯,它实际上适用于HTML,而不是电子邮件。HTML的目的是在电子邮件中使用,但你可以在任何你喜欢的地方使用它。

是否有其他产品/程序能更好地满足我的需求?

这是个好问题!我倾向于说:是的,可能有。请联系专门为您寻找软件组件的顾问。

我的代码有问题吗?

根据你的描述,我想说是的。尤其是当你谈到错误的时候。然而,由于你描述的错误不具体,由于不具体,我只能说:是的,可能是你的代码有问题。

我已经成功使用了Emogrifier。下面是有效的代码片段:

$emogrifier = new 'Pelago'Emogrifier();
$emogrifier->setHtml($Data);
$cssFile = mb_substr($curFile, 0, 6) . 'override.css'; // each issue has a common CSS file
$emogrifier->setCss(fgc_UTF8($cssFile));
//After you have set the HTML and CSS, you can call the emogrify method to merge both:
$Data = $emogrifier->emogrify();