Hello,
I am facing an error when trying to load the GroupDocs viewer in my local program.
I am copying the file from github and paste it into my local program.
image.png (13.0 KB)
I think the problem is due to the incorrect setting of Resources/viewer and Client/node_modules.
I am copying these two folders from https://github.com/groupdocs-viewer/GroupDocs.Viewer-for-.NET/tree/master/Demos/WebForms/src
May I know what is the correct way to install these in my local program?
Regards,
WK
@WeiKiatChua
I believe you can do it as you’ve described. Can you please share your local program so we could reproduce this issue at our end?
Dear vlaimir,
Attached is my local project.
I excluded the bin,client,licenses,packages and resources folder to reduce down the size of the attachment.GroupDocs-WebAPI.zip (924.8 KB)
client.PNG (23.2 KB)
licenses.PNG (3.1 KB)
resources.PNG (15.3 KB)
Regards,
WK
Dear Sir,
I try to remove the cline/node_module and install it via " npm install --legacy-peer-deps".
However, the issue still persist and I suspect it is because of the Resources/viewer that I copy from the demo program.
It should be install via npm instead of copy and paste but I am not sure how can I install it via npm.
Regards,
WK
@WeiKiatChua
The client Angular app can be created and built apart from ASP.NET Web Application. Let me show how to create a sample Angular application that is using Viewer component.
- Create Angular app
ng new viewer-app --minimal
- Navigate to
viewer-app
folder with cd viewer-app
- Install Viewer component package
npm i @groupdocs.examples.angular/viewer
- Update
app.module.ts
file to
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { ViewerModule } from "@groupdocs.examples.angular/viewer";
import { ConfigService } from '@groupdocs.examples.angular/common-components';
export function configServiceFactory() {
let config = new ConfigService();
config.apiEndpoint = "http://localhost:8080"; //Set your api endpoint here
return config;
}
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule, ViewerModule],
providers: [
{
provide: ConfigService,
useFactory: configServiceFactory
}
],
bootstrap: [AppComponent]
})
export class AppModule {}
- Update
app.component.ts
to
@Component({
selector: 'app-root',
template: `<gd-viewer></gd-viewer>`,
styles: []
})
export class AppComponent {
title = 'viewer-app';
}
- You’ll also need the backend API self_host_api.zip that you can run with
dotnet run
- Run the app with
ng serve
and navigate to the http://localhost:4200/
in your browser
Now, you have the fully functional Angular app and you can build distribution scripts by running npm run build -- --prod --output-path .\dist
. To make build pass without warnings update angular.json
file
- add the following lines to the
options
section
...
"allowedCommonJsDependencies": [
"hammerjs", "jquery"
]
...
- (optional) do not add hash to the output by updating
"outputHashing": "all"
to "outputHashing": "none"
After you build the packages you’ll find your distribution files in the .\dist
folder:
PS .\dist> dir
Directory: .\dist
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/4/2022 10:42 AM 22727 3rdpartylicenses.txt
-a---- 1/4/2022 10:13 AM 948 favicon.ico
-a---- 1/4/2022 10:42 AM 455 index.html
-a---- 1/4/2022 10:42 AM 1299786 main.js
-a---- 1/4/2022 10:42 AM 36846 polyfills.js
-a---- 1/4/2022 10:42 AM 1485 runtime.js
-a---- 1/4/2022 10:42 AM 0 styles.css
These files can be added to your app and used as static resources.
The complete sample app can be downloaded at viewer-app-simple.zip.
As a side note, probably you’ll need to install Node v14 to build and run the app successfully or use --legacy-peer-deps
flag in case you’re using the latter version of Node.
Hope it helps.
Let us know if it worked for you.
Dear vladimir,
Thanks for the reply, I shall try it out.
Besides that, I compared my local project and the demo project from github.
I realized there are a few element didn’t run in my local project.
Can you please help me to check on it?
It this causing the API not running properly?network.PNG (21.1 KB)
sources.PNG (22.9 KB)
Moreover, I getting this message after run the npm fund.npm fund.PNG (4.3 KB)
@WeiKiatChua
I’ve managed to run the application you’ve attached, here is updated version of it web-api.zip (1.3 MB). After you run the app navigate to /view
path and you should see the running app
What was changed:
-
ViewerApiController.cs
routes has been updated
- Angular App distribution files has been added
resources\viewer\
folder
-
View.aspx
has been updated to reference new files added to resources\viewer\
folder
Let us know if it works for you.
Dear vladimir,
Yes, my local project is working great now!
Thank you for your help.
The viewer looks good at our side and we shall work on the Editor now.
Regards,
WK
@WeiKiatChua
You’re welcome!
Let us know if you have any questions!
Dear vladimir,
May I know how can I update the reference in resources\viewer or \editor?
Regards,
WK
Dear vladimir,
Attached is my local projects ( added editor content ).
EditorDemoApp.zip (935.1 KB)
I am having error on the loadconfig and the GoogleAPI doesn’t load.
Regards,
WK
@WeiKiatChua
In case you need to update API endpoint you can do this either by:
- searching for
apiEndpoint=
in the main.js
file and updating the value there.
- in the
app.module.ts
file see this comment for the complete example.
export function configServiceFactory() {
let config = new ConfigService();
config.apiEndpoint = "http://localhost:8080"; //Set your api endpoint here
return config;
}
Dear vladimir,
Sorry, I means how do I generate the file such as main.js, runtime.js and polyfills.js in the resources/viewer and resources/editor?
Regards,
WK
@WeiKiatChua
After you build Angular app you can generate distribution files. Please follow the steps in this comment to create and generate distribution files. After you execute npm run build -- --prod --output-path .\dist
you’ll find main.js
and other files in the dist
folder.
Dear vladimir,
Thanks, I managed to build the main.js according to your comment.
Here is what I get.
building angular.PNG (13.8 KB)
resources_editor.PNG (19.0 KB)
edit_aspx.PNG (37.0 KB)
However, I still facing error when loading the edit.aspx page.
error when loading.PNG (41.2 KB)
Regards,
WK
It looks like the main reason is because fail to load the loadconfig.
loadconfig error 2.PNG (45.2 KB)
@WeiKiatChua
Please try adding [RoutePrefix("editor")]
attribute to the EditorApiController
class in the EditorApiController.cs
file as following:
...
[RoutePrefix("editor")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class EditorApiController : ApiController
...
This change will add all editor
prefixes to all the routes in this controller.
@WeiKiatChua
Can you please clarify if you’re building Editor app?