标签: plaintext

在Java中将HTML转换为纯文本

我需要将HTML转换为纯文本.我对格式化的唯一要求是在纯文本中保留新行.新行不仅应显示在<br>其他标签的情况下,例如<tr/>,也应显示</p>新行.

用于测试的示例HTML页面是:

请注意,这些只是随机网址.

我已经尝试了在这个StackOverflow问题的答案中提到的各种库(JSoup,Javax.swing,Apache utils)来将HTML转换为纯文本.

使用JSoup的示例:

public class JSoupTest {

 @Test
 public void SimpleParse() {
  try {
   Document doc = Jsoup.connect("http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter09/scannerConsole.html").get();
   System.out.print(doc.text());

  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

HTMLEditorKit示例:

import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;

public class Html2Text extends HTMLEditorKit.ParserCallback {
 StringBuffer s;

 public Html2Text() {}

 public void parse(Reader in) throws IOException {
   s = new StringBuffer();
   ParserDelegator delegator = new ParserDelegator();
   // the …
Run Code Online (Sandbox Code Playgroud)

java parsing plaintext htmleditorkit jsoup

10
推荐指数
2
解决办法
4万
查看次数

将纯文本呈现为HTML维护空白 - 不使用<pre>

给定任何可打印字符的任意文本文件,如何将其转换为完全相同的HTML(具有以下要求)?

  • 除了默认的HTML空格规则之外,不依赖于任何其他规则
    • 没有<pre>标签
    • 没有CSS white-space规则
  • <p>标签很好,但不是必需的(<br />s和/或<div>s很好)
  • 确切地保留了空白.

    给定以下输入行(忽略错误的自动语法突出显示):

    Line one
        Line two, indented    four spaces
    
    Run Code Online (Sandbox Code Playgroud)

    浏览器应该使输出完全相同,保持第二行的缩进以及"缩进"和"空格"之间的间隙.当然,我实际上并不是在寻找等宽输出,而且字体与算法/标记正交.

    给定两行作为完整的输入文件,示例正确的输出将是:

    Line one<br />&nbsp;&nbsp;&nbsp;&nbsp;Line two, 
    indented&nbsp;&nbsp;&nbsp; four spaces
    
    Run Code Online (Sandbox Code Playgroud)
  • 希望在浏览器中进行软包装.也就是说,即使输入行比其视口宽(假设单个单词仍然比所述视口缩小),生成的HTML也不应强制用户滚动.

我正在寻找完全定义的算法.pythonjavascript中实现的加分点.

(请不要只回答我应该使用<pre>标签或CSS white-space规则,因为我的要求使这些选项无法使用.请不要发布未经测试和/或天真的建议,例如"用所有空格替换&nbsp;."毕竟,我"从积极的角度来看,解决方案在技术上是可行的 - 这是一个有趣的问题,你不觉得吗?)

html javascript python algorithm plaintext

10
推荐指数
2
解决办法
1万
查看次数

使用Python将HTML转换为纯文本的最佳方法

我正在开发一个涉及将大量HTML内容转换为普通/文本的项目.我有一个自定义编写的模块可以完成这项工作,但我想知道是否有一些标准工具可以帮助完成工作.

html python plaintext

9
推荐指数
1
解决办法
1万
查看次数

如何在纯文本电子邮件RoR中获得换行符?

我正在发送纯文本电子邮件,并想知道如何为此添加换行符.它出现在同一条线上.

From: <%= @name %>
<%= @text %>
Run Code Online (Sandbox Code Playgroud)

谢谢

email ruby-on-rails plaintext

9
推荐指数
2
解决办法
8118
查看次数

通过PHP渲染纯文本

出于某种原因,我想通过PHP脚本提供我的robots.txt.我已经设置了apache,以便robots.txt文件请求(实际上所有文件请求)都来自单个PHP脚本.

我用来渲染robots.txt的代码是:

echo "User-agent: wget\n";
echo "Disallow: /\n";
Run Code Online (Sandbox Code Playgroud)

但是,它不处理换行符.如何正确地服务robots.txt,以便搜索引擎(或任何客户端)正确看到它?我是否必须为txt文件发送一些特殊标题?

编辑1:

现在我有以下代码:

header("Content-Type: text/plain");
echo "User-agent: wget\n";
echo "Disallow: /\n";
Run Code Online (Sandbox Code Playgroud)

它仍然不显示换行符(请参阅http://sarcastic-quotes.com/robots.txt).

编辑2:

有人提到它很好,没有在浏览器中显示.只是好奇这个如何正确显示:http://en.wikipedia.org/robots.txt

编辑3:

我通过wget下载了我的和维基百科,看到这个:

$ file en.wikipedia.org/robots.txt
en.wikipedia.org/robots.txt: UTF-8 Unicode English text

$ file sarcastic-quotes.com/robots.txt
sarcastic-quotes.com/robots.txt: ASCII text
Run Code Online (Sandbox Code Playgroud)

最终摘要:

主要问题是我没有设置标题.但是,还有另一个内部错误,它将Content-Type设为html.(这是因为我的请求实际上是通过内部代理提供的,但这是另一个问题).

浏览器不显示换行符的一些注释只是半正确的 - >如果content-type是text/plain,现代浏览器会正确显示换行符.我选择的答案与真正的问题非常匹配,并且没有上述略有误导性的误解:).谢谢大家的帮助和时间!

谢谢

J.P

php text robots.txt header plaintext

9
推荐指数
2
解决办法
3万
查看次数

在PHP中将ASCII转换为纯文本

我正在抓取一些网站,并有ASCII文本,我想转换为纯文本存储在数据库中.比如我想要的

I have got to tell anyone who will listen that this is
one of THE best adventure movies I&#x27;ve ever seen.
It&#x27;s almost impossible to convey how pumped I am
now that I&#x27;ve seen it.
Run Code Online (Sandbox Code Playgroud)

转换成

I have got to tell anyone who will listen that this is
one of THE best adventure movies I've ever seen. It's
almost impossible to convey how pumped I am now that
I've seen it.
Run Code Online (Sandbox Code Playgroud)

我用手指搜索血腥,有什么帮助吗?

html php ascii plaintext

9
推荐指数
1
解决办法
2万
查看次数

语法高亮显示纯文本(Sublime Text)

我非常喜欢任何形式的语法高亮.但我遗漏了类似于纯文本文件的东西.想象一下,在缩进的行或行之前有不同的颜色,前面是特殊的字符.这样的事情已经存在吗?我特别欣赏Sublime Text的插件.

syntax-highlighting plaintext sublimetext2

9
推荐指数
1
解决办法
2737
查看次数

如何控制纯文本电子邮件视图中的换行符(.text.erb)

与大多数纯文本电子邮件相关的问题不同,我的问题是Rails发送的纯文本电子邮件中有太多换行符.

为了简单起见,我完全抛弃了HTML电子邮件,只使用纯文本电子邮件(使用.text.erb视图).我的问题发生在我在视图中有条件行的地方,因为我的视图文件中的新代码行会转移到电子邮件中.

例如:

    Line 1
    <%= "Line 2" if false %>
    Line 3
Run Code Online (Sandbox Code Playgroud)

将呈现为:

    Line 1

    Line 3
Run Code Online (Sandbox Code Playgroud)

而不是预期的输出:

    Line 1
    Line 3
Run Code Online (Sandbox Code Playgroud)

我目前的黑客是使用以下内容:

    Line 1
    <%= "Line 2\n" if false %>Line 3
Run Code Online (Sandbox Code Playgroud)

当连续存在多个条件时,这可能变得非常混乱.

当然必须有更好的方法!

ruby-on-rails actionmailer plaintext ruby-on-rails-3

9
推荐指数
1
解决办法
1814
查看次数

使用AngularJs将html内容粘贴为contenteditable div中的纯文本

我想将从某个文档(pdf,docx,html)中选择的文本粘贴到一个contenteditable类型的div中.

现在我想在渲染之前删除剪贴板文本的所有格式.因此,粘贴的最终内容应该是纯文本.

此方案的类似物可以将内容粘贴到Windows记事本中.

如何使用AngularJs完成此操作.或者存在任何其他javascript库来实现这一点.

更新: 我可以使用以下代码将剪贴板作为文本.

editor.addEventListener("paste", function(e) {
    // cancel paste
    e.preventDefault();

    // get text representation of clipboard
    var text = e.clipboardData.getData("text/plain");

    // insert text manually
    document.execCommand("insertHTML", false, text);
});
Run Code Online (Sandbox Code Playgroud)

但我不知道如何以及在何处在AngularJs中添加此代码.

html javascript plaintext contenteditable angularjs

9
推荐指数
1
解决办法
1万
查看次数

如何使用Thymeleaf处理TXT电子邮件模板?

我正在尝试plain text使用Thymeleaf从Spring应用程序发送电子邮件.

这是我的电子邮件服务:

@Override
public void sendPasswordToken(Token token) throws ServiceException {
    Assert.notNull(token);

    try {

        Locale locale = Locale.getDefault();

        final Context ctx = new Context(locale);
        ctx.setVariable("url", url(token));

        // Prepare message using a Spring helper
        final MimeMessage mimeMessage = mailSender.createMimeMessage();

        final MimeMessageHelper message = new MimeMessageHelper(
                mimeMessage, false, SpringMailConfig.EMAIL_TEMPLATE_ENCODING
        );

        message.setSubject("Token");
        message.setTo(token.getUser().getUsername());

        final String content = this.textTemplateEngine.process("text/token", ctx);
        message.setText(content, false);

        mailSender.send(mimeMessage);

    } catch (Exception e) {
        throw new ServiceException("Token has not been sent", e);
    }
}
Run Code Online (Sandbox Code Playgroud)

电子邮件被发送并发送到邮箱.

这是我的plain text …

email spring plaintext thymeleaf

8
推荐指数
1
解决办法
5757
查看次数