2015-06-29 21 views
0

JavaScript编辑器对于一个项目,我们目前正在努力创造应具有相同的基本功能Adobe的InDesign的在线所见即所得的编辑器:在线喜欢的InDesign

  • 添加文本框,并链接文本框一起
  • 母版页(与基线,页边距,列和排水沟)
  • 基本格式(字体大小和样式,对齐)

我们正在努力使用户能够创建简单文件使用他们的新闻网站上的文章作为来源。通过拖放界面,他们应该能够快速构建一个简单的新闻纸样文档。用户的创建应该转换为PDF(通过FPDF库)。因此,编辑器应该创建一些包含属性的数据属性的HTML,例如宽度,高度等,以便将这些数据转换为json对象以便在PHP中提取并加载到FDPF中。简单步骤中的进度:

  1. Html WYSIWYG生成带有测量值的preview + html属性;
  2. 将html属性通过ajax发送到服务器端;
  3. PHP服务器端提取json并将其转换为FPDF对象;
  4. 提供用户下载的PDF文件。

我试过看iCloud的页面,它使用SproutCore(或Ember?)据我所见,但我认为这将是矫枉过正的使用该框架,可能它甚至不会有我正在寻找的基本功能。

有没有人有任何想法的如何开始?什么样的JavaScript框架可以使用(我过去曾使用过Prototype,Mootools和jQuery)以及在哪里寻找可能的示例/类似项目?

+0

仅供参考,iCloud是Apple的产品。代码是专有的(我甚至不确定你可以在浏览器上使用它)。你提到的两个框架都是开源的。 – psycotik

+0

您的问题出现在头后的第一个问题是“为什么要制作浏览器内InDesign”。 0_o'这是相当多的(重新)工作。 – hijarian

回答

1

如果您的目标是InDesign,那么您可能想要了解有关IDML (warning, direct link to PDF!的信息。它是InDesign文档AST的XML描述。

如果您想制作另一种所见即所得的编辑器,您可能需要阅读现有解决方案的代码并查看它们的构建方式。首先想到CkEditor和Redactor.js。

当人们谈论“Javascript框架”这些天(2015年)时,他们不会谈论jQuery,Prototype和MooTools,因为它们通常被视为“库”。时下的“框架”是Angular.js,Ember.js等等,它们之间的选择大多是宗教信仰的,就像Vim和Emacs之间的选择一样。

以上是亲自会开始。关于从哪里开始技术的方式 - 它已经在很多地方写过。您提出了一个构建系统,测试工具,生产/测试环境,拥有一个部署管道(对于单个UI小部件是的),然后开始编写测试。

这整个问题更像是新的项目讨论切入点,而不是一个明确答案的问题。

+0

我实际上试图完全绕过InDesign,因为我想创建一个单一的系统工作流程,用户可以为他们的网站和硬拷贝(新闻纸)创建内容。尽管如此,我打算调查IDML,因为它可能会创造性地改进我们现有的用于InDesign的XML导出选项。 – royarisse

+1

@royarisse我提到IDML并不是因为它是导出到InDesign的一种方式。 IDML本质上是InDesign中存在的**特性**的XML描述,您可以将其用于UI。你将不可避免地在你的所见即所得文件中出现某种内部模型,并且使用IDML它已经解决了问题。如果您的目标功能集是InDesign,那就是。 – hijarian

0

SproutCore的确是iCloud Pages的底层框架,以及其他iCloud环境。它已经提供了你正在描述的内容的一部分,如富文本编辑器(https://github.com/sproutcore/rich-text-editor)以及内置的拖放功能。

我不认为使用SproutCore会过度,除非你只是想构建一个你想在不同类型的环境/框架中使用的小部件。

SproutCore是一个非常适合这些类型的复杂应用程序的框架,这可能是Apple为什么将它用于iCloud的原因。这种复杂的SproutCore应用程序的另一个例子是Kobo阅读器(http://read.kobobooks.com/)。

+0

我将进一步研究SproutCore/Ember.js,以确定这是否是如上所述绕过InDesign的可行解决方案。我将添加我的搜索结果,以便将来可以使用这篇文章作为参考。 – royarisse

+0

Ember和SproutCore并不真正相互兼容。 Ember使用了SproutCore功能的一个子集,并将其重写到这样的程度,即尽管代码看起来类似,但API不兼容。 Ember更容易使用(知道HTML /普通JS的人的学习曲线较低),但复杂的情况更难以处理。 – mauritslamers