【问题标题】:Problems while copying source code from a pdf从 pdf 复制源代码时出现问题
【发布时间】:2017-01-09 01:11:32
【问题描述】:

我需要使用 eclipse neon 将部分源代码从 pdf 文件复制到 java 项目。

让我给你一个问题的简单例子。我在 pdf 中有如下代码:

import java.sql.Timestamp; 
import twitter4j.FilterQuery;
import twitter4j.Status; 
import twitter4j.StatusAdapter;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener; 
import twitter4j.TwitterException; 
import twitter4j.TwitterStream;
import twitter4j.TwitterStreamFactory; 

public final class PrintSampleStream extends StatusAdapter { 

public static void main(String[] args) throws TwitterException{
...

但在工作区中是这样显示的:

import java.sql.Timestamp; import twitter4j.FilterQuery; import twitter4j.Status; import twitter4j.StatusAdapter; import twitter4j.StatusDeletionNotice; import twitter4j.StatusListener; import twitter4j.TwitterException; import twitter4j.TwitterStream; import twitter4j.TwitterStreamFactory; public final class PrintSampleStream extends StatusAdapter { public static void main(String[] args) throws TwitterException{

如何格式化代码并使其可读?因为手动格式化代码需要很长时间。

感谢您的任何想法

附: CTRL + Shift +F 没有帮助

【问题讨论】:

  • cmets 是否注释掉了部分代码?即int i // variable i int j "variable i" si 应该是注释,但 "int j" 应该是代码。
  • 嗯,你的问题是你错过了换行符。否则 cmets 将不是问题。您使用什么方法复制代码?你在什么操作系统上做这个?如果您使用手动复制粘贴,您使用什么软件来显示 PDF?
  • 复制后缺少换行符的问题称为Text Reflow Issue尝试谷歌如何为您正在使用的pdf阅读器解决此问题。尝试使用多个不同的 pdf 阅读器来显示您正在复制的 pdf 文件。
  • debian+adobe,只需复制+粘贴
  • 我的建议是使用像 pdftotext 这样非常擅长保持格式的文件,然后将相关代码从文本文件中复制出来。

标签: java eclipse pdf code-formatting


【解决方案1】:

此过程不是自动化的,但您可以使用一些免费的在线代码美化器,例如

您基本上必须将未格式化的代码复制粘贴到文本框中。然后,您可以通过单击按钮“美化”代码。然后它会生成一个格式化的代码。它并不完美,但它使您的代码更具可读性。

示例输入:

import java.sql.Timestamp; import twitter4j.FilterQuery; import twitter4j.Status; import twitter4j.StatusAdapter; import twitter4j.StatusDeletionNotice; import twitter4j.StatusListener;public final class PrintSampleStream extends StatusAdapter { public static void main(String[] args) throws TwitterException{

示例输出:

import twitter4j.FilterQuery;
import twitter4j.Status;
import twitter4j.StatusAdapter;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
public final class PrintSampleStream extends StatusAdapter {
    public static void main(String[] args) throws TwitterException {

【讨论】:

    【解决方案2】:

    你说ctrl+shift+F 不适合你。还有另一种格式化编辑器内容的方法。

    转到:窗口 > 首选项 > Java > 编辑器 > 保存操作并检查选项 Perform the selected actions on saveFormat source codeFormat all lines。应用更改,然后在编辑器中进行小的更改(只是为了让它变脏)并保存。编辑器应该会自动格式化。

    注意:我使用的是 Eclipse Luna,但我相信 Neon 中的偏好结构会相似。

    关于复制粘贴时的回流问题,您可以查看this article是否可以帮助您解决。

    【讨论】:

    • 我听从了你的指示。结果->没有改变。保存时收到以下消息:“保存参与者导致问题。保存参与者'代码清理'导致异常:java.lang.ArrayIndexOutOfBoundsException。有关详细信息,请参阅错误日志。”
    • @JürgenK。那我就不知所措了。你的日食是kaput。格式化对其他文件有用吗?还是它完全坏了,无论你打开哪个文件都不起作用?
    • 该格式适用于其他文件。我认为这一定是关于“从pdf复制”
    【解决方案3】:

    这是 PDF 中的空白问题或复制操作。 您可以使用 Eclispe 搜索/替换对话框将字符串 ;(分号+空格)替换为 ;+ 换行符。见In Eclipse, how do I replace a character by a new line?

    【讨论】:

    • 无法使用 alt+shift+r 替换。 "当前选择的操作不可用"
    • 那么您当前的代码编辑器不是Java 编辑器?此外,常规的 Ctrl+F 对话框应该能够做类似的事情。
    • 嗯,确实如此。我正在使用日食霓虹灯。 ctrl+f 替换效果很好。但即使重新格式化后格式也没有改变
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    相关资源
    最近更新 更多