我有两份文件,一份是西班牙文,一份是英文版(英文版是西班牙文原文的翻译版)。我正在创建第二个文件,其中包括每个均匀编号的页面上的西班牙文,以及相反的奇数页面上的相应英文翻译。
除了在章节结尾处(每个新章节都有一个分页符,所以它可以从页面顶部开始),我在两边都用完了整个页面。不可否认,为了用完整个页面,有时文本的一部分在下一页上 (也就是说,西班牙语第18页底部出现的内容的英文翻译有时会出现在第21页的顶部,而不是出现在第19页的底部)。
我目前正在手动执行以下操作,打开所有三个Open Office文档(Spanish.odt,English.odt和SpanishEnglish.odt):
0) Cut and paste exactly one page of material from Spanish.odt to the next (even-numbered) page of SpanishEnglish.odt
1) Mash the Enter key to move to the next (odd-numbered) page
2) Cut and paste exactly one page of material from English.odt to the next (odd-numbered) page of SpanishEnglish.odt
3) Mash the Enter key to move to the next (even-numbered) page
另外,定期(当到达章节结束时),我插入一个分页符;如果本章的结尾不适合西班牙语或英语的一页(当然另一页是西班牙语英语。),我会减少太长页面的字体大小(从Verdana 10到Verdana) 9)强制它将自己约束到那个页面,以便章节并排开始(西班牙语在左边/偶数,英文在右边/奇数)没有任何空白页面。
正如你无疑可以想象的那样 - 特别是对于一个大文档,这是 - 这个程序很快就变得非常繁琐。有没有办法以编程方式在C#中完成同样的事情?
Shujaat Siddiqui,我认为你的意思是改变这些最后一行:
The Dangerous Pelican Movie
. . .
La película de los pelícanos peligrosos
......对此:
The Dangerous Pelican Movie&&&&
. . .
La película de los pelícanos peligrosos&&&&
...附加“&&&&&”到最后一行 - Correctomundo?但在许多情况下,这个附加文本(“&&&&&”)会将内容推送到下一页(一个或多个&符号会流到下一页),不是吗?
答案 0 :(得分:2)
它有点棘手。我试图给你一个基本的想法。
以下是一个示例代码,仅为您提供基本逻辑。
string Doc1Read = //read from english file
string Doc2Read = // read from Spanish file
string exp = @"[\w\s\n\r\t\.\(\)\,\[\]\-\;\:\%\@\#]*(?=&&&&)";
var Doc1matches = Regex.Matches(Doc1Read, exp);
var Doc2matches = Regex.Matches(Doc2Read, exp);
for (int i = 0; i < Doc1matches.Count; i++)
{
**// open third document file and write**
Doc1matches[i].Value; // write english version of page i
Doc2matches[i].Value; // write spanish version of page i
}
&amp;&amp;&amp;&amp; 用于逐页获取文本。通过这种方式,当您使用Doc1matches[i].Value;
时,您基本上可以获得在页码 i 上写的内容,即{1,2,3 ...}。
希望它对你有所帮助。
PS:您还可以使用string.Split("&&&&");
来破坏&amp;&amp;&amp;&amp; 中的字符串。并且可以实现逻辑。